1 package org.umu.cops.stack;
3 import org.junit.Assert;
5 import org.umu.cops.stack.COPSClientSI.CSIType;
6 import org.umu.cops.stack.COPSObjHeader.CNum;
7 import org.umu.cops.stack.COPSObjHeader.CType;
9 import java.io.ByteArrayOutputStream;
12 * Tests for the first constructor of the COPSClientSI class.
13 * Should any of these tests be inaccurate it is due to the fact that they have been written after COPSAcctTimer had been
14 * released and my assumptions may be incorrect.
16 public class COPSClientSITest {
18 @Test(expected = IllegalArgumentException.class)
19 public void invalidCSItype() {
20 new COPSClientSI(CSIType.NA, new COPSData());
23 @Test(expected = IllegalArgumentException.class)
24 public void nullData() {
25 new COPSClientSI(CSIType.SIGNALED, null);
28 @Test(expected = IllegalArgumentException.class)
29 public void invalidCNum() {
30 new COPSClientSI(new COPSObjHeader(CNum.ACCT_TIMER, CType.DEF), new COPSData());
33 @Test(expected = IllegalArgumentException.class)
34 public void invalidCType() {
35 new COPSClientSI(new COPSObjHeader(CNum.ACCT_TIMER, CType.CSI), new COPSData());
39 public void csiSignaledEmptyData() {
40 final COPSClientSI clientSI = new COPSClientSI(CSIType.SIGNALED, new COPSData());
41 Assert.assertEquals(CSIType.SIGNALED, clientSI.getCsiType());
42 Assert.assertEquals(CNum.CSI, clientSI.getHeader().getCNum());
43 Assert.assertEquals(CSIType.SIGNALED.ordinal(), clientSI.getHeader().getCType().ordinal());
44 Assert.assertEquals(new COPSData(), clientSI.getData());
45 Assert.assertEquals(0, clientSI.getDataLength());
49 public void csiSignaledUnPaddedData() {
50 final COPSClientSI clientSI = new COPSClientSI(CSIType.SIGNALED, new COPSData("1234"));
51 Assert.assertEquals(CSIType.SIGNALED, clientSI.getCsiType());
52 Assert.assertEquals(CNum.CSI, clientSI.getHeader().getCNum());
53 Assert.assertEquals(CSIType.SIGNALED.ordinal(), clientSI.getHeader().getCType().ordinal());
54 Assert.assertEquals(new COPSData("1234"), clientSI.getData());
55 Assert.assertEquals(4, clientSI.getDataLength());
59 public void csiSignaledPaddedData() {
60 final COPSClientSI clientSI = new COPSClientSI(CSIType.SIGNALED, new COPSData("12345"));
61 Assert.assertEquals(CSIType.SIGNALED, clientSI.getCsiType());
62 Assert.assertEquals(CNum.CSI, clientSI.getHeader().getCNum());
63 Assert.assertEquals(CSIType.SIGNALED.ordinal(), clientSI.getHeader().getCType().ordinal());
64 Assert.assertEquals(new COPSData("12345"), clientSI.getData());
65 Assert.assertEquals(8, clientSI.getDataLength());
69 public void csiNamedPaddedData() {
70 final COPSClientSI clientSI = new COPSClientSI(CSIType.NAMED, new COPSData("12345"));
71 Assert.assertEquals(CSIType.NAMED, clientSI.getCsiType());
72 Assert.assertEquals(CNum.CSI, clientSI.getHeader().getCNum());
73 Assert.assertEquals(CSIType.NAMED.ordinal(), clientSI.getHeader().getCType().ordinal());
74 Assert.assertEquals(new COPSData("12345"), clientSI.getData());
75 Assert.assertEquals(8, clientSI.getDataLength());
79 public void csiNamedDumpPadded() throws Exception {
80 final COPSClientSI clientSI = new COPSClientSI(CSIType.NAMED, new COPSData("12345"));
81 final ByteArrayOutputStream os = new ByteArrayOutputStream();
84 final String out = new String(os.toByteArray());
85 System.out.println(out);
86 final String[] lines = out.split("\n");
87 Assert.assertEquals(5, lines.length);
88 Assert.assertEquals("**Client-SI**", lines[0]);
89 Assert.assertEquals("C-num: CSI", lines[1]);
90 Assert.assertEquals("C-type: STATELESS", lines[2]);
91 Assert.assertEquals("CSI-type: NAMED", lines[3]);
92 Assert.assertEquals("client-SI: 12345", lines[4]);
96 public void csiSignaledDumpUnpadded() throws Exception {
97 final COPSClientSI clientSI = new COPSClientSI(CSIType.SIGNALED, new COPSData("1234"));
98 final ByteArrayOutputStream os = new ByteArrayOutputStream();
101 final String out = new String(os.toByteArray());
102 System.out.println(out);
103 final String[] lines = out.split("\n");
104 Assert.assertEquals(5, lines.length);
105 Assert.assertEquals("**Client-SI**", lines[0]);
106 Assert.assertEquals("C-num: CSI", lines[1]);
107 Assert.assertEquals("C-type: DEF", lines[2]);
108 Assert.assertEquals("CSI-type: SIGNALED", lines[3]);
109 Assert.assertEquals("client-SI: 1234", lines[4]);
112 // The writeData() method will be tested implicitly via any of the COPSMsg tests