blob: 711cef82a63428e082c901359ee0170f41cb90c5 [file] [log] [blame]
Jonathan Hartaa380972014-04-03 10:24:46 -07001package net.onrc.onos.core.intent;
Toshio Koideb39c9d32014-02-20 01:21:47 -08002
3import static org.junit.Assert.assertEquals;
Jonathan Hart472062d2014-04-03 10:56:48 -07004import net.onrc.onos.core.topology.LinkEvent;
5import net.onrc.onos.core.topology.Path;
Jonathan Hart23701d12014-04-03 10:45:48 -07006import net.onrc.onos.core.util.serializers.KryoFactory;
Toshio Koideb39c9d32014-02-20 01:21:47 -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 Koideb39c9d32014-02-20 01:21:47 -080019public class IntentOperationListTest {
20
21 @Before
22 public void setUp() throws Exception {
23 }
24
25 @After
26 public void tearDown() throws Exception {
27 }
28
29 @Test
30 public void test() {
31 IntentOperationList opList = new IntentOperationList();
32
33 ConstrainedShortestPathIntent cspIntent1 =
34 new ConstrainedShortestPathIntent("1", 2L, 3L, 4L, 5L, 6L, 7L, 1000.0);
35
36 Path path = new Path();
37 path.add(new LinkEvent(1L, 2L, 3L, 4L));
38 path.add(new LinkEvent(5L, 6L, 7L, 8L));
39 path.add(new LinkEvent(9L, 0L, 1L, 2L));
40
41 PathIntent pathIntent1 = new PathIntent("11", path, 123.45, cspIntent1);
42 opList.add(IntentOperation.Operator.ADD, pathIntent1);
43 opList.add(IntentOperation.Operator.REMOVE, new Intent("22"));
44
45 KryoFactory factory = new KryoFactory();
46 Kryo kryo = factory.newKryo();
47 Output output = new Output(1024);
48 kryo.writeObject(output, opList);
49 output.close();
50
51 byte[] bytes = output.toBytes();
52
53 Input input = new Input(bytes);
54 IntentOperationList rcvOpList = kryo.readObject(input, IntentOperationList.class);
55
56 assertEquals(2, rcvOpList.size());
57
58 IntentOperation op1 = rcvOpList.get(0);
59 IntentOperation op2 = rcvOpList.get(1);
60
61 assertEquals(IntentOperation.Operator.ADD, op1.operator);
62 PathIntent intent1 = (PathIntent) op1.intent;
63 assertEquals("11", intent1.getId());
64 assertEquals(3, intent1.getPath().size());
65
66 assertEquals(IntentOperation.Operator.REMOVE, op2.operator);
67 Intent intent2 = op2.intent;
68 assertEquals("22", intent2.getId());
69 }
70}