BZ 530163 - sonar quality gate
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 7a49955..8535c3f 100644
--- a/src/app/dialogs/shift-change/shift-change.component.spec.ts
+++ b/src/app/dialogs/shift-change/shift-change.component.spec.ts
@@ -22,7 +22,7 @@
 let fixture: ComponentFixture<ShiftChangeComponent>;
 let page: Page;
 
-describe('ShiftChangeComponent', () => {
+describe('ShiftChangeComponent-Post/Plan', () => {
 
   class MockDialogRef extends AbstractMockObservableService {
     close() { }
@@ -265,7 +265,83 @@
     fixture.detectChanges();
 
   }));
+
 });
+
+describe('ShiftChangeComponent-Fetch', () => {
+
+  class MockDialogRef extends AbstractMockObservableService {
+    close() { }
+  }
+
+  class MockUserService extends AbstractMockObservableService {
+    getUsers() {
+      return this;
+    };
+  }
+  let mockUserService: MockUserService;
+
+  class MockResponsibilityService extends AbstractMockObservableService {
+    public fetchCalled = false;
+    getAllResponsibilities() {
+      return this;
+    };
+    fetchResponsibilities(newResponsibility: TerritoryResponsibility[]) {
+      this.fetchCalled = true;
+      return this;
+    };
+  }
+  let mockService: MockResponsibilityService;
+  let sessionContext: SessionContext;
+  let messageService: MessageService;
+
+  beforeEach(async(() => {
+    mockUserService = new MockUserService();
+    mockService = new MockResponsibilityService();
+    sessionContext = new SessionContext();
+    messageService = new MessageService();
+
+    TestBed.configureTestingModule({
+      imports: [FormsModule],
+      declarations: [ShiftChangeComponent,
+        MockComponent({ selector: 'multiselect', inputs: ['data', 'settings'] })
+      ],
+      providers: [
+      { provide: MdDialogRef, useClass: MockDialogRef },
+      { provide: UserService, useValue: mockUserService },
+      { provide: ResponsibilityService, useValue: mockService },
+      { provide: MessageService, useValue: messageService },      
+      { provide: SessionContext, useValue: sessionContext }],
+    }).compileComponents();
+
+
+    fixture = TestBed.createComponent(ShiftChangeComponent);
+    component = fixture.componentInstance;
+    component.isFetchingResp = true;
+  }));
+  it('should init for fetch correctly', async(() => {
+    sessionContext.setAllUsers(USERS);
+    sessionContext.setCurrUser(USERS[1]);    
+
+    mockService.content = RESPONSIBILITIES;
+    mockService.fetchCalled = false;
+    fixture.detectChanges();
+    page = new Page();
+    page.addPageElements();
+    mockService.subscribe(null, null, () => {
+      mockService.content = [];
+      fixture.detectChanges();
+      fixture.whenStable().then(() => {
+        fixture.detectChanges();
+        expect( mockService.fetchCalled ).toBeTruthy();
+      });
+    });
+    click(page.confirmBtn);
+  }));
+});  
+
+
+
 class Page {
   //  gotoSpy:      jasmine.Spy;
   //  navSpy:       jasmine.Spy;