Fix checkstyle warnings in netconf-cli
[controller.git] / third-party / openflowj / src / test / java / org / openflow / protocol / OFMatchTest.java
1 package org.openflow.protocol;
2
3 import junit.framework.TestCase;
4
5 public class OFMatchTest extends TestCase {
6     public void testFromString() {
7         OFMatch correct = new OFMatch();
8         OFMatch tester = new OFMatch();
9
10         // Various combinations of "all"/"any"
11         tester.fromString("OFMatch[]");
12         // correct is already wildcarded
13         TestCase.assertEquals(correct, tester);
14         tester.fromString("all");
15         TestCase.assertEquals(correct, tester);
16         tester.fromString("ANY");
17         TestCase.assertEquals(correct, tester);
18         tester.fromString("");
19         TestCase.assertEquals(correct, tester);
20         tester.fromString("[]");
21         TestCase.assertEquals(correct, tester);
22
23         // ip_src
24         correct.setWildcards(~OFMatch.OFPFW_NW_SRC_MASK);
25         correct.setNetworkSource(0x01010203);
26         tester.fromString("nw_src=1.1.2.3");
27         TestCase.assertEquals(correct.getNetworkSourceMaskLen(), tester
28                 .getNetworkSourceMaskLen());
29         TestCase.assertEquals(correct, tester);
30         tester.fromString("IP_sRc=1.1.2.3");
31         TestCase.assertEquals(correct.getNetworkSourceMaskLen(), tester
32                 .getNetworkSourceMaskLen());
33         TestCase.assertEquals(correct, tester);
34     }
35
36     public void testToString() {
37         OFMatch match = new OFMatch();
38         match.fromString("nw_dst=3.4.5.6/8");
39         TestCase.assertEquals(8, match.getNetworkDestinationMaskLen());
40         String correct = "OFMatch[nw_dst=3.0.0.0/8]";
41         String tester = match.toString();
42
43         TestCase.assertEquals(correct, tester);
44         tester = "OFMatch[dl_type=35020]";
45         correct = "OFMatch[dl_type=0x88cc]";
46         match = new OFMatch();
47         match.fromString(tester);
48         TestCase.assertEquals(correct, match.toString());
49         OFMatch match2 = new OFMatch();
50         match2.fromString(correct);
51         TestCase.assertEquals(match, match2);
52     }
53
54     public void testClone() {
55         OFMatch match1 = new OFMatch();
56         OFMatch match2 = match1.clone();
57         TestCase.assertEquals(match1, match2);
58         match2.setNetworkProtocol((byte) 4);
59         match2.setWildcards(match2.getWildcards() & ~OFMatch.OFPFW_NW_PROTO);
60         TestCase.assertNotSame(match1, match2);
61     }
62
63     public void testIpToString() {
64         String test = OFMatch.ipToString(-1);
65         TestCase.assertEquals("255.255.255.255", test);
66     }
67
68     public void testReverse() {
69         OFMatch match1 = new OFMatch();
70         OFMatch match2 = match1.reverse((short)0, true);
71         TestCase.assertEquals(match1, match2);
72
73         match1.fromString("dl_dst=00:11:22:33:44:55");
74         match2 = match1.reverse((short)0, true);
75         OFMatch match3 = new OFMatch();
76         match3.fromString("dl_src=00:11:22:33:44:55");
77         TestCase.assertEquals(match2, match3);
78
79         match1.fromString("nw_dst=192.168.0.0/24");
80         match2 = match1.reverse((short)0, true);
81         match3.fromString("nw_src=192.168.0.0/24");
82         TestCase.assertEquals(match2, match3);
83
84         match1.fromString("in_port=1");
85         match2 = match1.reverse((short)2, false);
86         match3.fromString("in_port=2");
87         TestCase.assertEquals(match2, match3);
88     }
89
90     public void testSubsumes() {
91         OFMatch match1 = new OFMatch();
92         OFMatch match2 = new OFMatch();
93         match2.fromString("dl_dst=00:11:22:33:44:55");
94         TestCase.assertTrue(match1.subsumes(match2));
95         TestCase.assertFalse(match2.subsumes(match1));
96
97         match1.fromString("nw_dst=192.168.0.0/16");
98         match2.fromString("nw_dst=192.168.0.0/24");
99         TestCase.assertTrue(match1.subsumes(match2));
100         TestCase.assertFalse(match2.subsumes(match1));
101     }
102 }