[ONOS-7981] GUI2 Topo View Link handling fails WIP
on device name with multiple ':'
Change-Id: I698ff2e9a38d3ee45ce1ffa163137c84c12439f3
diff --git a/web/gui2-topo-lib/projects/gui2-topo-lib/src/lib/layer/forcesvg/forcesvg.component.spec.ts b/web/gui2-topo-lib/projects/gui2-topo-lib/src/lib/layer/forcesvg/forcesvg.component.spec.ts
index fb8f42c..d10df1c9 100644
--- a/web/gui2-topo-lib/projects/gui2-topo-lib/src/lib/layer/forcesvg/forcesvg.component.spec.ts
+++ b/web/gui2-topo-lib/projects/gui2-topo-lib/src/lib/layer/forcesvg/forcesvg.component.spec.ts
@@ -26,7 +26,6 @@
import {DraggableDirective} from './draggable/draggable.directive';
import {ActivatedRoute, Params} from '@angular/router';
import {of} from 'rxjs';
-import {MapSvgComponent} from '../mapsvg/mapsvg.component';
import {DeviceNodeSvgComponent} from './visuals/devicenodesvg/devicenodesvg.component';
import {SubRegionNodeSvgComponent} from './visuals/subregionnodesvg/subregionnodesvg.component';
import {HostNodeSvgComponent} from './visuals/hostnodesvg/hostnodesvg.component';
@@ -96,8 +95,12 @@
let logServiceSpy: jasmine.SpyObj<LogService>;
let component: ForceSvgComponent;
let fixture: ComponentFixture<ForceSvgComponent>;
- const sampledata = require('./tests/test-module-topo2CurrentRegion.json');
- const regionData: Region = <Region><unknown>(sampledata.payload);
+ const openflowSampleData = require('./tests/test-module-topo2CurrentRegion.json');
+ const openflowRegionData: Region = <Region><unknown>(openflowSampleData.payload);
+
+ const odtnSampleData = require('./tests/test-OdtnConfig-topo2CurrentRegion.json');
+ const odtnRegionData: Region = <Region><unknown>(odtnSampleData.payload);
+
const emptyRegion: Region = <Region>{devices: [ [], [], [] ], hosts: [ [], [], [] ], links: []};
beforeEach(() => {
@@ -169,26 +172,30 @@
expect(component).toBeTruthy();
});
- it('load sample file', () => {
- expect(sampledata).toBeTruthy();
- expect(sampledata.payload).toBeTruthy();
- expect(sampledata.payload.id).toBe('(root)');
+ it('load sample files', () => {
+ expect(openflowSampleData).toBeTruthy();
+ expect(openflowSampleData.payload).toBeTruthy();
+ expect(openflowSampleData.payload.id).toBe('(root)');
+
+ expect(odtnSampleData).toBeTruthy();
+ expect(odtnSampleData.payload).toBeTruthy();
+ expect(odtnSampleData.payload.id).toBe('(root)');
});
it('should read sample data payload as Region', () => {
- expect(regionData).toBeTruthy();
+ expect(openflowRegionData).toBeTruthy();
// console.log(regionData);
- expect(regionData.id).toBe('(root)');
- expect(regionData.devices).toBeTruthy();
- expect(regionData.devices.length).toBe(3);
- expect(regionData.devices[2].length).toBe(10);
- expect(regionData.hosts.length).toBe(3);
- expect(regionData.hosts[2].length).toBe(20);
- expect(regionData.links.length).toBe(44);
+ expect(openflowRegionData.id).toBe('(root)');
+ expect(openflowRegionData.devices).toBeTruthy();
+ expect(openflowRegionData.devices.length).toBe(3);
+ expect(openflowRegionData.devices[2].length).toBe(10);
+ expect(openflowRegionData.hosts.length).toBe(3);
+ expect(openflowRegionData.hosts[2].length).toBe(20);
+ expect(openflowRegionData.links.length).toBe(44);
});
it('should read device246 correctly', () => {
- const device246: Device = regionData.devices[2][0];
+ const device246: Device = openflowRegionData.devices[2][0];
expect(device246.id).toBe('of:0000000000000246');
expect(device246.nodeType).toBe('device');
expect(device246.type).toBe('switch');
@@ -211,7 +218,7 @@
});
it('should read host 3 correctly', () => {
- const host3: Host = regionData.hosts[2][0];
+ const host3: Host = openflowRegionData.hosts[2][0];
expect(host3.id).toBe('00:88:00:00:00:03/110');
expect(host3.nodeType).toBe('host');
expect(host3.layer).toBe('def');
@@ -223,7 +230,7 @@
});
it('should read link 3-205 correctly', () => {
- const link3_205: Link = regionData.links[0];
+ const link3_205: Link = openflowRegionData.links[0];
expect(link3_205.id).toBe('00:AA:00:00:00:03/None~of:0000000000000205/6');
expect(link3_205.epA).toBe('00:AA:00:00:00:03/None');
expect(link3_205.epB).toBe('of:0000000000000205');
@@ -249,25 +256,41 @@
expect(component.graph.nodes.length).toBe(0);
});
- it('should know hwo to format names', () => {
- expect(ForceSvgComponent.extractNodeName('00:AA:00:00:00:03/None'))
+ it('should know how to format names', () => {
+ expect(ForceSvgComponent.extractNodeName('00:AA:00:00:00:03/None', undefined))
.toEqual('00:AA:00:00:00:03/None');
- expect(ForceSvgComponent.extractNodeName('00:AA:00:00:00:03/161'))
- .toEqual('00:AA:00:00:00:03/161');
+ expect(ForceSvgComponent.extractNodeName('00:AA:00:00:00:03/161', '161'))
+ .toEqual('00:AA:00:00:00:03');
- expect(ForceSvgComponent.extractNodeName('of:0000000000000206/6'))
+ // Like epB of first example in sampleData file - endPtStr contains port number
+ expect(ForceSvgComponent.extractNodeName('of:0000000000000206/6', '6'))
+ .toEqual('of:0000000000000206');
+
+ // Like epB of second example in sampleData file - endPtStr does not contain port number
+ expect(ForceSvgComponent.extractNodeName('of:0000000000000206', '6'))
.toEqual('of:0000000000000206');
});
- it('should handle regionData change - sample Region', () => {
- component.regionData = regionData;
+ it('should handle openflow regionData change - sample Region', () => {
+ component.regionData = openflowRegionData;
component.ngOnChanges(
- {'regionData' : new SimpleChange(<Region>{}, regionData, true)});
+ {'regionData' : new SimpleChange(<Region>{}, openflowRegionData, true)});
expect(component.graph.nodes.length).toBe(30);
expect(component.graph.links.length).toBe(44);
});
+
+ it('should handle odtn regionData change - sample odtn Region', () => {
+ component.regionData = odtnRegionData;
+ component.ngOnChanges(
+ {'regionData' : new SimpleChange(<Region>{}, odtnRegionData, true)});
+
+ expect(component.graph.nodes.length).toBe(2);
+
+ expect(component.graph.links.length).toBe(6);
+
+ });
});