1 package org.umu.cops.stack;
3 import org.junit.Assert;
5 import org.umu.cops.stack.COPSDecision.Command;
6 import org.umu.cops.stack.COPSDecision.DecisionFlag;
7 import org.umu.cops.stack.COPSObjHeader.CNum;
8 import org.umu.cops.stack.COPSObjHeader.CType;
10 import java.io.ByteArrayOutputStream;
13 * Tests for the first constructor of the COPSLPDPDecision class.
14 * Should any of these tests be inaccurate it is due to the fact that they have been written after COPSAcctTimer had been
15 * released and my assumptions may be incorrect.
17 public class COPSLPDPDecisionTest {
19 @Test(expected = IllegalArgumentException.class)
20 public void constructor1NullCType() {
21 final CType cType = null;
22 new COPSLPDPDecision(cType, Command.INSTALL, DecisionFlag.NA, new COPSData());
25 @Test(expected = IllegalArgumentException.class)
26 public void constructor1NaCType() {
27 new COPSLPDPDecision(CType.NA, Command.INSTALL, DecisionFlag.NA, new COPSData());
30 @Test(expected = IllegalArgumentException.class)
31 public void constructor1NullCommand() {
32 new COPSLPDPDecision(CType.CSI, null, DecisionFlag.NA, new COPSData());
35 @Test(expected = IllegalArgumentException.class)
36 public void constructor1NullFlags() {
37 new COPSLPDPDecision(CType.CSI, Command.INSTALL, null, new COPSData());
40 @Test(expected = IllegalArgumentException.class)
41 public void constructor1NullData() {
42 new COPSLPDPDecision(CType.CSI, Command.INSTALL, DecisionFlag.NA, null);
45 @Test(expected = IllegalArgumentException.class)
46 public void constructor2NullHeader() {
47 final COPSObjHeader hdr = null;
48 new COPSLPDPDecision(hdr, Command.INSTALL, DecisionFlag.NA, new COPSData());
51 @Test(expected = IllegalArgumentException.class)
52 public void constructor2InvalidCNum() {
53 new COPSLPDPDecision(new COPSObjHeader(CNum.ACCT_TIMER, CType.CSI), Command.INSTALL, DecisionFlag.NA,
57 @Test(expected = IllegalArgumentException.class)
58 public void constructor2NullCommand() {
59 new COPSLPDPDecision(new COPSObjHeader(CNum.LPDP_DEC, CType.CSI), null, DecisionFlag.NA, new COPSData());
62 @Test(expected = IllegalArgumentException.class)
63 public void constructor2NullDecison() {
64 new COPSLPDPDecision(new COPSObjHeader(CNum.LPDP_DEC, CType.CSI), Command.INSTALL, null, new COPSData());
67 @Test(expected = IllegalArgumentException.class)
68 public void constructor2NullData() {
69 new COPSLPDPDecision(new COPSObjHeader(CNum.LPDP_DEC, CType.CSI), Command.INSTALL, DecisionFlag.NA, null);
73 public void constructor1Valid() throws Exception {
74 final COPSLPDPDecision decision = new COPSLPDPDecision(CType.CSI, Command.REMOVE, DecisionFlag.REQSTATE,
75 new COPSData("1234"));
76 Assert.assertEquals(Command.REMOVE, decision.getCommand());
77 Assert.assertEquals(8, decision.getDataLength());
78 Assert.assertEquals(new COPSData("1234"), decision.getData());
79 Assert.assertEquals(DecisionFlag.REQSTATE, decision.getFlag());
80 Assert.assertEquals("Client specific decision data", decision.getTypeStr());
82 final ByteArrayOutputStream os = new ByteArrayOutputStream();
85 final String out = new String(os.toByteArray());
86 System.out.println(out);
87 final String[] lines = out.split("\n");
88 Assert.assertEquals(5, lines.length);
89 Assert.assertEquals("**Local-Decision**", lines[0]);
90 Assert.assertEquals("C-num: LPDP_DEC", lines[1]);
91 Assert.assertEquals("C-type: CSI", lines[2]);
92 Assert.assertEquals("Decision (Client specific decision data)", lines[3]);
93 Assert.assertEquals("Data: 1234", lines[4]);
97 public void constructor2Valid() throws Exception {
98 final COPSLPDPDecision decision = new COPSLPDPDecision(new COPSObjHeader(CNum.LPDP_DEC, CType.STATELESS), Command.INSTALL,
99 DecisionFlag.REQERROR, new COPSData("1234"));
100 Assert.assertEquals(Command.INSTALL, decision.getCommand());
101 Assert.assertEquals(8, decision.getDataLength());
102 Assert.assertEquals(new COPSData("1234"), decision.getData());
103 Assert.assertEquals(DecisionFlag.REQERROR, decision.getFlag());
104 Assert.assertEquals("Stateless data", decision.getTypeStr());
106 final ByteArrayOutputStream os = new ByteArrayOutputStream();
109 final String out = new String(os.toByteArray());
110 System.out.println(out);
111 final String[] lines = out.split("\n");
112 Assert.assertEquals(5, lines.length);
113 Assert.assertEquals("**Local-Decision**", lines[0]);
114 Assert.assertEquals("C-num: LPDP_DEC", lines[1]);
115 Assert.assertEquals("C-type: STATELESS", lines[2]);
116 Assert.assertEquals("Decision (Stateless data)", lines[3]);
117 Assert.assertEquals("Data: 1234", lines[4]);
120 // The writeData() method will be tested implicitly via any of the COPSMsg tests