describe('Location Service', () => {
let injector: TestBed;
let service: LocationService;
let httpMock: HttpTestingController;
let elemDefault: ILocation;
beforeEach(() => {
TestBed.configureTestingModule({
imports: [HttpClientTestingModule]
});
injector = getTestBed();
service = injector.get(LocationService);
httpMock = injector.get(HttpTestingController);
elemDefault = new Location(0, 'AAAAAAA', 'AAAAAAA', 0, 0, 'AAAAAAA', 'AAAAAAA');
});
describe('Service methods', async () => {
it('should find an element', async () => {
const returnedFromService = Object.assign({}, 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 Location', async () => {
const returnedFromService = Object.assign(
{
id: 0
},
elemDefault
);
const expected = Object.assign({}, returnedFromService);
service
.create(new Location(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 Location', async () => {
const returnedFromService = Object.assign(
{
name: 'BBBBBB',
formattedAddress: 'BBBBBB',
latitude: 1,
longitude: 1,
placeId: 'BBBBBB',
data: 'BBBBBB'
},
elemDefault
);
const expected = Object.assign({}, 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 Location', async () => {
const returnedFromService = Object.assign(
{
name: 'BBBBBB',
formattedAddress: 'BBBBBB',
latitude: 1,
longitude: 1,
placeId: 'BBBBBB',
data: 'BBBBBB'
},
elemDefault
);
const expected = Object.assign({}, 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 Location', async () => {
const rxPromise = service.delete(123).subscribe(resp => expect(resp.ok));
const req = httpMock.expectOne({ method: 'DELETE' });
req.flush({ status: 200 });
});
});
afterEach(() => {
//.........这里部分代码省略.........
请发表评论