blob: afc903dcc715001d81c591487eebc79c500e89a7 [file] [log] [blame]
package net.onrc.onos.core.intent;
import static org.junit.Assert.assertEquals;
import net.onrc.onos.core.topology.LinkEvent;
import net.onrc.onos.core.util.serializers.KryoFactory;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import com.esotericsoftware.kryo.Kryo;
import com.esotericsoftware.kryo.io.Input;
import com.esotericsoftware.kryo.io.Output;
/**
* Unit tests for IntentOperationList.
*/
public class IntentOperationListTest {
@Before
public void setUp() throws Exception {
}
@After
public void tearDown() throws Exception {
}
@Test
public void test() {
IntentOperationList opList = new IntentOperationList();
ConstrainedShortestPathIntent cspIntent1 =
new ConstrainedShortestPathIntent("1", 2L, 3L, 4L, 5L, 6L, 7L, 1000.0);
Path path = new Path();
path.add(new LinkEvent(1L, 2L, 3L, 4L));
path.add(new LinkEvent(5L, 6L, 7L, 8L));
path.add(new LinkEvent(9L, 0L, 1L, 2L));
PathIntent pathIntent1 = new PathIntent("11", path, 123.45, cspIntent1);
opList.add(IntentOperation.Operator.ADD, pathIntent1);
opList.add(IntentOperation.Operator.REMOVE, new Intent("22"));
KryoFactory factory = new KryoFactory();
Kryo kryo = factory.newKryo();
Output output = new Output(1024);
kryo.writeObject(output, opList);
output.close();
byte[] bytes = output.toBytes();
Input input = new Input(bytes);
IntentOperationList rcvOpList = kryo.readObject(input, IntentOperationList.class);
assertEquals(2, rcvOpList.size());
IntentOperation op1 = rcvOpList.get(0);
IntentOperation op2 = rcvOpList.get(1);
assertEquals(IntentOperation.Operator.ADD, op1.operator);
PathIntent intent1 = (PathIntent) op1.intent;
assertEquals("11", intent1.getId());
assertEquals(3, intent1.getPath().size());
assertEquals(IntentOperation.Operator.REMOVE, op2.operator);
Intent intent2 = op2.intent;
assertEquals("22", intent2.getId());
}
}