1 package org.umu.cops.stack;
3 import org.junit.Assert;
6 import java.util.Arrays;
9 * Tests for the second constructor of the COPSData class.
10 * Should any of these tests be inaccurate it is due to the fact that they have been written after COPSHandle had been
11 * released and my assumptions may be incorrect.
13 public class COPSDataSecondConstructorTest {
15 final byte[] bytes = ("hello world").getBytes();
17 @Test(expected = IllegalArgumentException.class)
18 public void nullBytes() {
19 new COPSData(null, 0, 0);
22 @Test(expected = IllegalArgumentException.class)
23 public void emptyBytesWithNegOffsetZeroLength() {
24 new COPSData(new byte[]{}, -1, 0);
28 public void emptyBytesWithZeroOffsetZeroLength() {
29 final COPSData data = new COPSData(new byte[]{}, 0, 0);
30 Assert.assertEquals(0, data.length());
31 Assert.assertEquals(0, data.getData().length);
32 Assert.assertEquals("", data.str());
34 final COPSData eqHash = new COPSData(bytes, 1, 0);
35 final COPSData neHash = new COPSData(bytes, 2, 2);
37 Assert.assertTrue(data.equals(eqHash));
38 Assert.assertEquals(data.hashCode(), eqHash.hashCode());
39 Assert.assertFalse(data.equals(neHash));
40 Assert.assertNotEquals(data.hashCode(), neHash.hashCode());
43 @Test(expected = IllegalArgumentException.class)
44 public void emptyBytesWithPosOffsetZeroLength() {
45 new COPSData(new byte[]{}, 1, 0);
48 @Test(expected = IllegalArgumentException.class)
49 public void validBytesWithNegOffsetZeroLength() {
50 new COPSData(bytes, -1, 0);
54 public void validBytesWithZeroOffsetZeroLength() {
55 final COPSData data = new COPSData(bytes, 0, 0);
56 Assert.assertEquals(0, data.length());
57 Assert.assertEquals(0, data.getData().length);
58 Assert.assertEquals("", data.str());
60 final COPSData eqHash = new COPSData(bytes, 1, 0);
61 final COPSData neHash = new COPSData(bytes, 2, 2);
63 Assert.assertTrue(data.equals(eqHash));
64 Assert.assertEquals(data.hashCode(), eqHash.hashCode());
65 Assert.assertFalse(data.equals(neHash));
66 Assert.assertNotEquals(data.hashCode(), neHash.hashCode());
69 @Test(expected = IllegalArgumentException.class)
70 public void validBytesWithPosOffsetNegLength() {
71 new COPSData(bytes, 1, -1);
75 public void validBytesWithPosOffsetZeroLength() {
76 final COPSData data = new COPSData(bytes, 1, 0);
77 Assert.assertEquals(0, data.length());
78 Assert.assertEquals(0, data.getData().length);
79 Assert.assertEquals("", data.str());
81 final COPSData eqHash = new COPSData(bytes, 1, 0);
82 final COPSData neHash = new COPSData(bytes, 2, 2);
84 Assert.assertTrue(data.equals(eqHash));
85 Assert.assertEquals(data.hashCode(), eqHash.hashCode());
86 Assert.assertFalse(data.equals(neHash));
87 Assert.assertNotEquals(data.hashCode(), neHash.hashCode());
91 public void validBytesWithPosOffsetPosLength() {
92 final COPSData data = new COPSData(bytes, 1, 1);
93 Assert.assertEquals(1, data.length());
94 Assert.assertEquals(1, data.getData().length);
95 Assert.assertEquals(bytes[1], data.getData()[0]);
96 Assert.assertEquals("e", data.str());
98 final COPSData eqHash = new COPSData(bytes, 1, 1);
99 final COPSData neHash = new COPSData(bytes, 2, 2);
101 Assert.assertTrue(data.equals(eqHash));
102 Assert.assertEquals(data.hashCode(), eqHash.hashCode());
103 Assert.assertFalse(data.equals(neHash));
104 Assert.assertNotEquals(data.hashCode(), neHash.hashCode());
107 @Test(expected = IllegalArgumentException.class)
108 public void validBytesWithPosOffsetLengthTooLarge() {
109 new COPSData(bytes, 5, 8);
113 public void likelyScenario() {
114 final String expectedData = "lo wo";
116 final COPSData data = new COPSData(bytes, 3, 5);
117 Assert.assertTrue(Arrays.equals(expectedData.getBytes(), data.getData()));
118 Assert.assertEquals(expectedData.length(), data.length());
119 Assert.assertEquals(expectedData, data.str());
121 final COPSData eqHash = new COPSData(bytes, 3, 5);
122 final COPSData neHash = new COPSData(bytes, 2, 4);
124 Assert.assertTrue(data.equals(eqHash));
125 Assert.assertEquals(data.hashCode(), eqHash.hashCode());
126 Assert.assertFalse(data.equals(neHash));
127 Assert.assertNotEquals(data.hashCode(), neHash.hashCode());