*/
package org.opendaylight.transportpce.pce;
+
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.opendaylight.transportpce.pce.gnpy.JerseyServer;
import org.opendaylight.transportpce.pce.utils.PceTestData;
import org.opendaylight.transportpce.pce.utils.PceTestUtils;
-import org.opendaylight.transportpce.pce.utils.TransactionUtils;
import org.opendaylight.transportpce.test.AbstractTest;
private NetworkTransactionImpl networkTransaction;
private DataStoreContext dataStoreContext = this.getDataStoreContextUtil();
private DataBroker dataBroker = this.getDataBroker();
- private JerseyServer jerseyServer = new JerseyServer();
+ private JerseyServer jerseyServer = new JerseyServer();
@Before
- public void setUp() throws Exception {
-// PceTestUtils.writeTopologyIntoDataStore(
-// dataBroker, dataStoreContext, "./topologyData/NW-simple-topology.xml");
- PceTestUtils.writeNetworkIntoDataStore(dataBroker, dataStoreContext, TransactionUtils.getNetworkForSpanLoss());
- networkTransaction = new NetworkTransactionImpl(new RequestProcessor(dataBroker));
- pceSendingPceRPCs = new PceSendingPceRPCs();
+ public void setUp() {
+ networkTransaction = new NetworkTransactionImpl(new RequestProcessor(this.getDataBroker()));
+ PceTestUtils.writeNetworkInDataStore(this.getDataBroker());
pceSendingPceRPCs =
new PceSendingPceRPCs(PceTestData.getPCE_test1_request_54(), networkTransaction);
}
@Test
public void cancelResourceReserve() {
pceSendingPceRPCs.cancelResourceReserve();
- Assert.assertEquals(true, pceSendingPceRPCs.getSuccess());
+ Assert.assertTrue("Success should equal to true", pceSendingPceRPCs.getSuccess());
}
@Test
public void pathComputationTest() throws Exception {
jerseyServer.setUp();
pceSendingPceRPCs =
- new PceSendingPceRPCs(PceTestData.getGnpyPCERequest("nodeA","nodeZ"), networkTransaction);
+ new PceSendingPceRPCs(PceTestData.getGnpyPCERequest("XPONDER-1", "XPONDER-2"),
+ networkTransaction);
+
pceSendingPceRPCs.pathComputation();
ConnectToGnpyServer connectToGnpy = new ConnectToGnpyServer();
Assert.assertTrue(connectToGnpy.isGnpyURLExist());
Assert.assertNull(pceSendingPceRPCs.getGnpyZtoA());
}
+
}
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
+import java.io.ByteArrayInputStream;
import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import javax.ws.rs.core.Application;
import org.glassfish.jersey.server.ResourceConfig;
import org.glassfish.jersey.test.JerseyTest;
+import org.junit.Assert;
import org.junit.Test;
public class ConnectToGnpyServerTest extends JerseyTest {
assertTrue("Result should not be empty", !result.isEmpty());
}
+ @Test
+ public void readResponseTest() throws GnpyException {
+ InputStream anyInputStream = new ByteArrayInputStream("test data".getBytes());
+ ConnectToGnpyServer connectToGnpy = new ConnectToGnpyServer();
+ String result = connectToGnpy.readResponse(new InputStreamReader(anyInputStream));
+ Assert.assertNotNull(result);
+
+ }
+
}
import java.io.IOException;
import java.io.Reader;
import java.net.URI;
+import java.util.ArrayList;
+import java.util.List;
import java.util.concurrent.ExecutionException;
import org.glassfish.grizzly.http.server.HttpServer;
import org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpServerFactory;
import org.glassfish.jersey.server.ResourceConfig;
import org.junit.AfterClass;
+import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
import org.opendaylight.mdsal.binding.api.WriteTransaction;
import org.opendaylight.transportpce.pce.utils.JsonUtil;
import org.opendaylight.transportpce.pce.utils.PceTestData;
import org.opendaylight.transportpce.test.AbstractTest;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.AToZDirectionBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.ZToADirectionBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.atoz.direction.AToZ;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.atoz.direction.AToZBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.atoz.direction.AToZKey;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.pce.resource.Resource;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.pce.resource.ResourceBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.pce.resource.resource.resource.TerminationPoint;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.pce.resource.resource.resource.TerminationPointBuilder;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NetworkId;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.Networks;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.Network;
import org.slf4j.LoggerFactory;
-
public class GnpyUtilitiesImplTest extends AbstractTest {
private static final Logger LOG = LoggerFactory.getLogger(GnpyUtilitiesImplTest.class);
PceConstraintsCalc constraints = new PceConstraintsCalc(PceTestData.getPCE_simpletopology_test1_request(),
networkTransaction);
PceConstraints pceHardConstraints = constraints.getPceHardConstraints();
- assertNotNull("Hard constraints should be available",gnpyUtilitiesImpl.askNewPathFromGnpy(pceHardConstraints));
+ assertNotNull("Hard constraints should be available", gnpyUtilitiesImpl.askNewPathFromGnpy(pceHardConstraints));
+
+
+ }
+
+ @Test
+ public void verifyComputationByGnpyTest() throws Exception {
+ // build AtoZ
+ AToZDirectionBuilder atoZDirectionBldr = buildAtZ();
+ // build ZtoA
+ ZToADirectionBuilder ztoADirectionBldr = buildZtoA();
+
+ gnpyUtilitiesImpl = new GnpyUtilitiesImpl(networkTransaction,
+ PceTestData.getGnpyPCERequest("XPONDER-1", "XPONDER-2"));
+ PceConstraintsCalc constraints = new PceConstraintsCalc(PceTestData.getPCE_simpletopology_test1_request(),
+ networkTransaction);
+ PceConstraints pceHardConstraints = constraints.getPceHardConstraints();
+ boolean result = gnpyUtilitiesImpl.verifyComputationByGnpy(atoZDirectionBldr.build(),
+ ztoADirectionBldr.build(),
+ pceHardConstraints);
+ Assert.assertFalse("Gnpy Computation should be false",result);
+ }
+ private AToZDirectionBuilder buildAtZ() {
+ List<AToZ> atozList = new ArrayList<>();
+ AToZKey clientKey = new AToZKey("key");
+ TerminationPoint stp = new TerminationPointBuilder()
+ .setTpId("tpName").setTpNodeId("xname")
+ .build();
+ Resource clientResource = new ResourceBuilder().setResource(stp).build();
+ AToZ firstResource = new AToZBuilder().setId("tpName").withKey(clientKey).setResource(clientResource).build();
+ atozList.add(firstResource);
+
+ return new AToZDirectionBuilder()
+ .setRate(100L)
+ .setAToZ(atozList)
+ .setAToZWavelengthNumber(Long.valueOf(0));
}
- @Test(expected = Exception.class)
- public void gnpyResponseOneDirectionTest() throws Exception {
- gnpyUtilitiesImpl = new GnpyUtilitiesImpl(networkTransaction, PceTestData.getPCERequest());
- gnpyUtilitiesImpl.gnpyResponseOneDirection(null);
+ private ZToADirectionBuilder buildZtoA() {
+ return new ZToADirectionBuilder()
+ .setRate(100L)
+ .setZToA(new ArrayList())
+ .setZToAWavelengthNumber(Long.valueOf(0));
+
}
}
*/
package org.opendaylight.transportpce.pce.utils;
+import com.google.gson.stream.JsonReader;
+import java.io.FileReader;
+import java.io.IOException;
import java.io.InputStream;
+import java.io.Reader;
import java.util.List;
import java.util.Optional;
import java.util.concurrent.ExecutionException;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.NetworkKey;
import org.opendaylight.yangtools.yang.binding.DataObject;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild;
dataWriteTransaction.commit().get();
}
+ public static void writeNetworkInDataStore(DataBroker dataBroker) {
+
+ try (
+ // load openroadm-network
+ Reader gnpyNetwork = new FileReader("src/test/resources/gnpy/gnpy_network.json");
+ // load openroadm-topology
+ Reader gnpyTopo = new FileReader("src/test/resources/gnpy/gnpy_topology.json");
+ JsonReader networkReader = new JsonReader(gnpyNetwork);
+ JsonReader topoReader = new JsonReader(gnpyTopo);
+ ) {
+
+ Networks networks = (Networks) JsonUtil.getInstance().getDataObjectFromJson(networkReader,
+ QName.create("urn:ietf:params:xml:ns:yang:ietf-network", "2018-02-26", "networks"));
+ saveOpenRoadmNetwork(networks.getNetwork().get(0), NetworkUtils.UNDERLAY_NETWORK_ID, dataBroker);
+ networks = (Networks) JsonUtil.getInstance().getDataObjectFromJson(topoReader,
+ QName.create("urn:ietf:params:xml:ns:yang:ietf-network", "2018-02-26", "networks"));
+ saveOpenRoadmNetwork(networks.getNetwork().get(0), NetworkUtils.OVERLAY_NETWORK_ID, dataBroker);
+ } catch (IOException | ExecutionException | InterruptedException e) {
+ LOG.error("Cannot init test ", e);
+ Assert.fail("Cannot init test ");
+ }
+ }
+
+ private static void saveOpenRoadmNetwork(Network network, String networkId, DataBroker dataBroker)
+ throws InterruptedException, ExecutionException {
+ InstanceIdentifier<Network> nwInstanceIdentifier = InstanceIdentifier.builder(Networks.class)
+ .child(Network.class, new NetworkKey(new NetworkId(networkId))).build();
+ WriteTransaction dataWriteTransaction = dataBroker.newWriteOnlyTransaction();
+ dataWriteTransaction.put(LogicalDatastoreType.CONFIGURATION, nwInstanceIdentifier, network);
+ dataWriteTransaction.commit().get();
+ }
+
public static void writeNetworkIntoDataStore(DataBroker dataBroker,
DataStoreContext dataStoreContext, Network network)
throws ExecutionException, InterruptedException {