summaryrefslogtreecommitdiff
path: root/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/protocol/enums/SessionTypeTests.java
blob: e96b6a5b57891c6b29e6baebec83f2507cae2304 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
package com.smartdevicelink.test.protocol.enums;

import com.smartdevicelink.protocol.enums.SessionType;
import com.smartdevicelink.test.Validator;

import junit.framework.TestCase;

import java.util.Vector;

public class SessionTypeTests extends TestCase {
	
	private Vector<SessionType> list = SessionType.getList();
	
	// Verifies the values are not null upon valid assignment.
	// These are not actual enums for packeting reasons so testing is different.
	public void testValidEnums () {
		
		final byte   HEARTBEAT_BYTE   = (byte) 0x00;
		final String HEARTBEAT_STRING = "CONTROL";
		
		final byte   RPC_BYTE   = (byte) 0x07;
		final String RPC_STRING = "RPC";
		
		final byte   PCM_BYTE   = (byte) 0x0A;
		final String PCM_STRING = "PCM";
		
		final byte   NAV_BYTE   = (byte) 0x0B;
		final String NAV_STRING = "NAV";
		
		final byte   BULK_DATA_BYTE   = (byte) 0x0F;
		final String BULK_DATA_STRING = "BULK_DATA";
		
		try {
			
			assertNotNull("SessionType list returned null", list);
			
			// Check the byte values
			SessionType enumHeartbeat = (SessionType) SessionType.get(list, HEARTBEAT_BYTE);
			SessionType enumRPC       = (SessionType) SessionType.get(list, RPC_BYTE);
			SessionType enumPCM       = (SessionType) SessionType.get(list, PCM_BYTE);
			SessionType enumNAV       = (SessionType) SessionType.get(list, NAV_BYTE);
			SessionType enumBulkData  = (SessionType) SessionType.get(list, BULK_DATA_BYTE);
			
			assertNotNull("Start session byte match returned null", enumHeartbeat);
			assertNotNull("Single byte match returned null",        enumRPC);
			assertNotNull("First byte match returned null",         enumPCM);
			assertNotNull("Consecutive byte match returned null",   enumNAV);
			assertNotNull("Consecutive byte match returned null",   enumBulkData);
			
			// Check the string values
			enumHeartbeat = (SessionType) SessionType.get(list, HEARTBEAT_STRING);
			enumRPC       = (SessionType) SessionType.get(list, RPC_STRING);
			enumPCM       = (SessionType) SessionType.get(list, PCM_STRING);
			enumNAV       = (SessionType) SessionType.get(list, NAV_STRING);
			enumBulkData  = (SessionType) SessionType.get(list, BULK_DATA_STRING);
			
			assertNotNull("Start session string match returned null", enumHeartbeat);
			assertNotNull("Single string match returned null",        enumRPC);
			assertNotNull("First string match returned null",         enumPCM);
			assertNotNull("Consecutive string match returned null",   enumNAV);
			assertNotNull("Consecutive string match returned null",   enumBulkData);
			
		} catch (NullPointerException exception) {
            fail("Null enum list throws NullPointerException.");
		}		
	}
		
	// Verifies that an invalid assignment is null.
	public void testInvalidEnum () {
		
		final byte   INVALID_BYTE   = (byte) 0xAB;
		final String INVALID_STRING = "Invalid";
		
		try {
			
			// Check the byte value
			SessionType enumInvalid = (SessionType) SessionType.get(list, INVALID_BYTE);
			assertNull("Invalid byte match didn't return null", enumInvalid);
			
			// Check the string value
			enumInvalid = (SessionType) SessionType.get(list, INVALID_STRING);
			assertNull("Invalid string match didn't return null", enumInvalid);
			
		} catch (IllegalArgumentException exception) {
			fail("Invalid enum throws IllegalArgumentException.");
		}
	}
	
	// Verifies that a null assignment is invalid.
	public void testNullEnum () {		
		try {
			
			// Check null string lookup
			SessionType enumNull = (SessionType) SessionType.get(list, null);
			assertNull("Null lookup returns a value", enumNull);
			
		} catch (NullPointerException exception) {
            fail("Null string throws NullPointerException.");
		}
	}
	
	// Verifies the possible enum values of SessionType.
	public void testListEnum () {
		// Test Vector
		Vector<SessionType> enumTestList = new Vector<SessionType>();			
		enumTestList.add(SessionType.RPC);
		enumTestList.add(SessionType.PCM);
		enumTestList.add(SessionType.NAV);
		enumTestList.add(SessionType.BULK_DATA);
		enumTestList.add(SessionType.CONTROL);
		
		assertTrue("List does not match enum test list.",
					list.containsAll(enumTestList) &&
					enumTestList.containsAll(list));
		
		// Test Array
		SessionType[] enumValueArray = SessionType.values();
		SessionType[] enumTestArray = { SessionType.RPC, SessionType.PCM, 
									    SessionType.NAV, SessionType.BULK_DATA,
									    SessionType.CONTROL };
		
		assertTrue("Array does not match enum values array.",
					Validator.validateSessionTypeArray(enumValueArray, enumTestArray));
	}
}