* ONAP
* ================================================================================
* Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2020-2021 Bell Canada. 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.
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
+import com.google.protobuf.TextFormat.ParseException;
+import com.google.protobuf.util.JsonFormat;
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.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.CountDownLatch;
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.ExecutionServiceInput.Builder;
import org.onap.ccsdk.cds.controllerblueprints.processing.api.ExecutionServiceOutput;
+import org.onap.policy.common.utils.coder.CoderException;
import org.onap.policy.common.utils.coder.StandardCoder;
+import org.onap.policy.common.utils.network.NetworkUtil;
+import org.onap.policy.common.utils.resources.ResourceUtils;
public class CdsSimulatorTest {
private static final StandardCoder coder = new StandardCoder();
private CdsSimulator sim;
+ /**
+ * Starts the simulator, allocating a unique port for each test so we don't have to
+ * wait for the prior server to shut down.
+ */
@Before
public void setUp() throws Exception {
- sim = Util.buildCdsSim();
+ int port = NetworkUtil.allocPort();
+ sim = new CdsSimulator(Util.LOCALHOST, port);
+ sim.start();
}
@After
@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();
+ Builder builder = ExecutionServiceInput.newBuilder();
+ JsonFormat.parser().ignoringUnknownFields().merge(reqstr, builder);
+ ExecutionServiceInput request = builder.build();
+ ManagedChannel channel = NettyChannelBuilder.forAddress(Util.LOCALHOST, sim.getPort()).usePlaintext().build();
try {
final CompletableFuture<ExecutionServiceOutput> future = new CompletableFuture<>();
channel.shutdown();
}
}
+
+ @Test
+ public void testGetResponse() throws IOException, CoderException, ParseException {
+ CdsSimulator cdsSimulator = new CdsSimulator(Util.LOCALHOST, sim.getPort());
+ String reqstr = ResourceUtils.getResourceAsString(
+ "org/onap/policy/simulators/cds/cds.request.json");
+ String responseqstr = ResourceUtils.getResourceAsString(
+ "org/onap/policy/simulators/cds/pm_control-create-subscription.json");
+ ExecutionServiceInput request = coder.decode(reqstr, ExecutionServiceInput.class);
+ org.onap.ccsdk.cds.controllerblueprints.processing.api.ExecutionServiceOutput.Builder esoBuilder =
+ ExecutionServiceOutput.newBuilder();
+ JsonFormat.parser().ignoringUnknownFields().merge(responseqstr, esoBuilder);
+ assertEquals(esoBuilder.toString(), cdsSimulator.getResponse(request, 0).toString());
+ }
}