summaryrefslogtreecommitdiffstats
path: root/dcaedftool/src/app/df-schema.component.spec.ts
diff options
context:
space:
mode:
Diffstat (limited to 'dcaedftool/src/app/df-schema.component.spec.ts')
-rw-r--r--dcaedftool/src/app/df-schema.component.spec.ts99
1 files changed, 99 insertions, 0 deletions
diff --git a/dcaedftool/src/app/df-schema.component.spec.ts b/dcaedftool/src/app/df-schema.component.spec.ts
new file mode 100644
index 0000000..dac20f2
--- /dev/null
+++ b/dcaedftool/src/app/df-schema.component.spec.ts
@@ -0,0 +1,99 @@
+// org.onap.dcae
+// ============LICENSE_START====================================================
+// Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.
+// =============================================================================
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+// ============LICENSE_END======================================================
+//
+// ECOMP is a trademark and service mark of AT&T Intellectual Property.
+import { NgModule } from '@angular/core';
+import { BrowserModule } from '@angular/platform-browser';
+import {HttpModule} from '@angular/http'; // for future
+import {FormsModule, ReactiveFormsModule} from '@angular/forms'; // for future
+import {BrowserAnimationsModule} from '@angular/platform-browser/animations'; // for future
+import { MaterialModule } from '@angular/material';
+import { FlexLayoutModule } from '@angular/flex-layout';
+import { RouterModule, Routes } from '@angular/router';
+import { APP_BASE_HREF } from '@angular/common';
+
+import {ValidateMetaSchemaService} from './validate-metaschema.service';
+import {ValidateJSONService} from './validate-json.service';
+import {MetaSchemaService} from './metaschema.service';
+import {DFSchemaComponent} from './df-schema.component';
+
+
+
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+import { By } from '@angular/platform-browser';
+import { DebugElement } from '@angular/core';
+
+describe('DFSchemaComponent Tests', function () {
+ let de: DebugElement;
+ let comp: DFSchemaComponent;
+ let fixture: ComponentFixture<DFSchemaComponent>;
+
+ beforeEach(async(() => {
+ TestBed.configureTestingModule({
+ imports: [ BrowserModule,
+ BrowserAnimationsModule,
+ FormsModule,
+ HttpModule,
+ ReactiveFormsModule,
+ FlexLayoutModule,
+ MaterialModule,
+
+ ],
+ providers: [{provide: APP_BASE_HREF, useValue: '/'},
+ ValidateMetaSchemaService,
+ ValidateJSONService,
+ MetaSchemaService
+ ],
+ declarations: [
+ DFSchemaComponent,
+
+ ]
+ })
+ .compileComponents();
+ }));
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(DFSchemaComponent);
+ comp = fixture.componentInstance;
+ //de = fixture.debugElement.query(By.css('h1'));
+ });
+
+ it('should create component', () => expect(comp).toBeDefined() );
+
+ it('should have no metaschema display as default', () => {
+ expect(comp.metaButton).toMatch('Display MetaSchema');
+ });
+ it('should metaschema display after toggle', () => {
+ comp.toggleMetaSchema();
+ expect(comp.metaButton).toMatch('Hide MetaSchema');
+ });
+ it('should validate valid schema', () => {
+ let ev = {target: {name: "test", value: '{"self": { "name": "CUDA Simple JSON Example","version": "1.0.0","description": "An example of unnested JSON schema for CUDA Input and output"},"dataformatversion": "1.0.0", "jsonschema": { "$schema": "http://json-schema.org/draft-04/schema#","type": "object", "properties": {"raw-text": {"type": "string" } }, "required": ["raw-text"], "additionalProperties": false }}'}};
+ comp.doDFSchemaChange(ev);
+ expect(comp.schemaMsg).toMatch("Valid Data Format Schema") ;
+ });
+ it('should not validate an invalid schema', () => {
+ let ev = {target: {name: "test", value: '{"self": { "name": "CUDA Simple JSON Example","version": "1.0.0","description": "An example of unnested JSON schema for CUDA Input and output"}, "jsonschema": { "$schema": "http://json-schema.org/draft-04/schema#","type": "object", "properties": {"raw-text": {"type": "string" } }, "required": ["raw-text"], "additionalProperties": false }}'}};
+ comp.doDFSchemaChange(ev);
+ expect(comp.schemaMsg).toMatch("Invalid Data Format Schema:") ;
+ });
+ it('jsonschema must be 04 or 06 schema', () => {
+ let ev = {target: {name: "test", value: '{"self": { "name": "CUDA Simple JSON Example","version": "1.0.0","description": "An example of unnested JSON schema for CUDA Input and output"}, "jsonschema": { "$schema": "http://json-schema.org/draft-05/schema#","type": "object", "properties": {"raw-text": {"type": "string" } }, "required": ["raw-text"], "additionalProperties": false }}'}};
+ comp.doDFSchemaChange(ev);
+ expect(comp.schemaMsg).toMatch(/Invalid JSON Schema Data Format - jsonschema\$schema version must be 04 or 06/) ;
+ });
+});