JSONObject products = jsonHelper.getKeyValue(jsonObject, JSON_KEY_NAME_PRODUCTS, JSONObject.class); JSONObject current = jsonHelper.getKeyValue(products, key, JSONObject.class); String sku = jsonHelper.getKeyValue(current, JSON_KEY_NAME_SKU, String.class); JSONObject attributes = jsonHelper.getKeyValue(current, JSON_KEY_NAME_ATTRIBUTES, JSONObject.class); JSONObject terms = jsonHelper.getKeyValue(jsonObject, JSON_KEY_NAME_TERMS, JSONObject.class); JSONObject onDemand = jsonHelper.getKeyValue(terms, JSON_KEY_NAME_ON_DEMAND, JSONObject.class); JSONObject current = jsonHelper.getKeyValue(onDemand, sku, JSONObject.class); JSONObject pricingWrapper = jsonHelper.getKeyValue(current, sku + JSON_SKU_WRAPPER_SUFFIX, JSONObject.class); JSONObject priceDimensions = jsonHelper.getKeyValue(pricingWrapper, JSON_KEY_NAME_PRICE_DIMENSIONS, JSONObject.class); JSONObject innerPricingWrapper = jsonHelper.getKeyValue(priceDimensions, sku + JSON_SKU_WRAPPER_SUFFIX + JSON_PRICE_DIMENSIONS_WRAPPER_SUFFIX, JSONObject.class); JSONObject pricePerUnit = jsonHelper.getKeyValue(innerPricingWrapper, JSON_KEY_NAME_PRICE_PER_UNIT, JSONObject.class); String pricePerUnitValue = jsonHelper.getKeyValue(pricePerUnit, JSON_PRICE_PER_UNIT_WRAPPER, String.class);
JSONObject products = jsonHelper.getKeyValue(jsonObject, JSON_KEY_NAME_PRODUCTS, JSONObject.class); JSONObject current = jsonHelper.getKeyValue(products, key, JSONObject.class); String sku = jsonHelper.getKeyValue(current, JSON_KEY_NAME_SKU, String.class); JSONObject attributes = jsonHelper.getKeyValue(current, JSON_KEY_NAME_ATTRIBUTES, JSONObject.class); JSONObject terms = jsonHelper.getKeyValue(jsonObject, JSON_KEY_NAME_TERMS, JSONObject.class); JSONObject onDemand = jsonHelper.getKeyValue(terms, JSON_KEY_NAME_ON_DEMAND, JSONObject.class); JSONObject current = jsonHelper.getKeyValue(onDemand, sku, JSONObject.class); JSONObject pricingWrapper = jsonHelper.getKeyValue(current, sku + JSON_SKU_WRAPPER_SUFFIX, JSONObject.class); JSONObject priceDimensions = jsonHelper.getKeyValue(pricingWrapper, JSON_KEY_NAME_PRICE_DIMENSIONS, JSONObject.class); JSONObject innerPricingWrapper = jsonHelper.getKeyValue(priceDimensions, sku + JSON_SKU_WRAPPER_SUFFIX + JSON_PRICE_DIMENSIONS_WRAPPER_SUFFIX, JSONObject.class); JSONObject pricePerUnit = jsonHelper.getKeyValue(innerPricingWrapper, JSON_KEY_NAME_PRICE_PER_UNIT, JSONObject.class); String pricePerUnitValue = jsonHelper.getKeyValue(pricePerUnit, JSON_PRICE_PER_UNIT_WRAPPER, String.class);
when(jsonHelper.getKeyValue(jsonObject, Ec2OnDemandPricingUpdateServiceImpl.JSON_KEY_NAME_PRODUCTS, JSONObject.class)).thenReturn(products); when(jsonHelper.getKeyValue(products, EC2_PRODUCT_KEY, JSONObject.class)).thenReturn(product); when(jsonHelper.getKeyValue(product, Ec2OnDemandPricingUpdateServiceImpl.JSON_KEY_NAME_SKU, String.class)).thenReturn(SKU); when(jsonHelper.getKeyValue(product, Ec2OnDemandPricingUpdateServiceImpl.JSON_KEY_NAME_ATTRIBUTES, JSONObject.class)).thenReturn(attributes); verify(jsonHelper).getKeyValue(jsonObject, Ec2OnDemandPricingUpdateServiceImpl.JSON_KEY_NAME_PRODUCTS, JSONObject.class); verify(jsonHelper).getKeyValue(products, EC2_PRODUCT_KEY, JSONObject.class); verify(jsonHelper).getKeyValue(product, Ec2OnDemandPricingUpdateServiceImpl.JSON_KEY_NAME_SKU, String.class); verify(jsonHelper).getKeyValue(product, Ec2OnDemandPricingUpdateServiceImpl.JSON_KEY_NAME_ATTRIBUTES, JSONObject.class); verifyNoMoreInteractionsHelper();
when(jsonHelper.getKeyValue(jsonObject, Ec2OnDemandPricingUpdateServiceImpl.JSON_KEY_NAME_PRODUCTS, JSONObject.class)).thenReturn(products); when(jsonHelper.getKeyValue(products, EC2_PRODUCT_KEY, JSONObject.class)).thenReturn(product); when(jsonHelper.getKeyValue(products, EC2_PRODUCT_KEY_2, JSONObject.class)).thenReturn(product); when(jsonHelper.getKeyValue(product, Ec2OnDemandPricingUpdateServiceImpl.JSON_KEY_NAME_SKU, String.class)).thenReturn(SKU); when(jsonHelper.getKeyValue(product, Ec2OnDemandPricingUpdateServiceImpl.JSON_KEY_NAME_ATTRIBUTES, JSONObject.class)).thenReturn(attributes); verify(jsonHelper).getKeyValue(jsonObject, Ec2OnDemandPricingUpdateServiceImpl.JSON_KEY_NAME_PRODUCTS, JSONObject.class); verify(jsonHelper).getKeyValue(products, EC2_PRODUCT_KEY, JSONObject.class); verify(jsonHelper).getKeyValue(products, EC2_PRODUCT_KEY_2, JSONObject.class); verify(jsonHelper, times(2)).getKeyValue(product, Ec2OnDemandPricingUpdateServiceImpl.JSON_KEY_NAME_SKU, String.class); verify(jsonHelper, times(2)).getKeyValue(product, Ec2OnDemandPricingUpdateServiceImpl.JSON_KEY_NAME_ATTRIBUTES, JSONObject.class); verifyNoMoreInteractionsHelper();
when(jsonHelper.getKeyValue(jsonObject, Ec2OnDemandPricingUpdateServiceImpl.JSON_KEY_NAME_PRODUCTS, JSONObject.class)).thenReturn(products); when(jsonHelper.getKeyValue(products, EC2_PRODUCT_KEY, JSONObject.class)).thenReturn(product); when(jsonHelper.getKeyValue(product, Ec2OnDemandPricingUpdateServiceImpl.JSON_KEY_NAME_SKU, String.class)).thenReturn(SKU); when(jsonHelper.getKeyValue(product, Ec2OnDemandPricingUpdateServiceImpl.JSON_KEY_NAME_ATTRIBUTES, JSONObject.class)).thenReturn(attributes); when(jsonHelper.getKeyValue(jsonObject, Ec2OnDemandPricingUpdateServiceImpl.JSON_KEY_NAME_TERMS, JSONObject.class)).thenReturn(terms); when(jsonHelper.getKeyValue(terms, Ec2OnDemandPricingUpdateServiceImpl.JSON_KEY_NAME_ON_DEMAND, JSONObject.class)).thenReturn(onDemand); when(jsonHelper.getKeyValue(onDemand, SKU, JSONObject.class)).thenReturn(onDemandSkuInformation); when(jsonHelper.getKeyValue(onDemandSkuInformation, SKU + Ec2OnDemandPricingUpdateServiceImpl.JSON_SKU_WRAPPER_SUFFIX, JSONObject.class)) .thenReturn(pricingWrapper); when(jsonHelper.getKeyValue(pricingWrapper, Ec2OnDemandPricingUpdateServiceImpl.JSON_KEY_NAME_PRICE_DIMENSIONS, JSONObject.class)) .thenReturn(priceDimensions); when(jsonHelper.getKeyValue(priceDimensions, SKU + Ec2OnDemandPricingUpdateServiceImpl.JSON_SKU_WRAPPER_SUFFIX + Ec2OnDemandPricingUpdateServiceImpl.JSON_PRICE_DIMENSIONS_WRAPPER_SUFFIX, JSONObject.class)).thenReturn(innerPricingWrapper); when(jsonHelper.getKeyValue(innerPricingWrapper, Ec2OnDemandPricingUpdateServiceImpl.JSON_KEY_NAME_PRICE_PER_UNIT, JSONObject.class)) .thenReturn(pricePerUnit); when(jsonHelper.getKeyValue(pricePerUnit, Ec2OnDemandPricingUpdateServiceImpl.JSON_PRICE_PER_UNIT_WRAPPER, String.class)) .thenReturn(HOURLY_PRICE.toString()); verify(jsonHelper).getKeyValue(jsonObject, Ec2OnDemandPricingUpdateServiceImpl.JSON_KEY_NAME_PRODUCTS, JSONObject.class); verify(jsonHelper).getKeyValue(products, EC2_PRODUCT_KEY, JSONObject.class); verify(jsonHelper).getKeyValue(product, Ec2OnDemandPricingUpdateServiceImpl.JSON_KEY_NAME_SKU, String.class); verify(jsonHelper).getKeyValue(product, Ec2OnDemandPricingUpdateServiceImpl.JSON_KEY_NAME_ATTRIBUTES, JSONObject.class); verify(jsonHelper).getKeyValue(jsonObject, Ec2OnDemandPricingUpdateServiceImpl.JSON_KEY_NAME_TERMS, JSONObject.class); verify(jsonHelper).getKeyValue(terms, Ec2OnDemandPricingUpdateServiceImpl.JSON_KEY_NAME_ON_DEMAND, JSONObject.class); verify(jsonHelper).getKeyValue(onDemand, SKU, JSONObject.class); verify(jsonHelper).getKeyValue(onDemandSkuInformation, SKU + Ec2OnDemandPricingUpdateServiceImpl.JSON_SKU_WRAPPER_SUFFIX, JSONObject.class); verify(jsonHelper).getKeyValue(pricingWrapper, Ec2OnDemandPricingUpdateServiceImpl.JSON_KEY_NAME_PRICE_DIMENSIONS, JSONObject.class); verify(jsonHelper).getKeyValue(priceDimensions,
when(jsonHelper.getKeyValue(jsonObject, Ec2OnDemandPricingUpdateServiceImpl.JSON_KEY_NAME_PRODUCTS, JSONObject.class)).thenReturn(products); when(jsonHelper.getKeyValue(products, EC2_PRODUCT_KEY, JSONObject.class)).thenReturn(product); when(jsonHelper.getKeyValue(product, Ec2OnDemandPricingUpdateServiceImpl.JSON_KEY_NAME_SKU, String.class)).thenReturn(SKU); when(jsonHelper.getKeyValue(product, Ec2OnDemandPricingUpdateServiceImpl.JSON_KEY_NAME_ATTRIBUTES, JSONObject.class)).thenReturn(attributes); when(jsonHelper.getKeyValue(jsonObject, Ec2OnDemandPricingUpdateServiceImpl.JSON_KEY_NAME_TERMS, JSONObject.class)).thenReturn(terms); when(jsonHelper.getKeyValue(terms, Ec2OnDemandPricingUpdateServiceImpl.JSON_KEY_NAME_ON_DEMAND, JSONObject.class)).thenReturn(onDemand); when(jsonHelper.getKeyValue(onDemand, SKU, JSONObject.class)).thenReturn(onDemandSkuInformation); when(jsonHelper.getKeyValue(onDemandSkuInformation, SKU + Ec2OnDemandPricingUpdateServiceImpl.JSON_SKU_WRAPPER_SUFFIX, JSONObject.class)) .thenReturn(pricingWrapper); when(jsonHelper.getKeyValue(pricingWrapper, Ec2OnDemandPricingUpdateServiceImpl.JSON_KEY_NAME_PRICE_DIMENSIONS, JSONObject.class)) .thenReturn(priceDimensions); when(jsonHelper.getKeyValue(priceDimensions, SKU + Ec2OnDemandPricingUpdateServiceImpl.JSON_SKU_WRAPPER_SUFFIX + Ec2OnDemandPricingUpdateServiceImpl.JSON_PRICE_DIMENSIONS_WRAPPER_SUFFIX, JSONObject.class)).thenReturn(innerPricingWrapper); when(jsonHelper.getKeyValue(innerPricingWrapper, Ec2OnDemandPricingUpdateServiceImpl.JSON_KEY_NAME_PRICE_PER_UNIT, JSONObject.class)) .thenReturn(pricePerUnit); when(jsonHelper.getKeyValue(pricePerUnit, Ec2OnDemandPricingUpdateServiceImpl.JSON_PRICE_PER_UNIT_WRAPPER, String.class)).thenReturn(STRING_VALUE); verify(jsonHelper).getKeyValue(jsonObject, Ec2OnDemandPricingUpdateServiceImpl.JSON_KEY_NAME_PRODUCTS, JSONObject.class); verify(jsonHelper).getKeyValue(products, EC2_PRODUCT_KEY, JSONObject.class); verify(jsonHelper).getKeyValue(product, Ec2OnDemandPricingUpdateServiceImpl.JSON_KEY_NAME_SKU, String.class); verify(jsonHelper).getKeyValue(product, Ec2OnDemandPricingUpdateServiceImpl.JSON_KEY_NAME_ATTRIBUTES, JSONObject.class); verify(jsonHelper).getKeyValue(jsonObject, Ec2OnDemandPricingUpdateServiceImpl.JSON_KEY_NAME_TERMS, JSONObject.class); verify(jsonHelper).getKeyValue(terms, Ec2OnDemandPricingUpdateServiceImpl.JSON_KEY_NAME_ON_DEMAND, JSONObject.class); verify(jsonHelper).getKeyValue(onDemand, SKU, JSONObject.class); verify(jsonHelper).getKeyValue(onDemandSkuInformation, SKU + Ec2OnDemandPricingUpdateServiceImpl.JSON_SKU_WRAPPER_SUFFIX, JSONObject.class); verify(jsonHelper).getKeyValue(pricingWrapper, Ec2OnDemandPricingUpdateServiceImpl.JSON_KEY_NAME_PRICE_DIMENSIONS, JSONObject.class); verify(jsonHelper).getKeyValue(priceDimensions, SKU + Ec2OnDemandPricingUpdateServiceImpl.JSON_SKU_WRAPPER_SUFFIX + Ec2OnDemandPricingUpdateServiceImpl.JSON_PRICE_DIMENSIONS_WRAPPER_SUFFIX,
@Test public void testGetKeyValue() throws Exception { // Create a JSON object with one key value pair. JSONParser jsonParser = new JSONParser(); JSONObject jsonObject = (JSONObject) jsonParser.parse(String.format("{\"%s\" : \"%s\"}", KEY, VALUE)); // Get and validate the key value. assertEquals(VALUE, jsonHelper.getKeyValue(jsonObject, KEY, String.class)); // Try to get a value for a non-existing key. try { jsonHelper.getKeyValue(jsonObject, I_DO_NOT_EXIST, String.class); fail(); } catch (IllegalArgumentException e) { assertEquals(String.format("Failed to get \"%s\" key value from JSON object.", I_DO_NOT_EXIST), e.getMessage()); } // Try to get a value that cannot be cast to the specified class type. try { jsonHelper.getKeyValue(jsonObject, KEY, BigDecimal.class); fail(); } catch (IllegalArgumentException e) { assertEquals(String.format("Failed to cast \"%s\" key value to %s.", VALUE, BigDecimal.class.getName()), e.getMessage()); } }