blob: dd87041cfc87ac12c5087824ccc431fb8610e60f [file] [log] [blame]
Toshio Koidec406e792014-02-14 16:52:42 -08001package net.onrc.onos.intent;
2
Toshio Koided9fa2a82014-02-19 17:35:18 -08003import static org.junit.Assert.assertEquals;
4import net.onrc.onos.ofcontroller.networkgraph.LinkEvent;
Toshio Koidec406e792014-02-14 16:52:42 -08005import net.onrc.onos.ofcontroller.networkgraph.NetworkGraph;
6import net.onrc.onos.ofcontroller.networkgraph.Path;
7
8import org.junit.After;
9import org.junit.Before;
10import org.junit.Test;
11
12import com.esotericsoftware.kryo.Kryo;
13import com.esotericsoftware.kryo.io.Input;
14import com.esotericsoftware.kryo.io.Output;
15
16public class PathIntentTest {
17 NetworkGraph g;
18
19 @Before
20 public void setUp() throws Exception {
21 MockNetworkGraph graph = new MockNetworkGraph();
22 graph.createSampleTopology();
23 g = graph;
24 }
25
26 @After
27 public void tearDown() throws Exception {
28 }
29
30 @Test
31 public void test() {
32 Kryo kryo = new Kryo();
33 Output output = new Output(1024);
34
35 ConstrainedShortestPathIntent cspIntent1 =
36 new ConstrainedShortestPathIntent("1", 2L, 3L, 4L, 5L, 6L, 7L, 1000.0);
37
38 Path path = new Path();
Toshio Koided9fa2a82014-02-19 17:35:18 -080039 path.add(new LinkEvent(g.getSwitch(1L).getPort(1L).getOutgoingLink()));
40 path.add(new LinkEvent(g.getSwitch(2L).getPort(1L).getOutgoingLink()));
41 path.add(new LinkEvent(g.getSwitch(3L).getPort(1L).getOutgoingLink()));
Toshio Koidec406e792014-02-14 16:52:42 -080042
43 PathIntent pathIntent1 = new PathIntent("11", path, 123.45, cspIntent1);
44
45 kryo.writeObject(output, pathIntent1);
46 output.close();
47
48 Input input = new Input(output.toBytes());
49
50 // create pathIntent from bytes
51
52 PathIntent pathIntent2 =
53 kryo.readObject(input, PathIntent.class);
54 input.close();
55
56 // check
Toshio Koided9fa2a82014-02-19 17:35:18 -080057
Toshio Koidec406e792014-02-14 16:52:42 -080058 assertEquals("11", pathIntent2.getId());
Toshio Koided9fa2a82014-02-19 17:35:18 -080059 Path path2 = pathIntent2.getPath();
Toshio Koidec406e792014-02-14 16:52:42 -080060
Toshio Koided9fa2a82014-02-19 17:35:18 -080061 assertEquals(Long.valueOf(1L), path2.get(0).getSrc().getDpid());
62 assertEquals(Long.valueOf(1L), path2.get(0).getSrc().getNumber());
63 assertEquals(Long.valueOf(2L), path2.get(0).getDst().getDpid());
64 assertEquals(Long.valueOf(2L), path2.get(0).getDst().getNumber());
Toshio Koidec406e792014-02-14 16:52:42 -080065
Toshio Koided9fa2a82014-02-19 17:35:18 -080066 assertEquals(Long.valueOf(2L), path2.get(1).getSrc().getDpid());
67 assertEquals(Long.valueOf(1L), path2.get(1).getSrc().getNumber());
68 assertEquals(Long.valueOf(3L), path2.get(1).getDst().getDpid());
69 assertEquals(Long.valueOf(2L), path2.get(1).getDst().getNumber());
Toshio Koidec406e792014-02-14 16:52:42 -080070
Toshio Koided9fa2a82014-02-19 17:35:18 -080071 assertEquals(Long.valueOf(3L), path2.get(2).getSrc().getDpid());
72 assertEquals(Long.valueOf(1L), path2.get(2).getSrc().getNumber());
73 assertEquals(Long.valueOf(4L), path2.get(2).getDst().getDpid());
74 assertEquals(Long.valueOf(2L), path2.get(2).getDst().getNumber());
Toshio Koidec406e792014-02-14 16:52:42 -080075
76 assertEquals(123.45, pathIntent2.getBandwidth(), 0.0);
77
Toshio Koided9fa2a82014-02-19 17:35:18 -080078 ConstrainedShortestPathIntent cspIntent2 =
Toshio Koidec406e792014-02-14 16:52:42 -080079 (ConstrainedShortestPathIntent) pathIntent2.getParentIntent();
Toshio Koided9fa2a82014-02-19 17:35:18 -080080
Toshio Koidec406e792014-02-14 16:52:42 -080081 assertEquals("1", cspIntent2.getId());
82 assertEquals(2L, cspIntent2.getSrcSwitchDpid());
83 assertEquals(3L, cspIntent2.getSrcPortNumber());
84 assertEquals(4L, cspIntent2.getSrcMac());
85 assertEquals(5L, cspIntent2.getDstSwitchDpid());
86 assertEquals(6L, cspIntent2.getDstPortNumber());
87 assertEquals(7L, cspIntent2.getDstMac());
88 assertEquals(1000.0, cspIntent2.getBandwidth(), 0.0);
89 }
90}