Initial import of Angular5 components services and modules

Change-Id: I3953f1fbf7d5697a1c6d432808dd17d816ec285a
diff --git a/web/gui2/src/main/webapp/tests/app/fw/widget/button.service.spec.ts b/web/gui2/src/main/webapp/tests/app/fw/widget/button.service.spec.ts
new file mode 100644
index 0000000..d2bb5b9
--- /dev/null
+++ b/web/gui2/src/main/webapp/tests/app/fw/widget/button.service.spec.ts
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2016-present Open Networking 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.
+ */
+import { TestBed, inject } from '@angular/core/testing';
+
+import { ButtonService } from '../../../../app/fw/widget/button.service';
+
+/**
+ * ONOS GUI -- Widget -- Button Service - Unit Tests
+ */
+describe('ButtonService', () => {
+  beforeEach(() => {
+    TestBed.configureTestingModule({
+      providers: [ButtonService]
+    });
+  });
+
+  it('should be created', inject([ButtonService], (service: ButtonService) => {
+    expect(service).toBeTruthy();
+  }));
+});
diff --git a/web/gui2/src/main/webapp/tests/app/fw/widget/chartbuilder.service.spec.ts b/web/gui2/src/main/webapp/tests/app/fw/widget/chartbuilder.service.spec.ts
new file mode 100644
index 0000000..6840fe3
--- /dev/null
+++ b/web/gui2/src/main/webapp/tests/app/fw/widget/chartbuilder.service.spec.ts
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2016-present Open Networking 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.
+ */
+import { TestBed, inject } from '@angular/core/testing';
+
+import { ChartBuilderService } from '../../../../app/fw/widget/chartbuilder.service';
+
+/**
+ * ONOS GUI -- Widget -- Chart Builder Service - Unit Tests
+ */
+describe('ChartBuilderService', () => {
+  beforeEach(() => {
+    TestBed.configureTestingModule({
+      providers: [ChartBuilderService]
+    });
+  });
+
+  it('should be created', inject([ChartBuilderService], (service: ChartBuilderService) => {
+    expect(service).toBeTruthy();
+  }));
+});
diff --git a/web/gui2/src/main/webapp/tests/app/fw/widget/flashchanges.directive.spec.ts b/web/gui2/src/main/webapp/tests/app/fw/widget/flashchanges.directive.spec.ts
new file mode 100644
index 0000000..f301cfc
--- /dev/null
+++ b/web/gui2/src/main/webapp/tests/app/fw/widget/flashchanges.directive.spec.ts
@@ -0,0 +1,52 @@
+/*
+ * Copyright 2015-present Open Networking 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.
+ */
+import { FlashChangesDirective } from '../../../../app/fw/widget/flashchanges.directive';
+
+import { LogService } from '../../../../app/log.service';
+import { FnService } from '../../../../app/fw/util/fn.service';
+import { ActivatedRoute, Router} from '@angular/router';
+
+class MockFunctionService extends FnService {
+    // Override things as necessary
+}
+
+/**
+ * ONOS GUI -- Widget -- Table Flash Changes Directive - Unit Tests
+ */
+describe('FlashChangesDirective', () => {
+    let fs: MockFunctionService;
+    let log: LogService;
+    let ar: ActivatedRoute;
+    let directive: FlashChangesDirective;
+
+    beforeEach(() => {
+        log = new LogService();
+        ar = new ActivatedRoute();
+        fs = new MockFunctionService(ar, log);
+        directive = new FlashChangesDirective(fs, log);
+    });
+
+    afterEach(() => {
+        fs = null;
+        log = null;
+        ar = null;
+        directive = null;
+    });
+
+    it('should create an instance', () => {
+        expect(directive).toBeTruthy();
+    });
+});
diff --git a/web/gui2/src/main/webapp/tests/app/fw/widget/list.service.spec.ts b/web/gui2/src/main/webapp/tests/app/fw/widget/list.service.spec.ts
new file mode 100644
index 0000000..0285417
--- /dev/null
+++ b/web/gui2/src/main/webapp/tests/app/fw/widget/list.service.spec.ts
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2016-present Open Networking 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.
+ */
+import { TestBed, inject } from '@angular/core/testing';
+
+import { ListService } from '../../../../app/fw/widget/list.service';
+
+/**
+ * ONOS GUI -- Widget -- List Service - Unit Tests
+ */
+describe('ListService', () => {
+  beforeEach(() => {
+    TestBed.configureTestingModule({
+      providers: [ListService]
+    });
+  });
+
+  it('should be created', inject([ListService], (service: ListService) => {
+    expect(service).toBeTruthy();
+  }));
+});
diff --git a/web/gui2/src/main/webapp/tests/app/fw/widget/sortableheader.directive.spec.ts b/web/gui2/src/main/webapp/tests/app/fw/widget/sortableheader.directive.spec.ts
new file mode 100644
index 0000000..7d15dfc
--- /dev/null
+++ b/web/gui2/src/main/webapp/tests/app/fw/widget/sortableheader.directive.spec.ts
@@ -0,0 +1,67 @@
+/*
+ * Copyright 2015-present Open Networking 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.
+ */
+import { SortableHeaderDirective } from '../../../../app/fw/widget/sortableheader.directive';
+import { IconService } from '../../../../app/fw/svg/icon.service';
+import { GlyphService } from '../../../../app/fw/svg/glyph.service';
+import { SvgUtilService } from '../../../../app/fw/svg/svgutil.service';
+import { LogService } from '../../../../app/log.service';
+import { FnService } from '../../../../app/fw/util/fn.service';
+import { ActivatedRoute, Router} from '@angular/router';
+
+class MockGlyphService extends GlyphService {
+    // Override things as necessary
+}
+
+class MockSvgUtilService extends SvgUtilService {
+    // Override things as necessary
+}
+
+class MockFunctionService extends FnService {
+    // Override things as necessary
+}
+
+/**
+ * ONOS GUI -- Widget -- Table Sortable Header Directive - Unit Tests
+ */
+describe('SortableHeaderDirective', () => {
+    let gs: MockGlyphService;
+    let sus: MockSvgUtilService;
+    let icon: IconService;
+    let log: LogService;
+    let fs: MockFunctionService;
+    let ar: ActivatedRoute;
+    let directive: SortableHeaderDirective;
+
+    beforeEach(() => {
+        log = new LogService();
+        ar = new ActivatedRoute();
+        fs = new MockFunctionService(ar, log);
+        gs = new MockGlyphService(log);
+        sus = new MockSvgUtilService(fs, log);
+        icon = new IconService(gs, log, sus);
+        directive = new SortableHeaderDirective(icon, log);
+    });
+
+    afterEach(() => {
+        log = null;
+        icon = null;
+        directive = null;
+    });
+
+    it('should create an instance', () => {
+        expect(directive).toBeTruthy();
+    });
+});
diff --git a/web/gui2/src/main/webapp/tests/app/fw/widget/tablebuilder.service.spec.ts b/web/gui2/src/main/webapp/tests/app/fw/widget/tablebuilder.service.spec.ts
new file mode 100644
index 0000000..fb4aac7
--- /dev/null
+++ b/web/gui2/src/main/webapp/tests/app/fw/widget/tablebuilder.service.spec.ts
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2015-present Open Networking 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.
+ */
+import { TestBed, inject } from '@angular/core/testing';
+
+import { TableBuilderService } from '../../../../app/fw/widget/tablebuilder.service';
+
+/*
+ ONOS GUI -- Widget -- Table Builder Service - Unit Tests
+ */
+describe('TableBuilderService', () => {
+  beforeEach(() => {
+    TestBed.configureTestingModule({
+      providers: [TableBuilderService]
+    });
+  });
+
+  it('should be created', inject([TableBuilderService], (service: TableBuilderService) => {
+    expect(service).toBeTruthy();
+  }));
+});
diff --git a/web/gui2/src/main/webapp/tests/app/fw/widget/tabledetail.service.spec.ts b/web/gui2/src/main/webapp/tests/app/fw/widget/tabledetail.service.spec.ts
new file mode 100644
index 0000000..5df608c
--- /dev/null
+++ b/web/gui2/src/main/webapp/tests/app/fw/widget/tabledetail.service.spec.ts
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2015-present Open Networking 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.
+ */
+import { TestBed, inject } from '@angular/core/testing';
+
+import { TableDetailService } from '../../../../app/fw/widget/tabledetail.service';
+
+/**
+ * ONOS GUI -- Widget -- Table Detail Service - Unit Tests
+ */
+describe('TableDetailService', () => {
+  beforeEach(() => {
+    TestBed.configureTestingModule({
+      providers: [TableDetailService]
+    });
+  });
+
+  it('should be created', inject([TableDetailService], (service: TableDetailService) => {
+    expect(service).toBeTruthy();
+  }));
+});
diff --git a/web/gui2/src/main/webapp/tests/app/fw/widget/tableresize.directive.spec.ts b/web/gui2/src/main/webapp/tests/app/fw/widget/tableresize.directive.spec.ts
new file mode 100644
index 0000000..a8241ea
--- /dev/null
+++ b/web/gui2/src/main/webapp/tests/app/fw/widget/tableresize.directive.spec.ts
@@ -0,0 +1,56 @@
+/*
+ * Copyright 2015-present Open Networking 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.
+ */
+import { TableResizeDirective } from '../../../../app/fw/widget/tableresize.directive';
+import { LogService } from '../../../../app/log.service';
+import { FnService } from '../../../../app/fw/util/fn.service';
+import { MastService } from '../../../../app/fw/mast/mast.service';
+import { ActivatedRoute, Router} from '@angular/router';
+
+class MockFunctionService extends FnService {
+    // Override things as necessary
+}
+
+/**
+ * ONOS GUI -- Widget -- Table Resize Directive - Unit Tests
+ */
+describe('TableResizeDirective', () => {
+
+    let fs: MockFunctionService;
+    let log: LogService;
+    let ar: ActivatedRoute;
+    let ms: MastService;
+    let directive: TableResizeDirective;
+
+    beforeEach(() => {
+        log = new LogService();
+        ar = new ActivatedRoute();
+        fs = new MockFunctionService(ar, log);
+        ms = new MastService(fs, log);
+        directive = new TableResizeDirective(fs, log, ms);
+    });
+
+    afterEach(() => {
+        fs = null;
+        log = null;
+        ar = null;
+        ms = null;
+        directive = null;
+    });
+
+    it('should create an instance', () => {
+        expect(directive).toBeTruthy();
+    });
+});
diff --git a/web/gui2/src/main/webapp/tests/app/fw/widget/toolbar.service.spec.ts b/web/gui2/src/main/webapp/tests/app/fw/widget/toolbar.service.spec.ts
new file mode 100644
index 0000000..467462a
--- /dev/null
+++ b/web/gui2/src/main/webapp/tests/app/fw/widget/toolbar.service.spec.ts
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2015-present Open Networking 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.
+ */
+import { TestBed, inject } from '@angular/core/testing';
+
+import { ToolbarService } from '../../../../app/fw/widget/toolbar.service';
+
+/**
+ * ONOS GUI -- Widget -- Toolbar Service - Unit Tests
+ */
+describe('ToolbarService', () => {
+  beforeEach(() => {
+    TestBed.configureTestingModule({
+      providers: [ToolbarService]
+    });
+  });
+
+  it('should be created', inject([ToolbarService], (service: ToolbarService) => {
+    expect(service).toBeTruthy();
+  }));
+});
diff --git a/web/gui2/src/main/webapp/tests/app/fw/widget/tooltip.directive.spec.ts b/web/gui2/src/main/webapp/tests/app/fw/widget/tooltip.directive.spec.ts
new file mode 100644
index 0000000..f8f41da
--- /dev/null
+++ b/web/gui2/src/main/webapp/tests/app/fw/widget/tooltip.directive.spec.ts
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2015-present Open Networking 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.
+ */
+import { TooltipDirective } from '../../../../app/fw/widget/tooltip.directive';
+import { LogService } from '../../../../app/log.service';
+import { FnService } from '../../../../app/fw/util/fn.service';
+import { ActivatedRoute, Router} from '@angular/router';
+
+class MockFunctionService extends FnService {
+    // Override things as necessary
+}
+
+/**
+ * ONOS GUI -- Widget -- Tooltip Directive - Unit Tests
+ */
+describe('TooltipDirective', () => {
+    let fs: MockFunctionService;
+    let log: LogService;
+    let ar: ActivatedRoute;
+    let directive: TooltipDirective;
+
+    beforeEach(() => {
+        log = new LogService();
+        ar = new ActivatedRoute();
+        fs = new MockFunctionService(ar, log);
+        directive = new TooltipDirective(fs, log);
+    });
+
+    afterEach(() => {
+        fs = null;
+        log = null;
+        ar = null;
+        directive = null;
+    });
+
+    it('should create an instance', () => {
+        expect(directive).toBeTruthy();
+    });
+});
diff --git a/web/gui2/src/main/webapp/tests/app/fw/widget/tooltip.service.spec.ts b/web/gui2/src/main/webapp/tests/app/fw/widget/tooltip.service.spec.ts
new file mode 100644
index 0000000..651ef5d
--- /dev/null
+++ b/web/gui2/src/main/webapp/tests/app/fw/widget/tooltip.service.spec.ts
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2015-present Open Networking 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.
+ */
+import { TestBed, inject } from '@angular/core/testing';
+
+import { TooltipService } from '../../../../app/fw/widget/tooltip.service';
+
+/**
+ * ONOS GUI -- Widget -- Tooltip Service - Unit Tests
+ */
+describe('TooltipService', () => {
+  beforeEach(() => {
+    TestBed.configureTestingModule({
+      providers: [TooltipService]
+    });
+  });
+
+  it('should be created', inject([TooltipService], (service: TooltipService) => {
+    expect(service).toBeTruthy();
+  }));
+});