Search in sources :

Example 6 with Link

use of org.btrplace.model.view.network.Link in project scheduler by btrplace.

the class NetworkConverterTest method staticRoutingTest.

@Test
public void staticRoutingTest() throws JSONConverterException {
    Model mo = new DefaultModel();
    Network net = new Network(new StaticRouting());
    Switch s = net.newSwitch(1000);
    Node n1 = mo.newNode();
    Node n2 = mo.newNode();
    mo.getMapping().addOnlineNode(n1);
    mo.getMapping().addOnlineNode(n2);
    net.connect(1000, s, n1, n2);
    Map<Link, Boolean> route = new LinkedHashMap<>();
    route.put(net.getConnectedLinks(n1).get(0), true);
    route.put(net.getConnectedLinks(n2).get(0), false);
    ((StaticRouting) net.getRouting()).setStaticRoute(new StaticRouting.NodesMap(n1, n2), route);
    mo.attach(net);
    ModelConverter mc = new ModelConverter();
    JSONObject jo = mc.toJSON(mo);
    System.err.println(jo);
    Model mo2 = mc.fromJSON(jo);
    Network net2 = Network.get(mo2);
    Assert.assertTrue(net.getSwitches().equals(net2.getSwitches()));
    Assert.assertTrue(net.getLinks().equals(net2.getLinks()));
    Assert.assertTrue(net.getConnectedNodes().equals(net2.getConnectedNodes()));
    Map<StaticRouting.NodesMap, Map<Link, Boolean>> routes = ((StaticRouting) net.getRouting()).getStaticRoutes();
    Map<StaticRouting.NodesMap, Map<Link, Boolean>> routes2 = ((StaticRouting) net2.getRouting()).getStaticRoutes();
    for (StaticRouting.NodesMap nm : routes.keySet()) {
        for (StaticRouting.NodesMap nm2 : routes2.keySet()) {
            Assert.assertTrue(nm.equals(nm2));
            Assert.assertTrue(routes.get(nm).equals(routes2.get(nm2)));
        }
    }
}
Also used : DefaultModel(org.btrplace.model.DefaultModel) StaticRouting(org.btrplace.model.view.network.StaticRouting) Node(org.btrplace.model.Node) ModelConverter(org.btrplace.json.model.ModelConverter) LinkedHashMap(java.util.LinkedHashMap) Switch(org.btrplace.model.view.network.Switch) JSONObject(net.minidev.json.JSONObject) Network(org.btrplace.model.view.network.Network) Model(org.btrplace.model.Model) DefaultModel(org.btrplace.model.DefaultModel) LinkedHashMap(java.util.LinkedHashMap) Map(java.util.Map) Link(org.btrplace.model.view.network.Link) Test(org.testng.annotations.Test)

Aggregations

Link (org.btrplace.model.view.network.Link)6 LinkedHashMap (java.util.LinkedHashMap)4 Node (org.btrplace.model.Node)4 Network (org.btrplace.model.view.network.Network)4 StaticRouting (org.btrplace.model.view.network.StaticRouting)4 JSONObject (net.minidev.json.JSONObject)3 DefaultModel (org.btrplace.model.DefaultModel)3 Model (org.btrplace.model.Model)3 Switch (org.btrplace.model.view.network.Switch)3 Test (org.testng.annotations.Test)3 TIntObjectHashMap (gnu.trove.map.hash.TIntObjectHashMap)2 Map (java.util.Map)2 JSONArray (net.minidev.json.JSONArray)2 TIntObjectMap (gnu.trove.map.TIntObjectMap)1 ArrayList (java.util.ArrayList)1 ModelConverter (org.btrplace.json.model.ModelConverter)1 VM (org.btrplace.model.VM)1 LinkDirection (org.btrplace.model.view.network.Routing.LinkDirection)1 RelocatableVM (org.btrplace.scheduler.choco.transition.RelocatableVM)1 VMTransition (org.btrplace.scheduler.choco.transition.VMTransition)1