d75116e757011609b9e2b48aec901e90d8a5dae4
[openflowjava.git] / third-party / openflow-codec / src / test / java / org / openflow / codec / protocol / instruction / OFPInstructionWriteMetaDataTest.java
1 package org.openflow.codec.protocol.instruction;
2
3 import junit.framework.TestCase;
4
5 import org.openflow.codec.io.DataBuffers;
6 import org.openflow.codec.io.IDataBuffer;
7 import org.openflow.codec.protocol.instruction.OFPInstructionType;
8 import org.openflow.codec.protocol.instruction.OFPInstructionWriteMetaData;
9
10 /**
11  * test class to verify instruction structure
12  *
13  * @author AnilGujele
14  *
15  */
16 public class OFPInstructionWriteMetaDataTest extends TestCase {
17
18     private IDataBuffer buffer = DataBuffers.allocate(1024);
19
20     protected void tearDown() throws Exception {
21         buffer.clear();
22     }
23
24     public void testOFInstructionWriteMetaDataCreation() {
25         OFPInstructionWriteMetaData instruction = new OFPInstructionWriteMetaData();
26         assertTrue(instruction.type.equals(OFPInstructionType.WRITE_METADATA));
27
28     }
29
30     public void testClone() throws CloneNotSupportedException {
31         OFPInstructionWriteMetaData instruction = new OFPInstructionWriteMetaData();
32         instruction.setMetadata(2);
33         instruction.setMetadataMask(2);
34         OFPInstructionWriteMetaData instructionCloned = (OFPInstructionWriteMetaData) instruction.clone();
35         TestCase.assertEquals(instruction, instructionCloned);
36
37         instruction.setMetadata(1);
38         instruction.setMetadataMask(1);
39         TestCase.assertNotSame(instruction, instructionCloned);
40
41         instruction = (OFPInstructionWriteMetaData) instructionCloned.clone();
42         TestCase.assertEquals(instruction, instructionCloned);
43     }
44
45     public void testReadWriteSuccess() {
46         OFPInstructionWriteMetaData instruction = new OFPInstructionWriteMetaData();
47         instruction.setMetadata(2);
48         instruction.setMetadataMask(2);
49         instruction.writeTo(buffer);
50         buffer.flip();
51
52         OFPInstructionWriteMetaData instructionTemp = new OFPInstructionWriteMetaData();
53         instructionTemp.readFrom(buffer);
54         TestCase.assertEquals(instruction, instructionTemp);
55
56     }
57
58     public void testToString() {
59         OFPInstructionWriteMetaData instruction = new OFPInstructionWriteMetaData();
60         instruction.setMetadata(2);
61         instruction.setMetadataMask(2);
62         instruction.writeTo(buffer);
63         buffer.flip();
64
65         OFPInstructionWriteMetaData instructionTemp = new OFPInstructionWriteMetaData();
66         instructionTemp.readFrom(buffer);
67         TestCase.assertEquals(instruction.toString(), instructionTemp.toString());
68     }
69
70     public void testEqualHashcode() {
71
72         OFPInstructionWriteMetaData instruction = new OFPInstructionWriteMetaData();
73         instruction.setMetadata(2);
74         instruction.setMetadataMask(2);
75         instruction.writeTo(buffer);
76         buffer.flip();
77
78         OFPInstructionWriteMetaData instructionTemp = new OFPInstructionWriteMetaData();
79         instructionTemp.readFrom(buffer);
80
81         TestCase.assertTrue(instruction.equals(instructionTemp));
82         TestCase.assertEquals(instruction.hashCode(), instructionTemp.hashCode());
83     }
84
85 }