import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing'
import { TestBed } from '@angular/core/testing';
-import { EIJob, EIProducer } from '../../interfaces/ei.types';
+import { EIJob, ProducerStatus, OperationalState, ProducerRegistrationInfo } from '@interfaces/ei.types';
import { EIService } from './ei.service';
describe('EIService', () => {
- let basePath = 'api/enrichment';
+ let basePath = '/ei-producer/v1';
let service: EIService;
let httpTestingController: HttpTestingController;
}));
it('should be created', () => {
- service = TestBed.get(EIService);
+ service = TestBed.inject(EIService);
expect(service).toBeTruthy();
});
- describe('#getEIProducers', () => {
- let expectedEIProducers: EIProducer[];
+ describe('#getProducerIds', () => {
+ let expectedEIProducerIds: string[];
beforeEach(() => {
- service = TestBed.get(EIService);
- httpTestingController = TestBed.get(HttpTestingController);
- expectedEIProducers = [
- { ei_producer_id: '1', ei_producer_types: ['EI Type 1'], status: 'ENABLED' },
- { ei_producer_id: '1', ei_producer_types: ['EI Type 1'], status: 'ENABLED' }
- ] as EIProducer[];
+ service = TestBed.inject(EIService);
+ httpTestingController = TestBed.inject(HttpTestingController);
+ expectedEIProducerIds = [ 'producer1', 'producer2' ] as string[];
});
- it('should return all producers', () => {
- service.getEIProducers().subscribe(
- producers => expect(producers).toEqual(expectedEIProducers, 'should return expected EIProducers'),
+ it('should return all producer IDs', () => {
+ service.getProducerIds().subscribe(
+ producers => expect(producers).toEqual(expectedEIProducerIds, 'should return expected EIProducer IDs'),
fail
);
- const req = httpTestingController.expectOne(basePath + '/' + service.eiProducerPath);
+ const req = httpTestingController.expectOne(basePath + '/' + service.eiProducersPath);
expect(req.request.method).toEqual('GET');
- req.flush(expectedEIProducers); //Return expectedEITypes
+ req.flush(expectedEIProducerIds); //Return expected producer IDs
httpTestingController.verify();
});
});
- describe('#EIJobs', () => {
+ describe('#getJobsForProducer', () => {
let expectedEIJobs: EIJob[];
beforeEach(() => {
- service = TestBed.get(EIService);
- httpTestingController = TestBed.get(HttpTestingController);
+ service = TestBed.inject(EIService);
+ httpTestingController = TestBed.inject(HttpTestingController);
expectedEIJobs = [
{ ei_job_identity: '1', ei_job_data: 'data', ei_type_identity: 'Type ID 1', target_uri: 'hhtp://url', owner: 'owner'},
{ ei_job_identity: '2', ei_job_data: 'EI Job 2', ei_type_identity: 'Type ID 2', target_uri: 'hhtp://url', owner: 'owner'}
});
it('should return all jobs', () => {
- service.getEIJobs().subscribe(
+ service.getJobsForProducer('producer1').subscribe(
jobs => expect(jobs).toEqual(expectedEIJobs, 'should return expected Jobs'),
fail
);
- const req = httpTestingController.expectOne(basePath + '/' + service.eiJobPath);
+ const req = httpTestingController.expectOne(basePath + '/' + service.eiProducersPath + '/producer1/' + service.eiJobsPath);
expect(req.request.method).toEqual('GET');
req.flush(expectedEIJobs); //Return expectedEIJobs
httpTestingController.verify();
});
});
+
+ describe('#getProducer', () => {
+ let expectedProducer: ProducerRegistrationInfo;
+
+ beforeEach(() => {
+ service = TestBed.inject(EIService);
+ httpTestingController = TestBed.inject(HttpTestingController);
+ expectedProducer = {
+ supported_ei_types: [ 'type1', 'type2' ]
+ } as ProducerRegistrationInfo;
+ });
+
+ it('should return producer', () => {
+ service.getProducer('producer1').subscribe(
+ producer => expect(producer).toEqual(expectedProducer, 'should return expected producer'),
+ fail
+ );
+
+ const req = httpTestingController.expectOne(basePath + '/' + service.eiProducersPath + '/producer1');
+ expect(req.request.method).toEqual('GET');
+
+ req.flush(expectedProducer); //Return expected producer
+
+ httpTestingController.verify();
+ });
+ });
+
+ describe('#getProducerStatus', () => {
+ let expectedProducerStatus: ProducerStatus;
+
+ beforeEach(() => {
+ service = TestBed.inject(EIService);
+ httpTestingController = TestBed.inject(HttpTestingController);
+ expectedProducerStatus = {
+ operational_state: OperationalState.ENABLED
+ } as ProducerStatus;
+ });
+
+ it('should return producer status', () => {
+ service.getProducerStatus('producer1').subscribe(
+ producerStatus => expect(producerStatus).toEqual(expectedProducerStatus, 'should return expected producer'),
+ fail
+ );
+
+ const req = httpTestingController.expectOne(basePath + '/' + service.eiProducersPath + '/producer1/' + service.eiProducerStatusPath);
+ expect(req.request.method).toEqual('GET');
+
+ req.flush(expectedProducerStatus); //Return expected status
+
+ httpTestingController.verify();
+ });
+ });
});