summaryrefslogtreecommitdiff
path: root/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/SubscribeVehicleDataTests.java
blob: 7f5113fc7c99985ae46d2885d9aa04aad5a35125 (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
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
package com.smartdevicelink.test.rpc.requests;

import com.smartdevicelink.marshal.JsonRPCMarshaller;
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCMessage;
import com.smartdevicelink.proxy.rpc.SubscribeVehicleData;
import com.smartdevicelink.test.BaseRpcTests;
import com.smartdevicelink.test.JsonUtils;
import com.smartdevicelink.test.TestValues;
import com.smartdevicelink.test.json.rpc.JsonFileReader;

import org.json.JSONException;
import org.json.JSONObject;
import org.junit.Test;

import java.util.Hashtable;

import static junit.framework.TestCase.assertEquals;
import static junit.framework.TestCase.assertNotNull;
import static junit.framework.TestCase.assertNull;
import static junit.framework.TestCase.assertTrue;
import static junit.framework.TestCase.fail;
import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;

/**
 * This is a unit test class for the SmartDeviceLink library project class : 
 * {@link com.smartdevicelink.proxy.rpc.SubscribeVehicleData}
 */
public class SubscribeVehicleDataTests extends BaseRpcTests {
		
	@Override
	protected RPCMessage createMessage() {
		SubscribeVehicleData msg = new SubscribeVehicleData();

		msg.setSpeed(TestValues.GENERAL_BOOLEAN);
		msg.setRpm(TestValues.GENERAL_BOOLEAN);
		msg.setExternalTemperature(TestValues.GENERAL_BOOLEAN);
		msg.setFuelLevel(TestValues.GENERAL_BOOLEAN);
		msg.setPrndl(TestValues.GENERAL_BOOLEAN);
		msg.setTirePressure(TestValues.GENERAL_BOOLEAN);
		msg.setEngineTorque(TestValues.GENERAL_BOOLEAN);
		msg.setEngineOilLife(TestValues.GENERAL_BOOLEAN);
		msg.setOdometer(TestValues.GENERAL_BOOLEAN);
		msg.setGps(TestValues.GENERAL_BOOLEAN);
		msg.setFuelLevelState(TestValues.GENERAL_BOOLEAN);
		msg.setInstantFuelConsumption(TestValues.GENERAL_BOOLEAN);
		msg.setBeltStatus(TestValues.GENERAL_BOOLEAN);
		msg.setBodyInformation(TestValues.GENERAL_BOOLEAN);
		msg.setDeviceStatus(TestValues.GENERAL_BOOLEAN);
		msg.setDriverBraking(TestValues.GENERAL_BOOLEAN);
		msg.setWiperStatus(TestValues.GENERAL_BOOLEAN);
		msg.setHeadLampStatus(TestValues.GENERAL_BOOLEAN);
		msg.setAccPedalPosition(TestValues.GENERAL_BOOLEAN);
		msg.setSteeringWheelAngle(TestValues.GENERAL_BOOLEAN);
		msg.setECallInfo(TestValues.GENERAL_BOOLEAN);
		msg.setAirbagStatus(TestValues.GENERAL_BOOLEAN);
		msg.setEmergencyEvent(TestValues.GENERAL_BOOLEAN);
		msg.setClusterModeStatus(TestValues.GENERAL_BOOLEAN);
		msg.setMyKey(TestValues.GENERAL_BOOLEAN);
		msg.setFuelRange(TestValues.GENERAL_BOOLEAN);
		msg.setTurnSignal(TestValues.GENERAL_BOOLEAN);
		msg.setElectronicParkBrakeStatus(TestValues.GENERAL_BOOLEAN);
		msg.setHandsOffSteering(TestValues.GENERAL_BOOLEAN);
		msg.setWindowStatus(TestValues.GENERAL_BOOLEAN);
		msg.setGearStatus(TestValues.GENERAL_BOOLEAN);
		msg.setStabilityControlsStatus(TestValues.GENERAL_BOOLEAN);
		msg.setOEMCustomVehicleData(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME, TestValues.GENERAL_BOOLEAN);
		
		return msg;
	}

	@Override
	protected String getMessageType() {
		return RPCMessage.KEY_REQUEST;
	}

	@Override
	protected String getCommandType() {
		return FunctionID.SUBSCRIBE_VEHICLE_DATA.toString();
	}

	@Override
	protected JSONObject getExpectedParameters(int sdlVersion) {
		JSONObject result = new JSONObject();

		try {
            result.put(SubscribeVehicleData.KEY_SPEED, TestValues.GENERAL_BOOLEAN);
            result.put(SubscribeVehicleData.KEY_RPM, TestValues.GENERAL_BOOLEAN);
            result.put(SubscribeVehicleData.KEY_EXTERNAL_TEMPERATURE, TestValues.GENERAL_BOOLEAN);
            result.put(SubscribeVehicleData.KEY_FUEL_LEVEL, TestValues.GENERAL_BOOLEAN);
            result.put(SubscribeVehicleData.KEY_PRNDL, TestValues.GENERAL_BOOLEAN);
            result.put(SubscribeVehicleData.KEY_TIRE_PRESSURE, TestValues.GENERAL_BOOLEAN);
            result.put(SubscribeVehicleData.KEY_ENGINE_TORQUE, TestValues.GENERAL_BOOLEAN);
            result.put(SubscribeVehicleData.KEY_ENGINE_OIL_LIFE, TestValues.GENERAL_BOOLEAN);
            result.put(SubscribeVehicleData.KEY_ODOMETER, TestValues.GENERAL_BOOLEAN);
            result.put(SubscribeVehicleData.KEY_GPS, TestValues.GENERAL_BOOLEAN);
            result.put(SubscribeVehicleData.KEY_FUEL_LEVEL_STATE, TestValues.GENERAL_BOOLEAN);
            result.put(SubscribeVehicleData.KEY_INSTANT_FUEL_CONSUMPTION, TestValues.GENERAL_BOOLEAN);
            result.put(SubscribeVehicleData.KEY_BELT_STATUS, TestValues.GENERAL_BOOLEAN);
            result.put(SubscribeVehicleData.KEY_BODY_INFORMATION, TestValues.GENERAL_BOOLEAN);
            result.put(SubscribeVehicleData.KEY_DEVICE_STATUS, TestValues.GENERAL_BOOLEAN);
            result.put(SubscribeVehicleData.KEY_DRIVER_BRAKING, TestValues.GENERAL_BOOLEAN);
            result.put(SubscribeVehicleData.KEY_WIPER_STATUS, TestValues.GENERAL_BOOLEAN);
            result.put(SubscribeVehicleData.KEY_HEAD_LAMP_STATUS, TestValues.GENERAL_BOOLEAN);
            result.put(SubscribeVehicleData.KEY_ACC_PEDAL_POSITION, TestValues.GENERAL_BOOLEAN);
            result.put(SubscribeVehicleData.KEY_STEERING_WHEEL_ANGLE, TestValues.GENERAL_BOOLEAN);
            result.put(SubscribeVehicleData.KEY_E_CALL_INFO, TestValues.GENERAL_BOOLEAN);
            result.put(SubscribeVehicleData.KEY_AIRBAG_STATUS, TestValues.GENERAL_BOOLEAN);
            result.put(SubscribeVehicleData.KEY_EMERGENCY_EVENT, TestValues.GENERAL_BOOLEAN);
            result.put(SubscribeVehicleData.KEY_CLUSTER_MODE_STATUS, TestValues.GENERAL_BOOLEAN);
            result.put(SubscribeVehicleData.KEY_MY_KEY, TestValues.GENERAL_BOOLEAN);
            result.put(SubscribeVehicleData.KEY_FUEL_RANGE, TestValues.GENERAL_BOOLEAN);
            result.put(SubscribeVehicleData.KEY_TURN_SIGNAL, TestValues.GENERAL_BOOLEAN);
            result.put(SubscribeVehicleData.KEY_ELECTRONIC_PARK_BRAKE_STATUS, TestValues.GENERAL_BOOLEAN);
            result.put(SubscribeVehicleData.KEY_HANDS_OFF_STEERING, TestValues.GENERAL_BOOLEAN);
            result.put(SubscribeVehicleData.KEY_WINDOW_STATUS, TestValues.GENERAL_BOOLEAN);
            result.put(SubscribeVehicleData.KEY_GEAR_STATUS, TestValues.GENERAL_BOOLEAN);
            result.put(SubscribeVehicleData.KEY_STABILITY_CONTROLS_STATUS, TestValues.GENERAL_BOOLEAN);
            result.put(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME, TestValues.GENERAL_BOOLEAN);
		} catch (JSONException e) {
			fail(TestValues.JSON_FAIL);
		}

		return result;
	}

	/**
	 * Tests the expected values of the RPC message.
	 */
	@Test
    public void testRpcValues () {
    	
    	// Valid Tests
		assertTrue(TestValues.MATCH,( (SubscribeVehicleData) msg ).getSpeed());
		assertTrue(TestValues.MATCH,( (SubscribeVehicleData) msg ).getRpm());
		assertTrue(TestValues.MATCH,( (SubscribeVehicleData) msg ).getExternalTemperature());
		assertTrue(TestValues.MATCH,( (SubscribeVehicleData) msg ).getFuelLevel());
		assertTrue(TestValues.MATCH,( (SubscribeVehicleData) msg ).getPrndl());
		assertTrue(TestValues.MATCH,( (SubscribeVehicleData) msg ).getTirePressure());
		assertTrue(TestValues.MATCH,( (SubscribeVehicleData) msg ).getEngineTorque());
		assertTrue(TestValues.MATCH,( (SubscribeVehicleData) msg ).getEngineOilLife());
		assertTrue(TestValues.MATCH,( (SubscribeVehicleData) msg ).getOdometer());
		assertTrue(TestValues.MATCH,( (SubscribeVehicleData) msg ).getGps());
		assertTrue(TestValues.MATCH,( (SubscribeVehicleData) msg ).getFuelLevelState());
		assertTrue(TestValues.MATCH,( (SubscribeVehicleData) msg ).getInstantFuelConsumption());
		assertTrue(TestValues.MATCH,( (SubscribeVehicleData) msg ).getBeltStatus());
		assertTrue(TestValues.MATCH,( (SubscribeVehicleData) msg ).getBodyInformation());
		assertTrue(TestValues.MATCH,( (SubscribeVehicleData) msg ).getDeviceStatus());
		assertTrue(TestValues.MATCH,( (SubscribeVehicleData) msg ).getDriverBraking());
		assertTrue(TestValues.MATCH,( (SubscribeVehicleData) msg ).getWiperStatus());
		assertTrue(TestValues.MATCH,( (SubscribeVehicleData) msg ).getHeadLampStatus());
		assertTrue(TestValues.MATCH,( (SubscribeVehicleData) msg ).getAccPedalPosition());
		assertTrue(TestValues.MATCH,( (SubscribeVehicleData) msg ).getSteeringWheelAngle());
		assertTrue(TestValues.MATCH,( (SubscribeVehicleData) msg ).getECallInfo());
		assertTrue(TestValues.MATCH,( (SubscribeVehicleData) msg ).getAirbagStatus());
		assertTrue(TestValues.MATCH,( (SubscribeVehicleData) msg ).getEmergencyEvent());
		assertTrue(TestValues.MATCH,( (SubscribeVehicleData) msg ).getClusterModeStatus());
		assertTrue(TestValues.MATCH,( (SubscribeVehicleData) msg ).getMyKey());
		assertTrue(TestValues.MATCH,( (SubscribeVehicleData) msg ).getFuelRange());
		assertTrue(TestValues.MATCH,( (SubscribeVehicleData) msg ).getTurnSignal());
		assertTrue(TestValues.MATCH,( (SubscribeVehicleData) msg ).getElectronicParkBrakeStatus());
		assertTrue(TestValues.MATCH,( (SubscribeVehicleData) msg ).getHandsOffSteering());
		assertTrue(TestValues.MATCH,( (SubscribeVehicleData) msg ).getWindowStatus());
		assertTrue(TestValues.MATCH,( (SubscribeVehicleData) msg ).getGearStatus());
		assertTrue(TestValues.MATCH,( (SubscribeVehicleData) msg ).getStabilityControlsStatus());
		assertTrue(TestValues.MATCH,( (SubscribeVehicleData) msg ).getOEMCustomVehicleData(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME));
    
		// Invalid/Null Tests
		SubscribeVehicleData msg = new SubscribeVehicleData();
		assertNotNull(TestValues.NOT_NULL, msg);
		testNullBase(msg);

        assertNull(TestValues.NULL, msg.getAccPedalPosition());
        assertNull(TestValues.NULL, msg.getAirbagStatus());
        assertNull(TestValues.NULL, msg.getBeltStatus());
        assertNull(TestValues.NULL, msg.getDriverBraking());
        assertNull(TestValues.NULL, msg.getFuelLevel());
        assertNull(TestValues.NULL, msg.getTirePressure());
        assertNull(TestValues.NULL, msg.getWiperStatus());
        assertNull(TestValues.NULL, msg.getGps());
        assertNull(TestValues.NULL, msg.getSpeed());
        assertNull(TestValues.NULL, msg.getRpm());
        assertNull(TestValues.NULL, msg.getFuelLevelState());
        assertNull(TestValues.NULL, msg.getInstantFuelConsumption());
        assertNull(TestValues.NULL, msg.getExternalTemperature());
        assertNull(TestValues.NULL, msg.getPrndl());
        assertNull(TestValues.NULL, msg.getOdometer());
        assertNull(TestValues.NULL, msg.getBodyInformation());
        assertNull(TestValues.NULL, msg.getDeviceStatus());
        assertNull(TestValues.NULL, msg.getHeadLampStatus());
        assertNull(TestValues.NULL, msg.getEngineTorque());
        assertNull(TestValues.NULL, msg.getEngineOilLife());
        assertNull(TestValues.NULL, msg.getSteeringWheelAngle());
        assertNull(TestValues.NULL, msg.getECallInfo());
        assertNull(TestValues.NULL, msg.getEmergencyEvent());
        assertNull(TestValues.NULL, msg.getClusterModeStatus());
        assertNull(TestValues.NULL, msg.getMyKey());
        assertNull(TestValues.NULL, msg.getFuelRange());
        assertNull(TestValues.NULL, msg.getTurnSignal());
        assertNull(TestValues.NULL, msg.getElectronicParkBrakeStatus());
        assertNull(TestValues.NULL, msg.getHandsOffSteering());
        assertNull(TestValues.NULL, msg.getWindowStatus());
        assertNull(TestValues.NULL, msg.getGearStatus());
        assertNull(TestValues.NULL, msg.getStabilityControlsStatus());
        assertNull(TestValues.NULL, msg.getOEMCustomVehicleData(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME));
	}
	
    /**
     * Tests a valid JSON construction of this RPC message.
     */
    @Test
    public void testJsonConstructor () {
    	JSONObject commandJson = JsonFileReader.readId(getInstrumentation().getTargetContext(), getCommandType(), getMessageType());
    	assertNotNull(TestValues.NOT_NULL, commandJson);
    	
		try {
			Hashtable<String, Object> hash = JsonRPCMarshaller.deserializeJSONObject(commandJson);
			SubscribeVehicleData cmd = new SubscribeVehicleData(hash);
			
			JSONObject body = JsonUtils.readJsonObjectFromJsonObject(commandJson, getMessageType());
			assertNotNull(TestValues.NOT_NULL, body);
			
			// Test everything in the json body.
			assertEquals(TestValues.MATCH, JsonUtils.readStringFromJsonObject(body, RPCMessage.KEY_FUNCTION_NAME), cmd.getFunctionName());
			assertEquals(TestValues.MATCH, JsonUtils.readIntegerFromJsonObject(body, RPCMessage.KEY_CORRELATION_ID), cmd.getCorrelationID());

			JSONObject parameters = JsonUtils.readJsonObjectFromJsonObject(body, RPCMessage.KEY_PARAMETERS);
			assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_SPEED), cmd.getSpeed());
			assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_RPM), cmd.getRpm());
			assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_EXTERNAL_TEMPERATURE), cmd.getExternalTemperature());
			assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_FUEL_LEVEL), cmd.getFuelLevel());
			assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_PRNDL), cmd.getPrndl());
			assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_TIRE_PRESSURE), cmd.getTirePressure());
			assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_ENGINE_TORQUE), cmd.getEngineTorque());
			assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_ENGINE_OIL_LIFE), cmd.getEngineOilLife());
			assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_ODOMETER), cmd.getOdometer());
			assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_GPS), cmd.getGps());
			assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_FUEL_LEVEL_STATE), cmd.getFuelLevelState());
			assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_INSTANT_FUEL_CONSUMPTION), cmd.getInstantFuelConsumption());
			assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_BELT_STATUS), cmd.getBeltStatus());
			assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_BODY_INFORMATION), cmd.getBodyInformation());
			assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_DEVICE_STATUS), cmd.getDeviceStatus());
			assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_DRIVER_BRAKING), cmd.getDriverBraking());
			assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_WIPER_STATUS), cmd.getWiperStatus());
			assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_HEAD_LAMP_STATUS), cmd.getHeadLampStatus());
			assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_ACC_PEDAL_POSITION), cmd.getAccPedalPosition());
			assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_STEERING_WHEEL_ANGLE), cmd.getSteeringWheelAngle());
			assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_E_CALL_INFO), cmd.getECallInfo());
			assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_AIRBAG_STATUS), cmd.getAirbagStatus());
			assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_EMERGENCY_EVENT), cmd.getEmergencyEvent());
			assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_CLUSTER_MODE_STATUS), cmd.getClusterModeStatus());
			assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_MY_KEY), cmd.getMyKey());
			assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_FUEL_RANGE), cmd.getFuelRange());
			assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_TURN_SIGNAL), cmd.getTurnSignal());
			assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_ELECTRONIC_PARK_BRAKE_STATUS), cmd.getElectronicParkBrakeStatus());
			assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_HANDS_OFF_STEERING), cmd.getHandsOffSteering());
			assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_WINDOW_STATUS), cmd.getWindowStatus());
			assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_STABILITY_CONTROLS_STATUS), cmd.getStabilityControlsStatus());
			assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME), cmd.getOEMCustomVehicleData(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME));
		} catch (JSONException e) {
			fail(TestValues.JSON_FAIL);
		}    	
    }
}