Skip to content
Snippets Groups Projects
Commit 63c39ae0 authored by OZGCloud's avatar OZGCloud
Browse files

OZG-4461 OZG-4509 remove command facade

parent a2ea92e7
No related branches found
No related tags found
No related merge requests found
/*
* Copyright (C) 2022 Das Land Schleswig-Holstein vertreten durch den
* Ministerpräsidenten des Landes Schleswig-Holstein
* Staatskanzlei
* Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
*
* Lizenziert unter der EUPL, Version 1.2 oder - sobald
* diese von der Europäischen Kommission genehmigt wurden -
* Folgeversionen der EUPL ("Lizenz");
* Sie dürfen dieses Werk ausschließlich gemäß
* dieser Lizenz nutzen.
* Eine Kopie der Lizenz finden Sie hier:
*
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
*
* Sofern nicht durch anwendbare Rechtsvorschriften
* gefordert oder in schriftlicher Form vereinbart, wird
* die unter der Lizenz verbreitete Software "so wie sie
* ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
* ausdrücklich oder stillschweigend - verbreitet.
* Die sprachspezifischen Genehmigungen und Beschränkungen
* unter der Lizenz sind dem Lizenztext zu entnehmen.
*/
import { Mock, mock, useFromMock } from '@goofy-client/test-utils';
import { Store } from '@ngrx/store';
import { Subject } from 'rxjs';
import { CommandFacade } from './command.facade';
import * as CommandActions from './command.actions';
describe('CommandFacade', () => {
let facade: CommandFacade;
let store: Mock<Store>;
let selectionSubject: Subject<any>;
beforeEach(() => {
store = mock(Store);
selectionSubject = new Subject();
store.select.mockReturnValue(selectionSubject);
store.dispatch = jest.fn();
facade = new CommandFacade(useFromMock(<any>store));
})
it('is initialized', () => {
expect(facade).toBeTruthy();
})
describe('dispatchConcurrentModificationCommand', () => {
it('should dispatch "publishConcurrentModificationAction" action', () => {
facade.dispatchConcurrentModificationCommand();
expect(store.dispatch).toHaveBeenCalledWith(CommandActions.publishConcurrentModificationAction());
});
})
})
\ No newline at end of file
/*
* Copyright (C) 2022 Das Land Schleswig-Holstein vertreten durch den
* Ministerpräsidenten des Landes Schleswig-Holstein
* Staatskanzlei
* Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
*
* Lizenziert unter der EUPL, Version 1.2 oder - sobald
* diese von der Europäischen Kommission genehmigt wurden -
* Folgeversionen der EUPL ("Lizenz");
* Sie dürfen dieses Werk ausschließlich gemäß
* dieser Lizenz nutzen.
* Eine Kopie der Lizenz finden Sie hier:
*
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
*
* Sofern nicht durch anwendbare Rechtsvorschriften
* gefordert oder in schriftlicher Form vereinbart, wird
* die unter der Lizenz verbreitete Software "so wie sie
* ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
* ausdrücklich oder stillschweigend - verbreitet.
* Die sprachspezifischen Genehmigungen und Beschränkungen
* unter der Lizenz sind dem Lizenztext zu entnehmen.
*/
import { Injectable } from '@angular/core';
import { Store } from '@ngrx/store';
import * as CommandActions from './command.actions';
@Injectable()
export class CommandFacade {
constructor(private readonly store: Store) { }
public dispatchConcurrentModificationCommand(): void {
this.store.dispatch(CommandActions.publishConcurrentModificationAction());
}
}
\ No newline at end of file
...@@ -26,7 +26,6 @@ import { NgModule } from '@angular/core'; ...@@ -26,7 +26,6 @@ import { NgModule } from '@angular/core';
import { EffectsModule } from '@ngrx/effects'; import { EffectsModule } from '@ngrx/effects';
import { StoreModule } from '@ngrx/store'; import { StoreModule } from '@ngrx/store';
import { CommandEffects } from './+state/command.effects'; import { CommandEffects } from './+state/command.effects';
import { CommandFacade } from './+state/command.facade';
import { COMMAND_FEATURE_KEY, reducer } from './+state/command.reducer'; import { COMMAND_FEATURE_KEY, reducer } from './+state/command.reducer';
@NgModule({ @NgModule({
...@@ -34,7 +33,6 @@ import { COMMAND_FEATURE_KEY, reducer } from './+state/command.reducer'; ...@@ -34,7 +33,6 @@ import { COMMAND_FEATURE_KEY, reducer } from './+state/command.reducer';
CommonModule, CommonModule,
StoreModule.forFeature(COMMAND_FEATURE_KEY, reducer), StoreModule.forFeature(COMMAND_FEATURE_KEY, reducer),
EffectsModule.forFeature([CommandEffects]) EffectsModule.forFeature([CommandEffects])
], ]
providers:[CommandFacade]
}) })
export class CommandSharedModule { } export class CommandSharedModule { }
...@@ -33,7 +33,6 @@ import { createCommand, createCommandErrorResource, createCommandListResource, c ...@@ -33,7 +33,6 @@ import { createCommand, createCommandErrorResource, createCommandListResource, c
import { createHttpErrorResponse } from 'libs/tech-shared/test/http'; import { createHttpErrorResponse } from 'libs/tech-shared/test/http';
import { toResource } from 'libs/tech-shared/test/resource'; import { toResource } from 'libs/tech-shared/test/resource';
import { Observable, Subject, of, throwError } from 'rxjs'; import { Observable, Subject, of, throwError } from 'rxjs';
import { CommandFacade } from './+state/command.facade';
import { CommandLinkRel } from './command.linkrel'; import { CommandLinkRel } from './command.linkrel';
import { CommandErrorMessage } from './command.message'; import { CommandErrorMessage } from './command.message';
import { Command, CommandListResource, CommandOrder, CommandResource, CreateCommandProps } from './command.model'; import { Command, CommandListResource, CommandOrder, CommandResource, CreateCommandProps } from './command.model';
...@@ -50,7 +49,6 @@ describe('CommandService', () => { ...@@ -50,7 +49,6 @@ describe('CommandService', () => {
let selectionSubject: Subject<any>; let selectionSubject: Subject<any>;
const snackbarService: Mock<SnackBarService> = mock(SnackBarService); const snackbarService: Mock<SnackBarService> = mock(SnackBarService);
const commandFacade: Mock<CommandFacade> = mock(CommandFacade);
const command: Command = createCommand(); const command: Command = createCommand();
...@@ -66,7 +64,7 @@ describe('CommandService', () => { ...@@ -66,7 +64,7 @@ describe('CommandService', () => {
store.dispatch = jest.fn(); store.dispatch = jest.fn();
repository = mock(CommandRepository); repository = mock(CommandRepository);
service = new CommandService(useFromMock(repository), useFromMock(snackbarService), useFromMock(commandFacade), useFromMock(<any>store)); service = new CommandService(useFromMock(repository), useFromMock(snackbarService), useFromMock(<any>store));
}) })
describe('create command', () => { describe('create command', () => {
...@@ -187,10 +185,10 @@ describe('CommandService', () => { ...@@ -187,10 +185,10 @@ describe('CommandService', () => {
expect(snackbarService.showError).toHaveBeenCalledWith('Der Vorgang wurde zwischenzeitlich verändert und wurde neu geladen.'); expect(snackbarService.showError).toHaveBeenCalledWith('Der Vorgang wurde zwischenzeitlich verändert und wurde neu geladen.');
}) })
it('should call command facade "dispatchConcurrentModificationCommand"', () => { it('should dispatch "dispatchConcurrentModificationCommand" action', () => {
service.handleCommandError({...commandResource, errorMessage: CommandErrorMessage.CONCURRENT_MODIFICATION}); service.handleCommandError({...commandResource, errorMessage: CommandErrorMessage.CONCURRENT_MODIFICATION});
expect(commandFacade.dispatchConcurrentModificationCommand).toHaveBeenCalled(); expect(store.dispatch).toHaveBeenCalledWith(Actions.publishConcurrentModificationAction);
}) })
}) })
......
...@@ -30,7 +30,6 @@ import { Resource } from '@ngxp/rest'; ...@@ -30,7 +30,6 @@ import { Resource } from '@ngxp/rest';
import { Observable, of, Subject, throwError } from 'rxjs'; import { Observable, of, Subject, throwError } from 'rxjs';
import { catchError, map, mergeMap, tap } from 'rxjs/operators'; import { catchError, map, mergeMap, tap } from 'rxjs/operators';
import { CommandEffects } from './+state/command.effects'; import { CommandEffects } from './+state/command.effects';
import { CommandFacade } from './+state/command.facade';
import { COMMAND_ERROR_MESSAGES } from './command.message'; import { COMMAND_ERROR_MESSAGES } from './command.message';
import { CommandListResource, CommandOrder, CommandResource, CreateCommand, CreateCommandProps } from './command.model'; import { CommandListResource, CommandOrder, CommandResource, CreateCommand, CreateCommandProps } from './command.model';
import { CommandRepository } from './command.repository'; import { CommandRepository } from './command.repository';
...@@ -44,7 +43,7 @@ export class CommandService { ...@@ -44,7 +43,7 @@ export class CommandService {
intervalTimer: number = CommandEffects.POLL_DELAY; intervalTimer: number = CommandEffects.POLL_DELAY;
constructor(private repository: CommandRepository, private snackBarService: SnackBarService, private facade: CommandFacade, private store: Store) { } constructor(private repository: CommandRepository, private snackBarService: SnackBarService, private store: Store) { }
public createCommand(resource: Resource, linkRel: string, command: CreateCommand): Observable<StateResource<CommandResource>> { public createCommand(resource: Resource, linkRel: string, command: CreateCommand): Observable<StateResource<CommandResource>> {
return this.handleCommandResponse(this.repository.createCommand(resource, linkRel, command)); return this.handleCommandResponse(this.repository.createCommand(resource, linkRel, command));
...@@ -78,7 +77,7 @@ export class CommandService { ...@@ -78,7 +77,7 @@ export class CommandService {
handleCommandError(command: CommandResource): Observable<StateResource<CommandResource>> { handleCommandError(command: CommandResource): Observable<StateResource<CommandResource>> {
if(isConcurrentModification(command.errorMessage)){ if(isConcurrentModification(command.errorMessage)){
this.snackBarService.showError(COMMAND_ERROR_MESSAGES[command.errorMessage]); this.snackBarService.showError(COMMAND_ERROR_MESSAGES[command.errorMessage]);
this.facade.dispatchConcurrentModificationCommand(); this.store.dispatch(Actions.publishConcurrentModificationAction());
} }
return of(createStateResource(command)); return of(createStateResource(command));
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment