blob: 31964933d5a82ff43694332fff48cc80ec35c4be [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.Path;
Toshio Koidebc116be2014-02-19 23:56:48 -08006import net.onrc.onos.ofcontroller.util.serializers.KryoFactory;
Toshio Koidec406e792014-02-14 16:52:42 -08007
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
Toshio Koide066506e2014-02-20 19:52:09 -080016/**
17 * @author Toshio Koide (t-koide@onlab.us)
18 */
Toshio Koidec406e792014-02-14 16:52:42 -080019public class PathIntentTest {
Toshio Koidec406e792014-02-14 16:52:42 -080020 @Before
21 public void setUp() throws Exception {
Toshio Koidec406e792014-02-14 16:52:42 -080022 }
23
24 @After
25 public void tearDown() throws Exception {
26 }
27
28 @Test
Toshio Koidea10c0372014-02-20 17:28:10 -080029 public void testCreateFirstId() {
30 String id = PathIntent.createFirstId("100");
Toshio Koide52a6bca2014-02-21 21:28:22 -080031 assertEquals("100___0", id);
Toshio Koidea10c0372014-02-20 17:28:10 -080032 }
33
34 @Test
35 public void testCreateNextId() {
Toshio Koide52a6bca2014-02-21 21:28:22 -080036 String id = PathIntent.createNextId("100___999");
37 assertEquals("100___1000", id);
Toshio Koidea10c0372014-02-20 17:28:10 -080038 }
39
40 @Test
Toshio Koidec406e792014-02-14 16:52:42 -080041 public void test() {
Toshio Koidebc116be2014-02-19 23:56:48 -080042 KryoFactory factory = new KryoFactory();
43 Kryo kryo = factory.newKryo();
Toshio Koidec406e792014-02-14 16:52:42 -080044 Output output = new Output(1024);
45
46 ConstrainedShortestPathIntent cspIntent1 =
47 new ConstrainedShortestPathIntent("1", 2L, 3L, 4L, 5L, 6L, 7L, 1000.0);
48
49 Path path = new Path();
Toshio Koide5b4731d2014-02-22 15:58:52 -080050 path.add(new LinkEvent(1L, 1L, 2L, 2L));
51 path.add(new LinkEvent(2L, 1L, 3L, 2L));
52 path.add(new LinkEvent(3L, 1L, 4L, 2L));
Toshio Koidec406e792014-02-14 16:52:42 -080053
54 PathIntent pathIntent1 = new PathIntent("11", path, 123.45, cspIntent1);
55
56 kryo.writeObject(output, pathIntent1);
57 output.close();
58
59 Input input = new Input(output.toBytes());
60
61 // create pathIntent from bytes
62
63 PathIntent pathIntent2 =
64 kryo.readObject(input, PathIntent.class);
65 input.close();
66
67 // check
Toshio Koided9fa2a82014-02-19 17:35:18 -080068
Toshio Koidec406e792014-02-14 16:52:42 -080069 assertEquals("11", pathIntent2.getId());
Toshio Koided9fa2a82014-02-19 17:35:18 -080070 Path path2 = pathIntent2.getPath();
Toshio Koidec406e792014-02-14 16:52:42 -080071
Toshio Koided9fa2a82014-02-19 17:35:18 -080072 assertEquals(Long.valueOf(1L), path2.get(0).getSrc().getDpid());
73 assertEquals(Long.valueOf(1L), path2.get(0).getSrc().getNumber());
74 assertEquals(Long.valueOf(2L), path2.get(0).getDst().getDpid());
75 assertEquals(Long.valueOf(2L), path2.get(0).getDst().getNumber());
Toshio Koidec406e792014-02-14 16:52:42 -080076
Toshio Koided9fa2a82014-02-19 17:35:18 -080077 assertEquals(Long.valueOf(2L), path2.get(1).getSrc().getDpid());
78 assertEquals(Long.valueOf(1L), path2.get(1).getSrc().getNumber());
79 assertEquals(Long.valueOf(3L), path2.get(1).getDst().getDpid());
80 assertEquals(Long.valueOf(2L), path2.get(1).getDst().getNumber());
Toshio Koidec406e792014-02-14 16:52:42 -080081
Toshio Koided9fa2a82014-02-19 17:35:18 -080082 assertEquals(Long.valueOf(3L), path2.get(2).getSrc().getDpid());
83 assertEquals(Long.valueOf(1L), path2.get(2).getSrc().getNumber());
84 assertEquals(Long.valueOf(4L), path2.get(2).getDst().getDpid());
85 assertEquals(Long.valueOf(2L), path2.get(2).getDst().getNumber());
Toshio Koidec406e792014-02-14 16:52:42 -080086
87 assertEquals(123.45, pathIntent2.getBandwidth(), 0.0);
88
Toshio Koided9fa2a82014-02-19 17:35:18 -080089 ConstrainedShortestPathIntent cspIntent2 =
Toshio Koidec406e792014-02-14 16:52:42 -080090 (ConstrainedShortestPathIntent) pathIntent2.getParentIntent();
Toshio Koided9fa2a82014-02-19 17:35:18 -080091
Toshio Koidec406e792014-02-14 16:52:42 -080092 assertEquals("1", cspIntent2.getId());
93 assertEquals(2L, cspIntent2.getSrcSwitchDpid());
94 assertEquals(3L, cspIntent2.getSrcPortNumber());
95 assertEquals(4L, cspIntent2.getSrcMac());
96 assertEquals(5L, cspIntent2.getDstSwitchDpid());
97 assertEquals(6L, cspIntent2.getDstPortNumber());
98 assertEquals(7L, cspIntent2.getDstMac());
99 assertEquals(1000.0, cspIntent2.getBandwidth(), 0.0);
100 }
101}