OK-487 FE Unit tests shift change
diff --git a/src/app/dialogs/shift-change/shift-change.component.spec.ts b/src/app/dialogs/shift-change/shift-change.component.spec.ts
index 2c0a175..aea62dc 100644
--- a/src/app/dialogs/shift-change/shift-change.component.spec.ts
+++ b/src/app/dialogs/shift-change/shift-change.component.spec.ts
@@ -6,7 +6,7 @@
 import { AbstractMockObservableService } from '../../common/abstract-mock-observable.service';
 import { click } from '../../testing';
 import { MockComponent } from '../../testing/mock.component';
-
+import { MdDialogRef } from '@angular/material';
 import { ShiftChangeComponent } from './shift-change.component';
 import { TerritoryResponsibility } from '../../model/territory-responsibility';
 import { UserService } from '../../services/user.service';
@@ -23,6 +23,11 @@
 let page: Page;
 
 describe('ShiftChangeComponent', () => {
+
+  class MockDialogRef extends AbstractMockObservableService {
+    close() { }
+  }
+
   class MockUserService extends AbstractMockObservableService {
     getUsers() {
       return this;
@@ -52,7 +57,9 @@
       imports: [FormsModule],
       declarations: [ShiftChangeComponent,
         MockComponent({ selector: 'multiselect', inputs: ['data', 'settings'] })],
-      providers: [{ provide: UserService, useValue: mockUserService },
+      providers: [
+      { provide: MdDialogRef, useClass: MockDialogRef },
+      { provide: UserService, useValue: mockUserService },
       { provide: ResponsibilityService, useValue: mockService },
       { provide: MessageService, useValue: messageService },      
       { provide: SessionContext, useValue: sessionContext }],
@@ -219,6 +226,59 @@
 
   }));
 
+  it('should call getResponsibilities service method and return an error', async(() => {
+    mockService.error = 'GETRESPONSIBILITIES_ERROR';
+    fixture.detectChanges();
+    mockService.getResponsibilities().subscribe((resp) => {
+      fixture.whenStable().then(() => {
+        fixture.detectChanges();
+        expect(component.bannerMessage.text).toEqual('Schichtübergabe getResponsibilities');       
+      });
+    });
+
+    component.getResponsibilities();
+    fixture.detectChanges();
+
+  }));
+
+  it('should call planResponsibilities service method and return an error', async(() => {
+    spyOn(component.dialogRef, 'close').and.callThrough();
+    mockService.error = 'PLANRESPONSIBILITIES_ERROR';
+    const responsibilityContainers = RESPONSIBILITIES_SHIFT_CHANGE;
+    const serviceUsers = USERS;
+    mockUserService.content = serviceUsers;
+    const serviceResp = RESPONSIBILITIES;
+    mockService.content = serviceResp;
+    sessionContext.setCurrUser(USERS[1]);
+
+    fixture.detectChanges();
+    mockService.planResponsibilities(responsibilityContainers).subscribe((resp) => {
+      fixture.whenStable().then(() => {
+        fixture.detectChanges();
+        expect(component.bannerMessage.text).toEqual('Schichtübergabe');
+        expect(component.dialogRef.close).toHaveBeenCalled();
+      });
+    });
+
+    component.shiftChange(false);
+    fixture.detectChanges();
+
+  }));
+    
+  it('should call getUsers service method and return an error', async(() => {
+    mockUserService.error = 'GETUSERS_ERROR';
+    fixture.detectChanges();
+    mockUserService.getUsers().subscribe((resp) => {
+      fixture.whenStable().then(() => {
+        fixture.detectChanges();
+        expect(component.bannerMessage.text).toEqual('Schichtübergabe getUsers');
+      });
+    });
+
+    component.getUsers();
+    fixture.detectChanges();
+
+  }));
 });
 class Page {
   //  gotoSpy:      jasmine.Spy;