65aee3eced5ad4cfbe37b4782bcf998e450d37a9
[packetcable.git] / packetcable-driver / src / test / java / org / pcmm / objects / SyncOptionsTest.java
1 /*
2  * (c) 2015 Cable Television Laboratories, Inc.  All rights reserved.
3  */
4
5 package org.pcmm.objects;
6
7 import org.junit.Assert;
8 import org.junit.Test;
9 import org.pcmm.objects.SyncOptions.ReportType;
10 import org.pcmm.objects.SyncOptions.SyncType;
11 import org.umu.cops.stack.COPSMsgParser;
12
13 /**
14  * Tests the data holder class SyncOptions to ensure both construction and byte parsing result in correct object
15  * creation.
16  */
17 public class SyncOptionsTest {
18
19     @Test(expected = IllegalArgumentException.class)
20     public void nullReportType() {
21         new SyncOptions(null, SyncType.FULL_SYNCHRONIZATION);
22     }
23
24     @Test(expected = IllegalArgumentException.class)
25     public void nullSyncType() {
26         new SyncOptions(ReportType.STANDARD_REPORT_DATA, null);
27     }
28
29     @Test
30     public void construction() {
31         final SyncOptions syncOpts = new SyncOptions(ReportType.STANDARD_REPORT_DATA, SyncType.FULL_SYNCHRONIZATION);
32         final byte[] dataBytes = syncOpts.getBytes();
33         Assert.assertEquals(4, dataBytes.length);
34         Assert.assertEquals(ReportType.STANDARD_REPORT_DATA,
35                 ReportType.valueOf(COPSMsgParser.bytesToShort(dataBytes[0], dataBytes[1])));
36         Assert.assertEquals(SyncType.FULL_SYNCHRONIZATION,
37                 SyncType.valueOf(COPSMsgParser.bytesToShort(dataBytes[2], dataBytes[3])));
38     }
39
40     @Test
41     public void byteParsing() {
42         final SyncOptions syncOpts = new SyncOptions(ReportType.COMPLETE_GATE_DATA, SyncType.INCREMENTAL_SYNCHRONIZATION);
43         final SyncOptions parsed = SyncOptions.parse(syncOpts.getBytes());
44         Assert.assertEquals(syncOpts, parsed);
45     }
46
47 }