/* tslint:disable max-line-length */ import { TestBed, getTestBed } from '@angular/core/testing'; import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing'; import { HttpClient, HttpResponse } from '@angular/common/http'; import { of } from 'rxjs'; import { take, map } from 'rxjs/operators'; import * as moment from 'moment'; import { DATE_FORMAT } from 'app/shared/constants/input.constants'; import { SepaMandateService } from 'app/entities/sepa-mandate/sepa-mandate.service'; import { ISepaMandate, SepaMandate } from 'app/shared/model/sepa-mandate.model'; describe('Service Tests', () => { describe('SepaMandate Service', () => { let injector: TestBed; let service: SepaMandateService; let httpMock: HttpTestingController; let elemDefault: ISepaMandate; let currentDate: moment.Moment; beforeEach(() => { TestBed.configureTestingModule({ imports: [HttpClientTestingModule] }); injector = getTestBed(); service = injector.get(SepaMandateService); httpMock = injector.get(HttpTestingController); currentDate = moment(); elemDefault = new SepaMandate( 0, 'AAAAAAA', 'AAAAAAA', 'AAAAAAA', currentDate, currentDate, currentDate, currentDate, currentDate, 'AAAAAAA' ); }); describe('Service methods', async () => { it('should find an element', async () => { const returnedFromService = Object.assign( { documentDate: currentDate.format(DATE_FORMAT), validFrom: currentDate.format(DATE_FORMAT), validUntil: currentDate.format(DATE_FORMAT), lastUsed: currentDate.format(DATE_FORMAT), cancellationDate: currentDate.format(DATE_FORMAT) }, elemDefault ); service .find(123) .pipe(take(1)) .subscribe(resp => expect(resp).toMatchObject({ body: elemDefault })); const req = httpMock.expectOne({ method: 'GET' }); req.flush(JSON.stringify(returnedFromService)); }); it('should create a SepaMandate', async () => { const returnedFromService = Object.assign( { id: 0, documentDate: currentDate.format(DATE_FORMAT), validFrom: currentDate.format(DATE_FORMAT), validUntil: currentDate.format(DATE_FORMAT), lastUsed: currentDate.format(DATE_FORMAT), cancellationDate: currentDate.format(DATE_FORMAT) }, elemDefault ); const expected = Object.assign( { documentDate: currentDate, validFrom: currentDate, validUntil: currentDate, lastUsed: currentDate, cancellationDate: currentDate }, returnedFromService ); service .create(new SepaMandate(null)) .pipe(take(1)) .subscribe(resp => expect(resp).toMatchObject({ body: expected })); const req = httpMock.expectOne({ method: 'POST' }); req.flush(JSON.stringify(returnedFromService)); }); it('should update a SepaMandate', async () => { const returnedFromService = Object.assign( { reference: 'BBBBBB', iban: 'BBBBBB', bic: 'BBBBBB', documentDate: currentDate.format(DATE_FORMAT), validFrom: currentDate.format(DATE_FORMAT), validUntil: currentDate.format(DATE_FORMAT), lastUsed: currentDate.format(DATE_FORMAT), cancellationDate: currentDate.format(DATE_FORMAT), remark: 'BBBBBB' }, elemDefault ); const expected = Object.assign( { documentDate: currentDate, validFrom: currentDate, validUntil: currentDate, lastUsed: currentDate, cancellationDate: currentDate }, returnedFromService ); service .update(expected) .pipe(take(1)) .subscribe(resp => expect(resp).toMatchObject({ body: expected })); const req = httpMock.expectOne({ method: 'PUT' }); req.flush(JSON.stringify(returnedFromService)); }); it('should return a list of SepaMandate', async () => { const returnedFromService = Object.assign( { reference: 'BBBBBB', iban: 'BBBBBB', bic: 'BBBBBB', documentDate: currentDate.format(DATE_FORMAT), validFrom: currentDate.format(DATE_FORMAT), validUntil: currentDate.format(DATE_FORMAT), lastUsed: currentDate.format(DATE_FORMAT), cancellationDate: currentDate.format(DATE_FORMAT), remark: 'BBBBBB' }, elemDefault ); const expected = Object.assign( { documentDate: currentDate, validFrom: currentDate, validUntil: currentDate, lastUsed: currentDate, cancellationDate: currentDate }, returnedFromService ); service .query(expected) .pipe( take(1), map(resp => resp.body) ) .subscribe(body => expect(body).toContainEqual(expected)); const req = httpMock.expectOne({ method: 'GET' }); req.flush(JSON.stringify([returnedFromService])); httpMock.verify(); }); it('should delete a SepaMandate', async () => { const rxPromise = service.delete(123).subscribe(resp => expect(resp.ok)); const req = httpMock.expectOne({ method: 'DELETE' }); req.flush({ status: 200 }); }); }); afterEach(() => { httpMock.verify(); }); }); });