X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=enrichment-coordinator-service%2Fsrc%2Ftest%2Fjava%2Forg%2Foransc%2Fenrichment%2FApplicationTest.java;h=e272faa5a37aef1af3666869194520477af25541;hb=9e3bf9348a6f2a739411316591093f3b9a0fc937;hp=67b0d8a469b66ec4526ea8992e4b49e1259e29ca;hpb=13b5a8e1fce75882c2f0ea89e74c218e454ec05f;p=nonrtric.git diff --git a/enrichment-coordinator-service/src/test/java/org/oransc/enrichment/ApplicationTest.java b/enrichment-coordinator-service/src/test/java/org/oransc/enrichment/ApplicationTest.java index 67b0d8a4..e272faa5 100644 --- a/enrichment-coordinator-service/src/test/java/org/oransc/enrichment/ApplicationTest.java +++ b/enrichment-coordinator-service/src/test/java/org/oransc/enrichment/ApplicationTest.java @@ -1,9 +1,9 @@ /*- * ========================LICENSE_START================================= - * ONAP : ccsdk oran - * ====================================================================== - * Copyright (C) 2019-2020 Nordix Foundation. All rights reserved. - * ====================================================================== + * O-RAN-SC + * %% + * Copyright (C) 2020 Nordix Foundation + * %% * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -42,6 +42,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.oransc.enrichment.clients.AsyncRestClient; +import org.oransc.enrichment.clients.AsyncRestClientFactory; import org.oransc.enrichment.clients.ProducerJobInfo; import org.oransc.enrichment.configuration.ApplicationConfig; import org.oransc.enrichment.configuration.ImmutableWebClientConfig; @@ -112,9 +113,7 @@ class ApplicationTest { @Autowired ProducerSupervision producerSupervision; - private static Gson gson = new GsonBuilder() // - .serializeNulls() // - .create(); // + private static Gson gson = new GsonBuilder().create(); /** * Overrides the BeanFactory. @@ -163,13 +162,20 @@ class ApplicationTest { assertThat(rsp).isEqualTo("[\"test\"]"); } + @Test + void testGetEiTypesEmpty() throws Exception { + String url = ConsumerConsts.API_ROOT + "/eitypes"; + String rsp = restClient().get(url).block(); + assertThat(rsp).isEqualTo("[]"); + } + @Test void testGetEiType() throws Exception { putEiProducerWithOneType(EI_PRODUCER_ID, "test"); String url = ConsumerConsts.API_ROOT + "/eitypes/test"; String rsp = restClient().get(url).block(); ConsumerEiTypeInfo info = gson.fromJson(rsp, ConsumerEiTypeInfo.class); - assertThat(info.jobParametersSchema).isNotNull(); + assertThat(info).isNotNull(); } @Test @@ -182,31 +188,47 @@ class ApplicationTest { void testGetEiJobsIds() throws Exception { putEiProducerWithOneType(EI_PRODUCER_ID, EI_TYPE_ID); putEiJob(EI_TYPE_ID, "jobId"); - String url = ConsumerConsts.API_ROOT + "/eitypes/typeId/eijobs"; + final String JOB_ID_JSON = "[\"jobId\"]"; + String url = ConsumerConsts.API_ROOT + "/eijobs?eiTypeId=typeId"; String rsp = restClient().get(url).block(); - assertThat(rsp).isEqualTo("[\"jobId\"]"); - } + assertThat(rsp).isEqualTo(JOB_ID_JSON); - @Test - void testGetEiJobTypeNotFound() throws Exception { - String url = ConsumerConsts.API_ROOT + "/eitypes/junk/eijobs"; - testErrorCode(restClient().get(url), HttpStatus.NOT_FOUND, "Could not find EI type: junk"); + url = ConsumerConsts.API_ROOT + "/eijobs?owner=owner"; + rsp = restClient().get(url).block(); + assertThat(rsp).isEqualTo(JOB_ID_JSON); + + url = ConsumerConsts.API_ROOT + "/eijobs?owner=JUNK"; + rsp = restClient().get(url).block(); + assertThat(rsp).isEqualTo("[]"); + + url = ConsumerConsts.API_ROOT + "/eijobs"; + rsp = restClient().get(url).block(); + assertThat(rsp).isEqualTo(JOB_ID_JSON); + + url = ConsumerConsts.API_ROOT + "/eijobs?eiTypeId=typeId&&owner=owner"; + rsp = restClient().get(url).block(); + assertThat(rsp).isEqualTo(JOB_ID_JSON); + + url = ConsumerConsts.API_ROOT + "/eijobs?eiTypeId=JUNK"; + rsp = restClient().get(url).block(); + assertThat(rsp).isEqualTo("[]"); } @Test void testGetEiJob() throws Exception { putEiProducerWithOneType(EI_PRODUCER_ID, EI_TYPE_ID); putEiJob(EI_TYPE_ID, "jobId"); - String url = ConsumerConsts.API_ROOT + "/eitypes/typeId/eijobs/jobId"; + String url = ConsumerConsts.API_ROOT + "/eijobs/jobId"; String rsp = restClient().get(url).block(); ConsumerEiJobInfo info = gson.fromJson(rsp, ConsumerEiJobInfo.class); assertThat(info.owner).isEqualTo("owner"); + assertThat(info.eiTypeId).isEqualTo(EI_TYPE_ID); } @Test void testGetEiJobNotFound() throws Exception { putEiProducerWithOneType(EI_PRODUCER_ID, EI_TYPE_ID); - String url = ConsumerConsts.API_ROOT + "/eitypes/typeId/eijobs/junk"; + String url = ConsumerConsts.API_ROOT + "/eijobs/junk"; testErrorCode(restClient().get(url), HttpStatus.NOT_FOUND, "Could not find EI job: junk"); } @@ -214,7 +236,7 @@ class ApplicationTest { void testGetEiJobStatus() throws Exception { putEiProducerWithOneType(EI_PRODUCER_ID, EI_TYPE_ID); putEiJob(EI_TYPE_ID, "jobId"); - String url = ConsumerConsts.API_ROOT + "/eitypes/typeId/eijobs/jobId/status"; + String url = ConsumerConsts.API_ROOT + "/eijobs/jobId/status"; String rsp = restClient().get(url).block(); assertThat(rsp).contains("ENABLED"); } @@ -226,7 +248,7 @@ class ApplicationTest { putEiProducerWithOneType(EI_PRODUCER_ID, EI_TYPE_ID); putEiJob(EI_TYPE_ID, "jobId"); assertThat(this.eiJobs.size()).isEqualTo(1); - String url = ConsumerConsts.API_ROOT + "/eitypes/typeId/eijobs/jobId"; + String url = ConsumerConsts.API_ROOT + "/eijobs/jobId"; restClient().delete(url).block(); assertThat(this.eiJobs.size()).isZero(); @@ -238,7 +260,7 @@ class ApplicationTest { @Test void testDeleteEiJobNotFound() throws Exception { putEiProducerWithOneType(EI_PRODUCER_ID, EI_TYPE_ID); - String url = ConsumerConsts.API_ROOT + "/eitypes/typeId/eijobs/junk"; + String url = ConsumerConsts.API_ROOT + "/eijobs/junk"; testErrorCode(restClient().get(url), HttpStatus.NOT_FOUND, "Could not find EI job: junk"); } @@ -248,7 +270,7 @@ class ApplicationTest { putEiProducerWithOneType(EI_PRODUCER_ID, EI_TYPE_ID); putEiProducerWithOneTypeRejecting("simulateProducerError", EI_TYPE_ID); - String url = ConsumerConsts.API_ROOT + "/eitypes/typeId/eijobs/jobId"; + String url = ConsumerConsts.API_ROOT + "/eijobs/jobId"; String body = gson.toJson(eiJobInfo()); ResponseEntity resp = restClient().putForEntity(url, body).block(); assertThat(this.eiJobs.size()).isEqualTo(1); @@ -270,7 +292,7 @@ class ApplicationTest { @Test void putEiProducerWithOneType_rejecting() throws JsonMappingException, JsonProcessingException, ServiceException { putEiProducerWithOneTypeRejecting("simulateProducerError", EI_TYPE_ID); - String url = ConsumerConsts.API_ROOT + "/eitypes/typeId/eijobs/jobId"; + String url = ConsumerConsts.API_ROOT + "/eijobs/jobId"; String body = gson.toJson(eiJobInfo()); testErrorCode(restClient().put(url, body), HttpStatus.CONFLICT, "Job not accepted by any producers"); @@ -282,10 +304,10 @@ class ApplicationTest { void testPutEiJob_jsonSchemavalidationError() throws Exception { putEiProducerWithOneType(EI_PRODUCER_ID, EI_TYPE_ID); - String url = ConsumerConsts.API_ROOT + "/eitypes/typeId/eijobs/jobId"; + String url = ConsumerConsts.API_ROOT + "/eijobs/jobId"; // The element with name "property1" is mandatory in the schema ConsumerEiJobInfo jobInfo = - new ConsumerEiJobInfo(jsonObject("{ \"XXstring\" : \"value\" }"), "owner", "targetUri"); + new ConsumerEiJobInfo("typeId", jsonObject("{ \"XXstring\" : \"value\" }"), "owner", "targetUri"); String body = gson.toJson(jobInfo); testErrorCode(restClient().put(url, body), HttpStatus.CONFLICT, "Json validation failure"); @@ -326,8 +348,8 @@ class ApplicationTest { putEiProducerWithOneType("producer2", "typeId2"); putEiJob("typeId1", "jobId"); - String url = ConsumerConsts.API_ROOT + "/eitypes/typeId2/eijobs/jobId"; - String body = gson.toJson(eiJobInfo()); + String url = ConsumerConsts.API_ROOT + "/eijobs/jobId"; + String body = gson.toJson(eiJobInfo("typeId2")); testErrorCode(restClient().put(url, body), HttpStatus.CONFLICT, "Not allowed to change type for existing EI job"); } @@ -376,7 +398,7 @@ class ApplicationTest { assertThat(this.eiTypes.size()).isEqualTo(1); this.eiTypes.getType(EI_TYPE_ID); - url = ConsumerConsts.API_ROOT + "/eitypes/typeId/eijobs/jobId"; + url = ConsumerConsts.API_ROOT + "/eijobs/jobId"; body = gson.toJson(eiJobInfo()); restClient().putForEntity(url, body).block(); @@ -474,6 +496,16 @@ class ApplicationTest { assertThat(this.eiTypes.size()).isEqualTo(0); } + @Test + void testGetStatus() throws JsonMappingException, JsonProcessingException, ServiceException { + putEiProducerWithOneTypeRejecting("simulateProducerError", EI_TYPE_ID); + putEiProducerWithOneTypeRejecting("simulateProducerError2", EI_TYPE_ID); + + String url = "/status"; + ResponseEntity resp = restClient().getForEntity(url).block(); + assertThat(resp.getBody()).contains("hunky dory"); + } + ProducerEiTypeRegistrationInfo producerEiTypeRegistrationInfo(String typeId) throws JsonMappingException, JsonProcessingException { return new ProducerEiTypeRegistrationInfo(jsonSchemaObject(), typeId); @@ -500,7 +532,11 @@ class ApplicationTest { } ConsumerEiJobInfo eiJobInfo() throws JsonMappingException, JsonProcessingException { - return new ConsumerEiJobInfo(jsonObject(), "owner", "targetUri"); + return eiJobInfo(EI_TYPE_ID); + } + + ConsumerEiJobInfo eiJobInfo(String typeId) throws JsonMappingException, JsonProcessingException { + return new ConsumerEiJobInfo(typeId, jsonObject(), "owner", "targetUri"); } Object jsonObject(String json) { @@ -535,8 +571,8 @@ class ApplicationTest { private EiJob putEiJob(String eiTypeId, String jobId) throws JsonMappingException, JsonProcessingException, ServiceException { - String url = ConsumerConsts.API_ROOT + "/eitypes/" + eiTypeId + "/eijobs/" + jobId; - String body = gson.toJson(eiJobInfo()); + String url = ConsumerConsts.API_ROOT + "/eijobs/" + jobId; + String body = gson.toJson(eiJobInfo(eiTypeId)); restClient().putForEntity(url, body).block(); return this.eiJobs.getJob(jobId); @@ -576,7 +612,8 @@ class ApplicationTest { .trustStorePassword(config.trustStorePassword()) // .build(); - return new AsyncRestClient(baseUrl(), config); + AsyncRestClientFactory restClientFactory = new AsyncRestClientFactory(config); + return restClientFactory.createRestClient(baseUrl()); } private AsyncRestClient restClient() {