diff options
Diffstat (limited to 'android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/WeatherDataTests.java')
-rw-r--r-- | android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/WeatherDataTests.java | 184 |
1 files changed, 184 insertions, 0 deletions
diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/WeatherDataTests.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/WeatherDataTests.java new file mode 100644 index 000000000..70454f5c3 --- /dev/null +++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/WeatherDataTests.java @@ -0,0 +1,184 @@ +package com.smartdevicelink.test.rpc.datatypes; + +import com.smartdevicelink.marshal.JsonRPCMarshaller; +import com.smartdevicelink.proxy.rpc.DateTime; +import com.smartdevicelink.proxy.rpc.Temperature; +import com.smartdevicelink.proxy.rpc.WeatherData; +import com.smartdevicelink.test.JsonUtils; +import com.smartdevicelink.test.Test; +import com.smartdevicelink.test.Validator; + +import junit.framework.TestCase; + +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.Hashtable; +import java.util.Iterator; + +/** + * This is a unit test class for the SmartDeviceLink library project class : + * {@link com.smartdevicelink.proxy.rpc.WeatherData} + */ +public class WeatherDataTests extends TestCase { + + private WeatherData msg; + + @Override + public void setUp(){ + + msg = new WeatherData(); + msg.setCurrentTemperature(Test.GENERAL_TEMPERATURE); + msg.setTemperatureHigh(Test.GENERAL_TEMPERATURE); + msg.setTemperatureLow(Test.GENERAL_TEMPERATURE); + msg.setApparentTemperature(Test.GENERAL_TEMPERATURE); + msg.setApparentTemperatureHigh(Test.GENERAL_TEMPERATURE); + msg.setApparentTemperatureLow(Test.GENERAL_TEMPERATURE); + msg.setWeatherSummary(Test.GENERAL_STRING); + msg.setTime(Test.GENERAL_DATETIME); + msg.setHumidity(Test.GENERAL_FLOAT); + msg.setCloudCover(Test.GENERAL_FLOAT); + msg.setMoonPhase(Test.GENERAL_FLOAT); + msg.setWindBearing(Test.GENERAL_INTEGER); + msg.setWindGust(Test.GENERAL_FLOAT); + msg.setWindSpeed(Test.GENERAL_FLOAT); + msg.setNearestStormBearing(Test.GENERAL_INTEGER); + msg.setNearestStormDistance(Test.GENERAL_INTEGER); + msg.setPrecipAccumulation(Test.GENERAL_FLOAT); + msg.setPrecipIntensity(Test.GENERAL_FLOAT); + msg.setPrecipProbability(Test.GENERAL_FLOAT); + msg.setPrecipType(Test.GENERAL_STRING); + msg.setVisibility(Test.GENERAL_FLOAT); + msg.setWeatherIconImageName(Test.GENERAL_STRING); + } + + /** + * Tests the expected values of the RPC message. + */ + public void testRpcValues () { + // Test Values + Temperature currentTemperature = msg.getCurrentTemperature(); + Temperature temperatureHigh = msg.getTemperatureHigh(); + Temperature temperatureLow = msg.getTemperatureLow(); + Temperature apparentTemperature = msg.getApparentTemperature(); + Temperature apparentTemperatureHigh = msg.getApparentTemperatureHigh(); + String weatherSummary = msg.getWeatherSummary(); + DateTime time = msg.getTime(); + Float humidity = msg.getHumidity(); + Float cloudCover = msg.getCloudCover(); + Float moonPhase = msg.getMoonPhase(); + Integer windBearing = msg.getWindBearing(); + Float windGust = msg.getWindGust(); + Float windSpeed = msg.getWindSpeed(); + Integer nearestStormBearing = msg.getNearestStormBearing(); + Integer nearestStormDistance = msg.getNearestStormDistance(); + Float precipAccumulation = msg.getPrecipAccumulation(); + Float precipIntensity = msg.getPrecipIntensity(); + Float precipProbability = msg.getPrecipProbability(); + String precipType = msg.getPrecipType(); + Float visibility = msg.getVisibility(); + String weatherIconImageName = msg.getWeatherIconImageName(); + + // Valid Tests + assertEquals(Test.MATCH, currentTemperature, Test.GENERAL_TEMPERATURE); + assertEquals(Test.MATCH, temperatureHigh, Test.GENERAL_TEMPERATURE); + assertEquals(Test.MATCH, temperatureLow, Test.GENERAL_TEMPERATURE); + assertEquals(Test.MATCH, apparentTemperature, Test.GENERAL_TEMPERATURE); + assertEquals(Test.MATCH, apparentTemperatureHigh, Test.GENERAL_TEMPERATURE); + assertEquals(Test.MATCH, weatherSummary, Test.GENERAL_STRING); + assertEquals(Test.MATCH, time, Test.GENERAL_DATETIME); + assertEquals(Test.MATCH, humidity, Test.GENERAL_FLOAT); + assertEquals(Test.MATCH, cloudCover, Test.GENERAL_FLOAT); + assertEquals(Test.MATCH, moonPhase, Test.GENERAL_FLOAT); + assertEquals(Test.MATCH, windBearing, Test.GENERAL_INTEGER); + assertEquals(Test.MATCH, windGust, Test.GENERAL_FLOAT); + assertEquals(Test.MATCH, windSpeed, Test.GENERAL_FLOAT); + assertEquals(Test.MATCH, nearestStormBearing, Test.GENERAL_INTEGER); + assertEquals(Test.MATCH, nearestStormDistance, Test.GENERAL_INTEGER); + assertEquals(Test.MATCH, precipAccumulation, Test.GENERAL_FLOAT); + assertEquals(Test.MATCH, precipIntensity, Test.GENERAL_FLOAT); + assertEquals(Test.MATCH, precipProbability, Test.GENERAL_FLOAT); + assertEquals(Test.MATCH, precipType, Test.GENERAL_STRING); + assertEquals(Test.MATCH, visibility, Test.GENERAL_FLOAT); + assertEquals(Test.MATCH, weatherIconImageName, Test.GENERAL_STRING); + + // Invalid/Null Tests + WeatherData msg = new WeatherData(); + assertNotNull(Test.NOT_NULL, msg); + + assertNull(Test.NULL, msg.getCurrentTemperature()); + assertNull(Test.NULL, msg.getTemperatureHigh()); + assertNull(Test.NULL, msg.getTemperatureLow()); + assertNull(Test.NULL, msg.getApparentTemperature()); + assertNull(Test.NULL, msg.getApparentTemperatureHigh()); + assertNull(Test.NULL, msg.getApparentTemperatureLow()); + assertNull(Test.NULL, msg.getWeatherSummary()); + assertNull(Test.NULL, msg.getTime()); + assertNull(Test.NULL, msg.getHumidity()); + assertNull(Test.NULL, msg.getCloudCover()); + assertNull(Test.NULL, msg.getMoonPhase()); + assertNull(Test.NULL, msg.getWindBearing()); + assertNull(Test.NULL, msg.getWindGust()); + assertNull(Test.NULL, msg.getWindSpeed()); + assertNull(Test.NULL, msg.getNearestStormBearing()); + assertNull(Test.NULL, msg.getNearestStormDistance()); + assertNull(Test.NULL, msg.getPrecipAccumulation()); + assertNull(Test.NULL, msg.getPrecipIntensity()); + assertNull(Test.NULL, msg.getPrecipProbability()); + assertNull(Test.NULL, msg.getPrecipType()); + assertNull(Test.NULL, msg.getVisibility()); + assertNull(Test.NULL, msg.getWeatherIconImageName()); + } + + public void testJson(){ + JSONObject reference = new JSONObject(); + + try{ + reference.put(WeatherData.KEY_CURRENT_TEMPERATURE, Test.GENERAL_TEMPERATURE); + reference.put(WeatherData.KEY_TEMPERATURE_HIGH, Test.GENERAL_TEMPERATURE); + reference.put(WeatherData.KEY_TEMPERATURE_LOW, Test.GENERAL_TEMPERATURE); + reference.put(WeatherData.KEY_APPARENT_TEMPERATURE, Test.GENERAL_TEMPERATURE); + reference.put(WeatherData.KEY_APPARENT_TEMPERATURE_HIGH, Test.GENERAL_TEMPERATURE); + reference.put(WeatherData.KEY_APPARENT_TEMPERATURE_LOW, Test.GENERAL_TEMPERATURE); + reference.put(WeatherData.KEY_WEATHER_SUMMARY, Test.GENERAL_STRING); + reference.put(WeatherData.KEY_TIME, Test.GENERAL_DATETIME); + reference.put(WeatherData.KEY_HUMIDITY, Test.GENERAL_FLOAT); + reference.put(WeatherData.KEY_CLOUD_COVER, Test.GENERAL_FLOAT); + reference.put(WeatherData.KEY_MOON_PHASE, Test.GENERAL_FLOAT); + reference.put(WeatherData.KEY_WIND_BEARING, Test.GENERAL_INTEGER); + reference.put(WeatherData.KEY_WIND_GUST, Test.GENERAL_FLOAT); + reference.put(WeatherData.KEY_WIND_SPEED, Test.GENERAL_FLOAT); + reference.put(WeatherData.KEY_NEAREST_STORM_BEARING, Test.GENERAL_INTEGER); + reference.put(WeatherData.KEY_NEAREST_STORM_DISTANCE, Test.GENERAL_INTEGER); + reference.put(WeatherData.KEY_PRECIP_ACCUMULATION, Test.GENERAL_FLOAT); + reference.put(WeatherData.KEY_PRECIP_INTENSITY, Test.GENERAL_FLOAT); + reference.put(WeatherData.KEY_PRECIP_PROBABILITY, Test.GENERAL_FLOAT); + reference.put(WeatherData.KEY_PRECIP_TYPE, Test.GENERAL_STRING); + reference.put(WeatherData.KEY_VISIBILITY, Test.GENERAL_FLOAT); + reference.put(WeatherData.KEY_WEATHER_ICON_IMAGE_NAME, Test.GENERAL_STRING); + + JSONObject underTest = msg.serializeJSON(); + assertEquals(Test.MATCH, reference.length(), underTest.length()); + + Iterator<?> iterator = reference.keys(); + while(iterator.hasNext()) { + String key = (String) iterator.next(); + if (key.equals(WeatherData.KEY_CURRENT_TEMPERATURE) || key.equals(WeatherData.KEY_TEMPERATURE_HIGH)|| + key.equals(WeatherData.KEY_TEMPERATURE_LOW) || key.equals(WeatherData.KEY_APPARENT_TEMPERATURE)|| + key.equals(WeatherData.KEY_APPARENT_TEMPERATURE_HIGH) || key.equals(WeatherData.KEY_APPARENT_TEMPERATURE_LOW)){ + JSONObject testEquals = (JSONObject) JsonUtils.readObjectFromJsonObject(underTest, key); + Hashtable<String, Object> hashTest = JsonRPCMarshaller.deserializeJSONObject(testEquals); + assertTrue(Test.TRUE, Validator.validateTemperature(Test.GENERAL_TEMPERATURE, new Temperature(hashTest))); + } else if (key.equals(WeatherData.KEY_TIME)){ + JSONObject testEquals = (JSONObject) JsonUtils.readObjectFromJsonObject(underTest, key); + Hashtable<String, Object> hashTest = JsonRPCMarshaller.deserializeJSONObject(testEquals); + assertTrue(Test.TRUE, Validator.validateDateTime(Test.GENERAL_DATETIME, new DateTime(hashTest))); + } else { + assertEquals(Test.MATCH, JsonUtils.readObjectFromJsonObject(reference, key), JsonUtils.readObjectFromJsonObject(underTest, key)); + } + } + } catch(JSONException e){ + fail(Test.JSON_FAIL); + } + } +}
\ No newline at end of file |