6f9e7cb58ba096788b2ec636905e3c6fcb0f0e00
[packetcable.git] / packetcable-driver / src / test / java / org / umu / cops / stack / COPSClientSITest.java
1 package org.umu.cops.stack;
2
3 import org.junit.Assert;
4 import org.junit.Test;
5 import org.umu.cops.stack.COPSClientSI.CSIType;
6 import org.umu.cops.stack.COPSObjHeader.CNum;
7 import org.umu.cops.stack.COPSObjHeader.CType;
8
9 import java.io.ByteArrayOutputStream;
10
11 /**
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.
15  */
16 public class COPSClientSITest {
17
18     @Test(expected = IllegalArgumentException.class)
19     public void invalidCSItype() {
20         new COPSClientSI(CSIType.NA, new COPSData());
21     }
22
23     @Test(expected = IllegalArgumentException.class)
24     public void nullData() {
25         new COPSClientSI(CSIType.SIGNALED, null);
26     }
27
28     @Test(expected = IllegalArgumentException.class)
29     public void invalidCNum() {
30         new COPSClientSI(new COPSObjHeader(CNum.ACCT_TIMER, CType.DEF), new COPSData());
31     }
32
33     @Test(expected = IllegalArgumentException.class)
34     public void invalidCType() {
35         new COPSClientSI(new COPSObjHeader(CNum.ACCT_TIMER, CType.CSI), new COPSData());
36     }
37
38     @Test
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());
46     }
47
48     @Test
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());
56     }
57
58     @Test
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());
66     }
67
68     @Test
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());
76     }
77
78     @Test
79     public void csiNamedDumpPadded() throws Exception {
80         final COPSClientSI clientSI = new COPSClientSI(CSIType.NAMED, new COPSData("12345"));
81         final ByteArrayOutputStream os = new ByteArrayOutputStream();
82         clientSI.dump(os);
83
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]);
93     }
94
95     @Test
96     public void csiSignaledDumpUnpadded() throws Exception {
97         final COPSClientSI clientSI = new COPSClientSI(CSIType.SIGNALED, new COPSData("1234"));
98         final ByteArrayOutputStream os = new ByteArrayOutputStream();
99         clientSI.dump(os);
100
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]);
110     }
111
112     // The writeData() method will be tested implicitly via any of the COPSMsg tests
113 }