Fixing sorting test
[portal/nonrtric-controlpanel.git] / webapp-frontend / src / app / services / ei / ei.service.spec.ts
index 9e2584b..13d8698 100644 (file)
 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;
 
@@ -38,43 +38,40 @@ describe('EIService', () => {
   }));
 
   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'}
@@ -82,12 +79,12 @@ describe('EIService', () => {
     });
 
     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
@@ -95,4 +92,56 @@ describe('EIService', () => {
       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();
+     });
+  });
 });