### Question:
ProductImpl implements Product { @Override public Price getPriceRange() { return new PriceImpl(productRetriever.fetchProduct().getPriceRange(), locale); }  @Override Boolean getFound(); @Override String getName(); @Override String getDescription(); @Override String getSku(); @Override String getCurrency(); @Override Double getPrice(); @Override Price getPriceRange(); @Override Boolean getInStock(); @Override Boolean isConfigurable(); @Override Boolean isGroupedProduct(); @Override Boolean isVirtualProduct(); @Override Boolean isBundleProduct(); @Override String getVariantsJson(); @Override List<Variant> getVariants(); @Override List<GroupItem> getGroupedProductItems(); @Override List<Asset> getAssets(); @Override String getAssetsJson(); @Override List<VariantAttribute> getVariantAttributes(); @Override Boolean loadClientPrice(); @Override String getFormattedPrice(); @Override AbstractProductRetriever getProductRetriever();  }### Answer:
@Test public void testPriceRange() { productModel = context.request().adaptTo(ProductImpl.class); Price price = productModel.getPriceRange(); Assert.assertTrue(price.isRange()); Assert.assertFalse(price.isDiscounted()); Assert.assertEquals(58.0, price.getRegularPrice(), 0.001); Assert.assertEquals(58.0, price.getFinalPrice(), 0.001); Assert.assertEquals(62.0, price.getRegularPriceMax(), 0.001); Assert.assertEquals(62.0, price.getFinalPriceMax(), 0.001); }