<mat-form-field style="width: 800px;" appearance="fill">
<textarea id="policyJsonTextArea" formControlName="policyJsonTextArea" matInput cdkTextareaAutosize
- cdkAutosizeMinRows="10" required [(value)]="this.policyJson" placeholder="Policy properties"
+ cdkAutosizeMinRows="10" required [value]="this.policyJson" placeholder="Policy properties"
matTooltip="The properties of the policy instance, in JSON format" matTooltipPosition="before">
</textarea>
<div *ngIf="policyJsonTextArea.invalid && (policyJsonTextArea.dirty || policyJsonTextArea.touched)">
+// -
+// ========================LICENSE_START=================================
+// O-RAN-SC
+// %%
+// Copyright (C) 2021: Nordix Foundation
+// %%
+// 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===================================
+// /
+//
+
import { HarnessLoader } from '@angular/cdk/testing';
import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed';
-import { Component, ViewChild } from '@angular/core';
-import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+import { Component, ViewChild, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
+import { ComponentFixture, TestBed } from '@angular/core/testing';
import { FormBuilder, FormGroup } from '@angular/forms';
import { MatButtonModule } from '@angular/material/button';
import { MatButtonHarness } from '@angular/material/button/testing';
-import { MatInput, MatInputModule } from '@angular/material/input';
+import { MatFormFieldModule } from '@angular/material/form-field';
+import { MatInputModule } from '@angular/material/input';
import { MatInputHarness } from '@angular/material/input/testing';
+import { BrowserModule } from '@angular/platform-browser';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { NoTypePolicyEditorComponent } from './no-type-policy-editor.component';
-let formGroup: FormGroup = new FormGroup({});
-
describe('NoTypePolicyEditorComponent', () => {
+ let formGroup: FormGroup = new FormGroup({});
+
let component: TestNoTypePolicyEditorComponentHostComponent;
let fixture: ComponentFixture<TestNoTypePolicyEditorComponentHostComponent>;
let loader: HarnessLoader;
- beforeEach(async(() => {
+ beforeEach(async () => {
TestBed.configureTestingModule({
imports: [
+ BrowserModule,
BrowserAnimationsModule,
MatButtonModule,
+ MatFormFieldModule,
MatInputModule
],
+ schemas: [
+ CUSTOM_ELEMENTS_SCHEMA
+ ],
declarations: [
NoTypePolicyEditorComponent,
TestNoTypePolicyEditorComponentHostComponent
component = fixture.componentInstance;
fixture.detectChanges();
loader = TestbedHarnessEnvironment.loader(fixture);
- }));
+ });
it('should create', () => {
expect(component).toBeTruthy();
expect(await formatButton.isDisabled()).toBeFalsy();
});
- it('Format button should be disabled wen json not valid', async () => {
- let textArea: MatInputHarness = await loader.getHarness(MatInputHarness.with({ selector: '#policyJsonTextArea' }));
- await textArea.setValue('{');
+ it('Format button should be disabled when json not valid', async () => {
+ const ele = formGroup.get('policyJsonTextArea');
+ ele.setValue('{');
let formatButton: MatButtonHarness = await loader.getHarness(MatButtonHarness.with({ selector: '#formatButton' }));
- // expect(await formatButton.isDisabled()).toBeTruthy();
+ expect(await formatButton.isDisabled()).toBeTruthy();
});
-});
-@Component({
- selector: `no-type-policy-editor-host-component`,
- template: `<nrcp-no-type-policy-editor [policyJson]="this.policyJson" [instanceForm]="instanceForm"></nrcp-no-type-policy-editor>`
-})
-export class TestNoTypePolicyEditorComponentHostComponent {
- @ViewChild(NoTypePolicyEditorComponent)
- private noTypePolicyEditorComponentHostComponent: NoTypePolicyEditorComponent;
- instanceForm: FormGroup = formGroup;
- policyJson: string = '{"A":"A"}';
-}
+ it('should format unformatted json', async () => {
+ const textArea = formGroup.get('policyJsonTextArea');
+ textArea.setValue('{"A":"A"}');
+ component.noTypePolicyEditorComponent.formatJsonInput();
+ expect(component.noTypePolicyEditorComponent.policyJson).toEqual('{\n "A": "A"\n}');
+ });
+
+ @Component({
+ selector: `no-type-policy-editor-host-component`,
+ template: `<nrcp-no-type-policy-editor [policyJson]="this.policyJson" [instanceForm]="instanceForm"></nrcp-no-type-policy-editor>`
+ })
+ class TestNoTypePolicyEditorComponentHostComponent {
+ @ViewChild(NoTypePolicyEditorComponent)
+ noTypePolicyEditorComponent: NoTypePolicyEditorComponent;
+ instanceForm: FormGroup = formGroup;
+ policyJson: string = '{"A":"A"}';
+ }
+});
+// -
+// ========================LICENSE_START=================================
+// O-RAN-SC
+// %%
+// Copyright (C) 2021: Nordix Foundation
+// %%
+// 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===================================
+// /
+//
+
import { Component, Input, OnInit } from '@angular/core';
import { AbstractControl, ControlContainer, FormBuilder, FormControl, FormGroup, FormGroupDirective, ValidatorFn, Validators } from '@angular/forms';
createPolicyInstance.policy_data = JSON.parse(policyJson);
createPolicyInstance.policy_id = this.policyInstanceId;
createPolicyInstance.policytype_id = '';
- createPolicyInstance.ric_id = this.ricSelectorComponent.selectedRic;
+ createPolicyInstance.ric_id = this.ricSelectorComponent ? this.ricSelectorComponent.selectedRic : this.ric;
createPolicyInstance.service_id = 'controlpanel';
return createPolicyInstance;
}
</mat-footer-row>
</table>
-
-<div class="spinner-container" *ngIf="instanceDataSource.loading$ | async">
- <mat-spinner diameter="50"></mat-spinner>
-</div>
\ No newline at end of file
+// -
+// ========================LICENSE_START=================================
+// O-RAN-SC
+// %%
+// Copyright (C) 2021: Nordix Foundation
+// %%
+// 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===================================
+// /
+//
+
import { HarnessLoader } from '@angular/cdk/testing';
import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed';
-import { Component, ViewChild } from '@angular/core';
+import { Component, ViewChild, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { FormBuilder, FormGroup } from '@angular/forms';
import { MatSelectModule } from '@angular/material/select';
import { RicSelectorComponent } from './ric-selector.component';
-let formGroup: FormGroup = new FormGroup({});
describe('RicSelectorComponent', () => {
+ let formGroup: FormGroup = new FormGroup({});
let component: TestRicSelectorHostComponent;
let fixture: ComponentFixture<TestRicSelectorHostComponent>;
let loader: HarnessLoader;
BrowserAnimationsModule,
MatSelectModule,
],
+ schemas: [
+ CUSTOM_ELEMENTS_SCHEMA
+ ],
declarations: [
RicSelectorComponent,
TestRicSelectorHostComponent
FormBuilder
]
})
- .compileComponents();
+ .compileComponents();
fixture = TestBed.createComponent(TestRicSelectorHostComponent);
component = fixture.componentInstance;
const count = (await ricSelector.getOptions()).length;
expect(count).toEqual(2);
});
-});
-@Component({
- selector: `ric-selector-host-component`,
- template: `<nrcp-ric-selector [instanceForm]="instanceForm" [policyTypeName]="policyTypeName"></nrcp-ric-selector>`
-})
-export class TestRicSelectorHostComponent {
- @ViewChild(RicSelectorComponent)
- private ricSelectorComponent: RicSelectorComponent;
- instanceForm: FormGroup = formGroup;
- policyTypeName: string = 'policyTypeName';
-}
+ @Component({
+ selector: `ric-selector-host-component`,
+ template: `<nrcp-ric-selector [instanceForm]="instanceForm" [policyTypeName]="policyTypeName"></nrcp-ric-selector>`
+ })
+ class TestRicSelectorHostComponent {
+ @ViewChild(RicSelectorComponent)
+ private ricSelectorComponent: RicSelectorComponent;
+ instanceForm: FormGroup = formGroup;
+ policyTypeName: string = 'policyTypeName';
+ }
+});
+// -
+// ========================LICENSE_START=================================
+// O-RAN-SC
+// %%
+// Copyright (C) 2021: Nordix Foundation
+// %%
+// 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===================================
+// /
+//
+
import { Component, Input, OnInit } from '@angular/core';
import { AbstractControl, ControlContainer, FormBuilder, FormControl, FormGroup, FormGroupDirective, Validators } from '@angular/forms';
import { Ric, Rics } from 'src/app/interfaces/ric';