killbill-aplcache

Adding currency to TieredBlockPriceOverride to make sure

12/16/2016 2:04:23 PM

Details

diff --git a/catalog/src/main/java/org/killbill/billing/catalog/caching/EhCacheOverriddenPlanCache.java b/catalog/src/main/java/org/killbill/billing/catalog/caching/EhCacheOverriddenPlanCache.java
index cfe56a9..6350016 100644
--- a/catalog/src/main/java/org/killbill/billing/catalog/caching/EhCacheOverriddenPlanCache.java
+++ b/catalog/src/main/java/org/killbill/billing/catalog/caching/EhCacheOverriddenPlanCache.java
@@ -211,7 +211,7 @@ public class EhCacheOverriddenPlanCache implements OverriddenPlanCache {
             }).orNull();
 
             if(overriddenTierBlock != null) {
-                blockPriceOverrides.add(new DefaultTieredBlockPriceOverride(overriddenTierBlock.getParentUnitName(), overriddenTierBlock.getSize(), overriddenTierBlock.getPrice(), overriddenTierBlock.getMax()));
+                blockPriceOverrides.add(new DefaultTieredBlockPriceOverride(overriddenTierBlock.getParentUnitName(), overriddenTierBlock.getSize(), overriddenTierBlock.getPrice(), Currency.valueOf(overriddenTierBlock.getCurrency()), overriddenTierBlock.getMax()));
             }
         }
         return blockPriceOverrides;
diff --git a/catalog/src/main/java/org/killbill/billing/catalog/DefaultBlockPriceOverride.java b/catalog/src/main/java/org/killbill/billing/catalog/DefaultBlockPriceOverride.java
index e33faf2..bcb66b9 100644
--- a/catalog/src/main/java/org/killbill/billing/catalog/DefaultBlockPriceOverride.java
+++ b/catalog/src/main/java/org/killbill/billing/catalog/DefaultBlockPriceOverride.java
@@ -20,6 +20,7 @@ package org.killbill.billing.catalog;
 import java.math.BigDecimal;
 
 import org.killbill.billing.catalog.api.BlockPriceOverride;
+import org.killbill.billing.catalog.api.Currency;
 
 public class DefaultBlockPriceOverride implements BlockPriceOverride {
 
@@ -29,6 +30,8 @@ public class DefaultBlockPriceOverride implements BlockPriceOverride {
 
     private BigDecimal price;
 
+    private Currency currency;
+
     @Override
     public String getUnitName() {
         return unitName;
@@ -44,9 +47,15 @@ public class DefaultBlockPriceOverride implements BlockPriceOverride {
         return price;
     }
 
-    public DefaultBlockPriceOverride( String unitName, Double size, BigDecimal price) {
+    @Override
+    public Currency getCurrency() {
+        return currency;
+    }
+
+    public DefaultBlockPriceOverride( String unitName, Double size, BigDecimal price, Currency currency) {
         this.unitName = unitName;
         this.size = size;
         this.price = price;
+        this.currency = currency;
     }
 }
diff --git a/catalog/src/main/java/org/killbill/billing/catalog/DefaultTieredBlockPriceOverride.java b/catalog/src/main/java/org/killbill/billing/catalog/DefaultTieredBlockPriceOverride.java
index 2f58425..9663440 100644
--- a/catalog/src/main/java/org/killbill/billing/catalog/DefaultTieredBlockPriceOverride.java
+++ b/catalog/src/main/java/org/killbill/billing/catalog/DefaultTieredBlockPriceOverride.java
@@ -19,6 +19,7 @@ package org.killbill.billing.catalog;
 
 import java.math.BigDecimal;
 
+import org.killbill.billing.catalog.api.Currency;
 import org.killbill.billing.catalog.api.TieredBlockPriceOverride;
 
 public class DefaultTieredBlockPriceOverride extends DefaultBlockPriceOverride implements TieredBlockPriceOverride {
@@ -30,9 +31,8 @@ public class DefaultTieredBlockPriceOverride extends DefaultBlockPriceOverride i
         return max;
     }
 
-    public DefaultTieredBlockPriceOverride(String unitName, Double size, BigDecimal price, Double max) {
-        super(unitName, size, price);
+    public DefaultTieredBlockPriceOverride(String unitName, Double size, BigDecimal price, Currency currency, Double max) {
+        super(unitName, size, price, currency);
         this.max = max;
     }
-
 }
diff --git a/catalog/src/main/java/org/killbill/billing/catalog/override/DefaultPriceOverride.java b/catalog/src/main/java/org/killbill/billing/catalog/override/DefaultPriceOverride.java
index 2e8b0ee..225cf7c 100644
--- a/catalog/src/main/java/org/killbill/billing/catalog/override/DefaultPriceOverride.java
+++ b/catalog/src/main/java/org/killbill/billing/catalog/override/DefaultPriceOverride.java
@@ -211,7 +211,7 @@ public class DefaultPriceOverride implements PriceOverride {
             }).orNull();
 
             if(curOverride != null) {
-                resolvedTieredBlockPriceOverrides.add(new DefaultTieredBlockPriceOverride(curTieredBlock.getUnit().getName(), curOverride.getSize(), curOverride.getPrice(), curOverride.getMax())) ;
+                resolvedTieredBlockPriceOverrides.add(new DefaultTieredBlockPriceOverride(curTieredBlock.getUnit().getName(), curOverride.getSize(), curOverride.getPrice(), curOverride.getCurrency(), curOverride.getMax())) ;
             }
             else {
                 resolvedTieredBlockPriceOverrides.add(null);
diff --git a/catalog/src/test/java/org/killbill/billing/catalog/dao/TestCatalogOverrideDao.java b/catalog/src/test/java/org/killbill/billing/catalog/dao/TestCatalogOverrideDao.java
index 89a160f..d202118 100644
--- a/catalog/src/test/java/org/killbill/billing/catalog/dao/TestCatalogOverrideDao.java
+++ b/catalog/src/test/java/org/killbill/billing/catalog/dao/TestCatalogOverrideDao.java
@@ -111,7 +111,7 @@ public class TestCatalogOverrideDao extends CatalogTestSuiteWithEmbeddedDB {
         final PlanPhasePriceOverride[] resolvedOverrides = new PlanPhasePriceOverride[plan.getAllPhases().length];
 
         List<TieredBlockPriceOverride> tieredBlockPriceOverrides = new ArrayList<TieredBlockPriceOverride>();
-        DefaultTieredBlockPriceOverride tieredBlockPriceOverride = new DefaultTieredBlockPriceOverride("gallons",new Double("1"), new BigDecimal(4), new Double("100"));
+        DefaultTieredBlockPriceOverride tieredBlockPriceOverride = new DefaultTieredBlockPriceOverride("gallons", new Double("1"), new BigDecimal(4), Currency.USD, new Double("100"));
         tieredBlockPriceOverrides.add(tieredBlockPriceOverride);
 
         List<TierPriceOverride> tierPriceOverrides = new ArrayList<TierPriceOverride>();
@@ -122,6 +122,7 @@ public class TestCatalogOverrideDao extends CatalogTestSuiteWithEmbeddedDB {
         DefaultUsagePriceOverride usagePriceOverride = new DefaultUsagePriceOverride("gas-monthly-in-arrear", UsageType.CONSUMABLE, tierPriceOverrides);
         usagePriceOverrides.add(usagePriceOverride);
 
+       //Override the gallons price from $3.95 to $4 and also the recurring price from  $0 to $348.64
         resolvedOverrides[0]  = new DefaultPlanPhasePriceOverride(plan.getFinalPhase().getName(), Currency.USD, BigDecimal.ZERO, new BigDecimal("348.64"), usagePriceOverrides);
 
         final CatalogOverridePlanDefinitionModelDao newPlan = catalogOverrideDao.getOrCreateOverridePlanDefinition(plan, new DateTime(catalog.getEffectiveDate()), resolvedOverrides, internalCallContext);
diff --git a/catalog/src/test/java/org/killbill/billing/catalog/dao/TestCatalogOverrideUsageTierSqlDao.java b/catalog/src/test/java/org/killbill/billing/catalog/dao/TestCatalogOverrideUsageTierSqlDao.java
index 4d3e128..a97e0a8 100644
--- a/catalog/src/test/java/org/killbill/billing/catalog/dao/TestCatalogOverrideUsageTierSqlDao.java
+++ b/catalog/src/test/java/org/killbill/billing/catalog/dao/TestCatalogOverrideUsageTierSqlDao.java
@@ -28,8 +28,6 @@ import org.skife.jdbi.v2.TransactionStatus;
 import org.testng.annotations.BeforeClass;
 import org.testng.annotations.Test;
 
-
-
 import static org.testng.Assert.assertEquals;
 
 public class TestCatalogOverrideUsageTierSqlDao extends CatalogTestSuiteWithEmbeddedDB {
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/PhasePriceOverrideJson.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/PhasePriceOverrideJson.java
index 379536e..037ab58 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/PhasePriceOverrideJson.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/PhasePriceOverrideJson.java
@@ -189,7 +189,7 @@ public class PhasePriceOverrideJson {
                         for (final TierPriceOverrideJson tierPriceOverrideJson : usageOverrideJson.getTierPriceOverrides()) {
                             List<TieredBlockPriceOverride> blockPriceOverrides = new LinkedList<TieredBlockPriceOverride>();
                             for (final BlockPriceOverrideJson block : tierPriceOverrideJson.getBlockPriceOverrides()) {
-                                DefaultTieredBlockPriceOverride tieredBlockPriceOverride = new DefaultTieredBlockPriceOverride( block.getUnitName(), block.getSize(), block.getPrice(), block.getMax());
+                                DefaultTieredBlockPriceOverride tieredBlockPriceOverride = new DefaultTieredBlockPriceOverride( block.getUnitName(), block.getSize(), block.getPrice(),currency, block.getMax());
                                 blockPriceOverrides.add(tieredBlockPriceOverride);
                             }
                             DefaultTierPriceOverride tierPriceOverride = new DefaultTierPriceOverride(blockPriceOverrides);