Added app, tests, lint to BUCK file for web/gui2

Change-Id: I94912cb18f31db26971b66c9d851fb57f022df54
diff --git a/web/gui2/src/main/webapp/tests/app/view/apps/apps.component.spec.ts b/web/gui2/src/main/webapp/tests/app/view/apps/apps.component.spec.ts
index f6ca0f8..a998cb0 100644
--- a/web/gui2/src/main/webapp/tests/app/view/apps/apps.component.spec.ts
+++ b/web/gui2/src/main/webapp/tests/app/view/apps/apps.component.spec.ts
@@ -1,25 +1,89 @@
+/*
+ * Copyright 2018-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 { async, ComponentFixture, TestBed } from '@angular/core/testing';
 
+import { LogService } from '../../../../app/log.service';
+import { ConsoleLoggerService } from '../../../../app/consolelogger.service';
 import { AppsComponent } from '../../../../app/view/apps/apps.component';
+import { DialogService } from '../../../../app/fw/layer/dialog.service';
+import { FnService } from '../../../../app/fw/util/fn.service';
+import { IconService } from '../../../../app/fw/svg/icon.service';
+import { KeyService } from '../../../../app/fw/util/key.service';
+import { LionService } from '../../../../app/fw/util/lion.service';
+import { PanelService } from '../../../../app/fw/layer/panel.service';
+import { TableBuilderService } from '../../../../app/fw/widget/tablebuilder.service';
+import { UrlFnService } from '../../../../app/fw/remote/urlfn.service';
+import { WebSocketService } from '../../../../app/fw/remote/websocket.service';
 
+class MockDialogService {}
+
+class MockFnService {}
+
+class MockIconService {}
+
+class MockKeyService {}
+
+class MockLionService {}
+
+class MockPanelService {}
+
+class MockTableBuilderService {}
+
+class MockUrlFnService {}
+
+class MockWebSocketService {}
+
+/**
+ * ONOS GUI -- Apps View -- Unit Tests
+ */
 describe('AppsComponent', () => {
-  let component: AppsComponent;
-  let fixture: ComponentFixture<AppsComponent>;
+    let log: LogService;
+    let component: AppsComponent;
+    let fixture: ComponentFixture<AppsComponent>;
+    const windowMock = <any>{ location: <any> { hostname: 'localhost' } };
 
-  beforeEach(async(() => {
-    TestBed.configureTestingModule({
-      declarations: [ AppsComponent ]
-    })
-    .compileComponents();
-  }));
+    beforeEach(async(() => {
+        log = new ConsoleLoggerService();
 
-  beforeEach(() => {
-    fixture = TestBed.createComponent(AppsComponent);
-    component = fixture.componentInstance;
-    fixture.detectChanges();
-  });
+        TestBed.configureTestingModule({
+            declarations: [ AppsComponent ],
+            providers: [
+                { provide: DialogService, useClass: MockDialogService },
+                { provide: FnService, useClass: MockFnService },
+                { provide: IconService, useClass: MockIconService },
+                { provide: KeyService, useClass: MockKeyService },
+                { provide: LionService, useClass: MockLionService },
+                { provide: LogService, useValue: log },
+                { provide: PanelService, useClass: MockPanelService },
+                { provide: TableBuilderService, useClass: MockTableBuilderService },
+                { provide: UrlFnService, useClass: MockUrlFnService },
+                { provide: WebSocketService, useClass: MockWebSocketService },
+                { provide: Window, useValue: windowMock },
+            ]
+        })
+        .compileComponents();
+    }));
 
-  it('should create', () => {
-    expect(component).toBeTruthy();
-  });
+    beforeEach(() => {
+        fixture = TestBed.createComponent(AppsComponent);
+        component = fixture.componentInstance;
+        fixture.detectChanges();
+    });
+
+    it('should create', () => {
+        expect(component).toBeTruthy();
+    });
 });
diff --git a/web/gui2/src/main/webapp/tests/app/view/apps/triggerform.directive.spec.ts b/web/gui2/src/main/webapp/tests/app/view/apps/triggerform.directive.spec.ts
index 6ec3d73..be1be65 100644
--- a/web/gui2/src/main/webapp/tests/app/view/apps/triggerform.directive.spec.ts
+++ b/web/gui2/src/main/webapp/tests/app/view/apps/triggerform.directive.spec.ts
@@ -1,8 +1,42 @@
+/*
+ * 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 { LogService } from '../../../../app/log.service';
+import { ConsoleLoggerService } from '../../../../app/consolelogger.service';
 import { TriggerFormDirective } from '../../../../app/view/apps/triggerform.directive';
 
 describe('TriggerFormDirective', () => {
-  it('should create an instance', () => {
-    const directive = new TriggerFormDirective();
-    expect(directive).toBeTruthy();
-  });
+    let log: LogService;
+
+    beforeEach(() => {
+        log = new ConsoleLoggerService();
+
+        TestBed.configureTestingModule({
+            providers: [ TriggerFormDirective,
+                { provide: LogService, useValue: log },
+            ]
+        });
+    });
+
+    afterEach(() => {
+        log = null;
+    });
+
+    it('should create an instance', inject([TriggerFormDirective], (directive: TriggerFormDirective) => {
+        expect(directive).toBeTruthy();
+    }));
 });
diff --git a/web/gui2/src/main/webapp/tests/app/view/device/device.component.spec.ts b/web/gui2/src/main/webapp/tests/app/view/device/device.component.spec.ts
index e4e06a1..edfaed4 100644
--- a/web/gui2/src/main/webapp/tests/app/view/device/device.component.spec.ts
+++ b/web/gui2/src/main/webapp/tests/app/view/device/device.component.spec.ts
@@ -15,29 +15,87 @@
  */
 import { async, ComponentFixture, TestBed } from '@angular/core/testing';
 
+import { LogService } from '../../../../app/log.service';
+import { ConsoleLoggerService } from '../../../../app/consolelogger.service';
 import { DeviceComponent } from '../../../../app/view/device/device.component';
+import { DetailsPanelService } from '../../../../app/fw/layer/detailspanel.service';
+import { FnService } from '../../../../app/fw/util/fn.service';
+import { IconService } from '../../../../app/fw/svg/icon.service';
+import { KeyService } from '../../../../app/fw/util/key.service';
+import { LoadingService } from '../../../../app/fw/layer/loading.service';
+import { NavService } from '../../../../app/fw/nav/nav.service';
+import { MastService } from '../../../../app/fw/mast/mast.service';
+import { PanelService } from '../../../../app/fw/layer/panel.service';
+import { TableBuilderService } from '../../../../app/fw/widget/tablebuilder.service';
+import { TableDetailService } from '../../../../app/fw/widget/tabledetail.service';
+import { WebSocketService } from '../../../../app/fw/remote/websocket.service';
+
+class MockDetailsPanelService {}
+
+class MockFnService {}
+
+class MockIconService {}
+
+class MockKeyService {}
+
+class MockLoadingService {
+    startAnim() {
+        // Do nothing
+    }
+}
+
+class MockNavService {}
+
+class MockMastService {}
+
+class MockPanelService {}
+
+class MockTableBuilderService {}
+
+class MockTableDetailService {}
+
+class MockWebSocketService {}
 
 /**
  * ONOS GUI -- Device View Module - Unit Tests
  */
 describe('DeviceComponent', () => {
-  let component: DeviceComponent;
-  let fixture: ComponentFixture<DeviceComponent>;
+    let log: LogService;
+    let component: DeviceComponent;
+    let fixture: ComponentFixture<DeviceComponent>;
+    const windowMock = <any>{ location: <any> { hostname: 'localhost' } };
 
-  beforeEach(async(() => {
-    TestBed.configureTestingModule({
-      declarations: [ DeviceComponent ]
-    })
-    .compileComponents();
-  }));
+    beforeEach(async(() => {
+        log = new ConsoleLoggerService();
 
-  beforeEach(() => {
-    fixture = TestBed.createComponent(DeviceComponent);
-    component = fixture.componentInstance;
-    fixture.detectChanges();
-  });
+        TestBed.configureTestingModule({
+            declarations: [ DeviceComponent ],
+            providers: [
+                { provide: DetailsPanelService, useClass: MockDetailsPanelService },
+                { provide: FnService, useClass: MockFnService },
+                { provide: IconService, useClass: MockIconService },
+                { provide: KeyService, useClass: MockKeyService },
+                { provide: LoadingService, useClass: MockLoadingService },
+                { provide: MastService, useClass: MockMastService },
+                { provide: NavService, useClass: MockNavService },
+                { provide: LogService, useValue: log },
+                { provide: PanelService, useClass: MockPanelService },
+                { provide: TableBuilderService, useClass: MockTableBuilderService },
+                { provide: TableDetailService, useClass: MockTableDetailService },
+                { provide: WebSocketService, useClass: MockWebSocketService },
+                { provide: Window, useValue: windowMock },
+             ]
+        })
+        .compileComponents();
+    }));
 
-  it('should create', () => {
-    expect(component).toBeTruthy();
-  });
+    beforeEach(() => {
+        fixture = TestBed.createComponent(DeviceComponent);
+            component = fixture.componentInstance;
+        fixture.detectChanges();
+    });
+
+    it('should create', () => {
+        expect(component).toBeTruthy();
+    });
 });
diff --git a/web/gui2/src/main/webapp/tests/app/view/device/devicedetailspanel.directive.spec.ts b/web/gui2/src/main/webapp/tests/app/view/device/devicedetailspanel.directive.spec.ts
index bbf3062..83a7f78 100644
--- a/web/gui2/src/main/webapp/tests/app/view/device/devicedetailspanel.directive.spec.ts
+++ b/web/gui2/src/main/webapp/tests/app/view/device/devicedetailspanel.directive.spec.ts
@@ -13,47 +13,39 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+import { TestBed, inject } from '@angular/core/testing';
+
+import { LogService } from '../../../../app/log.service';
+import { ConsoleLoggerService } from '../../../../app/consolelogger.service';
 import { DeviceDetailsPanelDirective } from '../../../../app/view/device/devicedetailspanel.directive';
 import { KeyService } from '../../../../app/fw/util/key.service';
-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
-}
+class MockKeyService {}
 
-class MockKeyService extends KeyService {
-    // Override things as necessary
-}
 /**
  * ONOS GUI -- Device View Module - Unit Tests
  */
 describe('DeviceDetailsPanelDirective', () => {
-    let ar: ActivatedRoute;
     let log: LogService;
-    let ks: KeyService;
-    let fs: MockFunctionService;
-    let window: Window
-    let directive: DeviceDetailsPanelDirective;
+    const windowMock = <any>{ location: <any> { hostname: 'localhost' } };
 
     beforeEach(() => {
-        log = new LogService();
-        ar = new ActivatedRoute();
-        fs = new MockFunctionService(ar, log);
-        ks = new MockKeyService(fs, log);
-        directive = new DeviceDetailsPanelDirective(ks, log, window);
+        log = new ConsoleLoggerService();
+
+        TestBed.configureTestingModule({
+            providers: [ DeviceDetailsPanelDirective,
+                { provide: LogService, useValue: log },
+                { provide: KeyService, useClass: MockKeyService },
+                { provide: Window, useValue: windowMock },
+            ]
+        });
     });
 
     afterEach(() => {
-        fs = null;
-        ks = null;
         log = null;
-        ar = null;
-        directive = null;
     });
 
-    it('should create an instance', () => {
+    it('should create an instance', inject([DeviceDetailsPanelDirective], (directive: DeviceDetailsPanelDirective) => {
         expect(directive).toBeTruthy();
-    });
+    }));
 });