diff options
author | Ram Krishna Verma <ram_krishna.verma@bell.ca> | 2020-06-29 16:02:12 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@onap.org> | 2020-06-29 16:02:12 +0000 |
commit | 21607022333b8d3917754d071d5e4c259308edef (patch) | |
tree | ef944ba216839fa27cc2c756287e8d4f6929b627 /models-interactions/model-simulators/src/test | |
parent | f7da60fabf647665d61f142a0d6ba9a9fc940106 (diff) | |
parent | f586da49681a510c79729d94a4565694d952b83b (diff) |
Merge "Add CDS simulator to policy-models"
Diffstat (limited to 'models-interactions/model-simulators/src/test')
3 files changed, 165 insertions, 0 deletions
diff --git a/models-interactions/model-simulators/src/test/java/org/onap/policy/simulators/CdsSimulatorTest.java b/models-interactions/model-simulators/src/test/java/org/onap/policy/simulators/CdsSimulatorTest.java new file mode 100644 index 000000000..5f82b7e94 --- /dev/null +++ b/models-interactions/model-simulators/src/test/java/org/onap/policy/simulators/CdsSimulatorTest.java @@ -0,0 +1,114 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP + * ================================================================================ + * Copyright (C) 2020 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.simulators; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import io.grpc.ManagedChannel; +import io.grpc.internal.DnsNameResolverProvider; +import io.grpc.internal.PickFirstLoadBalancerProvider; +import io.grpc.netty.NettyChannelBuilder; +import io.grpc.stub.StreamObserver; +import java.nio.charset.StandardCharsets; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.TimeUnit; +import org.apache.commons.io.IOUtils; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.onap.ccsdk.cds.controllerblueprints.processing.api.BluePrintProcessingServiceGrpc; +import org.onap.ccsdk.cds.controllerblueprints.processing.api.BluePrintProcessingServiceGrpc.BluePrintProcessingServiceStub; +import org.onap.ccsdk.cds.controllerblueprints.processing.api.ExecutionServiceInput; +import org.onap.ccsdk.cds.controllerblueprints.processing.api.ExecutionServiceOutput; +import org.onap.policy.common.utils.coder.StandardCoder; + +public class CdsSimulatorTest { + private static final StandardCoder coder = new StandardCoder(); + + private CdsSimulator sim; + + @Before + public void setUp() throws Exception { + sim = Util.buildCdsSim(); + } + + @After + public void tearDown() { + sim.stop(); + } + + @Test + public void test() throws Exception { + String reqstr = IOUtils.toString(getClass().getResource("cds/cds.request.json"), StandardCharsets.UTF_8); + ExecutionServiceInput request = coder.decode(reqstr, ExecutionServiceInput.class); + + ManagedChannel channel = NettyChannelBuilder.forAddress("localhost", sim.getPort()) + .nameResolverFactory(new DnsNameResolverProvider()) + .loadBalancerFactory(new PickFirstLoadBalancerProvider()).usePlaintext().build(); + + try { + final CompletableFuture<ExecutionServiceOutput> future = new CompletableFuture<>(); + final CountDownLatch completed = new CountDownLatch(1); + + BluePrintProcessingServiceStub asyncStub = BluePrintProcessingServiceGrpc.newStub(channel); + + StreamObserver<ExecutionServiceOutput> responseObserver = new StreamObserver<ExecutionServiceOutput>() { + @Override + public void onNext(ExecutionServiceOutput output) { + future.complete(output); + } + + @Override + public void onError(Throwable throwable) { + future.completeExceptionally(throwable); + } + + @Override + public void onCompleted() { + completed.countDown(); + } + }; + + StreamObserver<ExecutionServiceInput> requestObserver = asyncStub.process(responseObserver); + try { + // publish the message + requestObserver.onNext(request); + + // indicate that the request is done + requestObserver.onCompleted(); + + } catch (RuntimeException e) { + requestObserver.onError(e); + } + + // wait for it to complete + assertTrue(completed.await(5, TimeUnit.SECONDS)); + + ExecutionServiceOutput result = future.get(); + assertEquals(200, result.getStatus().getCode()); + + } finally { + channel.shutdown(); + } + } +} diff --git a/models-interactions/model-simulators/src/test/java/org/onap/policy/simulators/ExceptionsTest.java b/models-interactions/model-simulators/src/test/java/org/onap/policy/simulators/ExceptionsTest.java new file mode 100644 index 000000000..e3d91f0f2 --- /dev/null +++ b/models-interactions/model-simulators/src/test/java/org/onap/policy/simulators/ExceptionsTest.java @@ -0,0 +1,37 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP + * ================================================================================ + * Copyright (C) 2020 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.simulators; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.onap.policy.common.utils.test.ExceptionsTester; + +/** + * Tests XxxException classes. + */ +public class ExceptionsTest { + + @Test + public void testSimulatorRuntimeException() { + assertEquals(4, new ExceptionsTester().test(SimulatorRuntimeException.class)); + } +} diff --git a/models-interactions/model-simulators/src/test/resources/org/onap/policy/simulators/cds/cds.request.json b/models-interactions/model-simulators/src/test/resources/org/onap/policy/simulators/cds/cds.request.json new file mode 100644 index 000000000..37e8b05ce --- /dev/null +++ b/models-interactions/model-simulators/src/test/resources/org/onap/policy/simulators/cds/cds.request.json @@ -0,0 +1,14 @@ +{ + "commonHeader": { + "originatorId": "POLICY", + "requestId": "c7c6a4aa-bb61-4a15-b831-ba1472dd4a65", + "subRequestId": "111be3d2-6c12-4f4b-a3e7-c349acced200" + }, + "actionIdentifiers": { + "blueprintName": "pm_control", + "blueprintVersion": "1.0.0", + "actionName": "create-subscription", + "mode": "sync" + }, + "payload": {} +} |