package com.smartdevicelink.test.rpc.responses; import com.smartdevicelink.marshal.JsonRPCMarshaller; import com.smartdevicelink.protocol.enums.FunctionID; import com.smartdevicelink.proxy.RPCMessage; import com.smartdevicelink.proxy.rpc.ShowResponse; import com.smartdevicelink.test.BaseRpcTests; import com.smartdevicelink.test.JsonUtils; import com.smartdevicelink.test.Test; import com.smartdevicelink.test.json.rpc.JsonFileReader; import org.json.JSONException; import org.json.JSONObject; import java.util.Hashtable; /** * This is a unit test class for the SmartDeviceLink library project class : * {@link com.smartdevicelink.proxy.rpc.ShowResponse} */ public class ShowResponseTest extends BaseRpcTests { @Override protected RPCMessage createMessage(){ return new ShowResponse(); } @Override protected String getMessageType(){ return RPCMessage.KEY_RESPONSE; } @Override protected String getCommandType(){ return FunctionID.SHOW.toString(); } @Override protected JSONObject getExpectedParameters(int sdlVersion){ return new JSONObject(); } /** * Tests the expected values of the RPC message. */ public void testRpcValues () { // Invalid/Null Tests ShowResponse msg = new ShowResponse(); assertNotNull(Test.NOT_NULL, msg); testNullBase(msg); } /** * Tests a valid JSON construction of this RPC message. */ public void testJsonConstructor () { JSONObject commandJson = JsonFileReader.readId(this.mContext, getCommandType(), getMessageType()); assertNotNull(Test.NOT_NULL, commandJson); try { Hashtable<String, Object> hash = JsonRPCMarshaller.deserializeJSONObject(commandJson); ShowResponse cmd = new ShowResponse(hash); JSONObject body = JsonUtils.readJsonObjectFromJsonObject(commandJson, getMessageType()); assertNotNull(Test.NOT_NULL, body); // Test everything in the json body. assertEquals(Test.MATCH, JsonUtils.readStringFromJsonObject(body, RPCMessage.KEY_FUNCTION_NAME), cmd.getFunctionName()); assertEquals(Test.MATCH, JsonUtils.readIntegerFromJsonObject(body, RPCMessage.KEY_CORRELATION_ID), cmd.getCorrelationID()); } catch (JSONException e) { e.printStackTrace(); } } }