1 import {TestBed} from "@angular/core/testing";
2 import {WorkspaceService} from "../../../../pages/workspace/workspace.service";
3 import { ConnectionWizardService } from "app/ng2/pages/composition/graph/connection-wizard/connection-wizard.service";
4 import { ConnectRelationModel, Match, Requirement, Capability } from "app/models";
5 import { Mock } from "ts-mockery/dist";
7 describe('Connection Wizard Service', () => {
9 let service: ConnectionWizardService;
11 const connectRelationModelMock = Mock.of<ConnectRelationModel>({
13 Mock.of<Match>({isFromTo: true, requirement: Mock.of<Requirement>({uniqueId: 'requirement1', capability: "cap1"}), capability: Mock.of<Capability>({uniqueId: 'capability1', type: 'othertype'})}),
14 Mock.of<Match>({isFromTo: true, requirement: Mock.of<Requirement>({uniqueId: 'requirement2', capability: "cap1"}), capability: Mock.of<Capability>({uniqueId: 'capability2', type: 'tosca'})}),
15 Mock.of<Match>({isFromTo: true, requirement: Mock.of<Requirement>({uniqueId: 'requirement3', capability: "cap1"}), capability: Mock.of<Capability>({uniqueId: 'capability3', type: 'tosca'})}),
16 Mock.of<Match>({isFromTo: true, requirement: Mock.of<Requirement>({uniqueId: 'requirement4', capability: "cap1"}), capability: Mock.of<Capability>({uniqueId: 'capability2', type: 'tosca'})}),
17 Mock.of<Match>({isFromTo: true, requirement: Mock.of<Requirement>({uniqueId: 'requirement5', capability: "cap2"}), capability: Mock.of<Capability>({uniqueId: 'capability1', type: 'tosca'})}),
18 Mock.of<Match>({isFromTo: false, requirement: Mock.of<Requirement>({uniqueId: 'requirement6', capability: "cap2"}), capability: Mock.of<Capability>({uniqueId: 'capability2', type: 'tosca'})}),
19 Mock.of<Match>({isFromTo: false, requirement: Mock.of<Requirement>({uniqueId: 'requirement7', capability: "cap2"}), capability: Mock.of<Capability>({uniqueId: 'capability1', type: 'othertype'})})
24 TestBed.configureTestingModule({
26 providers: [ConnectionWizardService,
27 {provide: WorkspaceService, useValue: {}}
31 service = TestBed.get(ConnectionWizardService);
32 service.connectRelationModel = connectRelationModelMock;
35 describe('getOptionalRequirementsByInstanceUniqueId', () => {
36 it('if no capability to match is sent in and isFromTo is true, ALL isFromTo==true requirements are returned', () => {
37 const requirements = service.getOptionalRequirementsByInstanceUniqueId(true);
38 expect(requirements['cap1'].length).toBe(4);
39 expect(requirements['cap2'].length).toBe(1);
42 it('if no capability to match is sent in and isFromTo is false, ALL isFromTo==false requirements are returned', () => {
43 const requirements = service.getOptionalRequirementsByInstanceUniqueId(false);
44 expect(requirements['cap1']).toBeUndefined();
45 expect(requirements['cap2'].length).toBe(2);
48 it('if capability to match IS sent in and isFromTo is true, matches with the same uniqueID and isFromTo==true are returned', () => {
49 const capability = Mock.of<Capability>({uniqueId: 'capability1'});
50 const requirements = service.getOptionalRequirementsByInstanceUniqueId(true, capability);
51 expect(requirements['cap1'].length).toBe(1);
52 expect(requirements['cap2'].length).toBe(1);
55 it('if capability to match IS sent in and isFromTo is false, requirements with the same uniqueID and isFromTo==false are returned', () => {
56 const capability = Mock.of<Capability>({uniqueId: 'capability1'});
57 const requirements = service.getOptionalRequirementsByInstanceUniqueId(false, capability);
58 expect(requirements['cap1']).toBeUndefined();
59 expect(requirements['cap2'].length).toBe(1);
63 describe('getOptionalCapabilitiesByInstanceUniqueId', () => {
64 it('if requirement to match IS sent in and isFromTo is true, matches with the same uniqueID and isFromTo==true are returned', () => {
65 const requirement = Mock.of<Requirement>({uniqueId: 'requirement1'});
66 const capabilities = service.getOptionalCapabilitiesByInstanceUniqueId(true, requirement);
67 expect(capabilities['othertype'].length).toBe(1);
68 expect(capabilities['tosca']).toBeUndefined();
71 it('if no requirement to match is sent in and isFromTo is true, a UNIQUE list of all capabilities with isFromTo==true are returned', () => {
72 const capabilities = service.getOptionalCapabilitiesByInstanceUniqueId(true);
73 expect(capabilities['othertype'].length).toBe(1);
74 expect(capabilities['tosca'].length).toBe(2);
77 it('if no requirement to match is sent in and isFromTo is false, all capabilities with isFromTo==false are returned', () => {
78 const capabilities = service.getOptionalCapabilitiesByInstanceUniqueId(false);
79 expect(capabilities['othertype'].length).toBe(1);
80 expect(capabilities['tosca'].length).toBe(1);