diff options
Diffstat (limited to 'android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/AddSubmenuTests.java')
-rw-r--r-- | android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/AddSubmenuTests.java | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/AddSubmenuTests.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/AddSubmenuTests.java new file mode 100644 index 000000000..6e73121f1 --- /dev/null +++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/AddSubmenuTests.java @@ -0,0 +1,122 @@ +package com.smartdevicelink.test.rpc.requests; + +import java.util.Hashtable; + +import org.json.JSONException; +import org.json.JSONObject; + +import com.smartdevicelink.marshal.JsonRPCMarshaller; +import com.smartdevicelink.protocol.enums.FunctionID; +import com.smartdevicelink.proxy.RPCMessage; +import com.smartdevicelink.proxy.rpc.AddSubMenu; +import com.smartdevicelink.proxy.rpc.Image; +import com.smartdevicelink.test.BaseRpcTests; +import com.smartdevicelink.test.JsonUtils; +import com.smartdevicelink.test.Test; +import com.smartdevicelink.test.Validator; +import com.smartdevicelink.test.json.rpc.JsonFileReader; + +/** + * This is a unit test class for the SmartDeviceLink library project class : + * {@link com.smartdevicelink.proxy.rpc.AddSubMenu} + */ +public class AddSubmenuTests extends BaseRpcTests{ + + @Override + protected RPCMessage createMessage(){ + AddSubMenu msg = new AddSubMenu(); + + msg.setMenuID(Test.GENERAL_INT); + msg.setMenuName(Test.GENERAL_STRING); + msg.setPosition(Test.GENERAL_INT); + msg.setMenuIcon(Test.GENERAL_IMAGE); + + return msg; + } + + @Override + protected String getMessageType(){ + return RPCMessage.KEY_REQUEST; + } + + @Override + protected String getCommandType(){ + return FunctionID.ADD_SUB_MENU.toString(); + } + + @Override + protected JSONObject getExpectedParameters(int sdlVersion){ + JSONObject result = new JSONObject(); + + try{ + result.put(AddSubMenu.KEY_MENU_ID, Test.GENERAL_INT); + result.put(AddSubMenu.KEY_MENU_NAME, Test.GENERAL_STRING); + result.put(AddSubMenu.KEY_POSITION, Test.GENERAL_INT); + result.put(AddSubMenu.KEY_MENU_ICON, Test.JSON_IMAGE); + }catch(JSONException e){ + fail(Test.JSON_FAIL); + } + + return result; + } + + /** + * Tests the expected values of the RPC message. + */ + public void testRpcValues () { + // Test Values + int testMenuId = ( (AddSubMenu) msg ).getMenuID(); + int testPosition = ( (AddSubMenu) msg ).getPosition(); + String testMenuName = ( (AddSubMenu) msg ).getMenuName(); + Image testMenuIcon = ( (AddSubMenu) msg ).getMenuIcon(); + + // Valid Tests + assertEquals("Menu ID didn't match input menu ID.", Test.GENERAL_INT, testMenuId); + assertEquals("Menu name didn't match input menu name.", Test.GENERAL_STRING, testMenuName); + assertEquals("Position didn't match input position.", Test.GENERAL_INT, testPosition); + assertTrue("Menu icon didn't match input icon.", Validator.validateImage(Test.GENERAL_IMAGE, testMenuIcon)); + + + // Invalid/Null Tests + AddSubMenu msg = new AddSubMenu(); + assertNotNull("Null object creation failed.", msg); + testNullBase(msg); + + assertNull(Test.NULL, msg.getMenuID()); + assertNull(Test.NULL, msg.getMenuName()); + assertNull(Test.NULL, msg.getPosition()); + assertNull(Test.NULL, msg.getMenuIcon()); + } + + /** + * 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); + AddSubMenu cmd = new AddSubMenu(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()); + + JSONObject parameters = JsonUtils.readJsonObjectFromJsonObject(body, RPCMessage.KEY_PARAMETERS); + + assertEquals(Test.MATCH, JsonUtils.readIntegerFromJsonObject(parameters, AddSubMenu.KEY_MENU_ID), cmd.getMenuID()); + assertEquals(Test.MATCH, JsonUtils.readIntegerFromJsonObject(parameters, AddSubMenu.KEY_POSITION), cmd.getPosition()); + assertEquals(Test.MATCH, JsonUtils.readStringFromJsonObject(parameters, AddSubMenu.KEY_MENU_NAME), cmd.getMenuName()); + + JSONObject menuIcon = JsonUtils.readJsonObjectFromJsonObject(parameters, AddSubMenu.KEY_MENU_ICON); + Image referenceMenuIcon = new Image(JsonRPCMarshaller.deserializeJSONObject(menuIcon)); + assertTrue(Test.TRUE, Validator.validateImage(referenceMenuIcon, cmd.getMenuIcon())); + } catch (JSONException e) { + fail(Test.JSON_FAIL); + } + } +}
\ No newline at end of file |