killbill-aplcache

entitlement: add test for TimedPhase Signed-off-by: Pierre-Alexandre

6/27/2012 4:33:06 PM

Details

diff --git a/entitlement/pom.xml b/entitlement/pom.xml
index 2daff47..494ea9e 100644
--- a/entitlement/pom.xml
+++ b/entitlement/pom.xml
@@ -87,6 +87,11 @@
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>org.mockito</groupId>
+            <artifactId>mockito-all</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>org.testng</groupId>
             <artifactId>testng</artifactId>
             <scope>test</scope>
diff --git a/entitlement/src/main/java/com/ning/billing/entitlement/alignment/TimedPhase.java b/entitlement/src/main/java/com/ning/billing/entitlement/alignment/TimedPhase.java
index 1b90678..d79e940 100644
--- a/entitlement/src/main/java/com/ning/billing/entitlement/alignment/TimedPhase.java
+++ b/entitlement/src/main/java/com/ning/billing/entitlement/alignment/TimedPhase.java
@@ -36,5 +36,43 @@ public final class TimedPhase {
     public DateTime getStartPhase() {
         return startPhase;
     }
+
+    @Override
+    public String toString() {
+        final StringBuilder sb = new StringBuilder();
+        sb.append("TimedPhase");
+        sb.append("{phase=").append(phase);
+        sb.append(", startPhase=").append(startPhase);
+        sb.append('}');
+        return sb.toString();
+    }
+
+    @Override
+    public boolean equals(final Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass()) {
+            return false;
+        }
+
+        final TimedPhase phase1 = (TimedPhase) o;
+
+        if (phase != null ? !phase.equals(phase1.phase) : phase1.phase != null) {
+            return false;
+        }
+        if (startPhase != null ? !startPhase.equals(phase1.startPhase) : phase1.startPhase != null) {
+            return false;
+        }
+
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        int result = phase != null ? phase.hashCode() : 0;
+        result = 31 * result + (startPhase != null ? startPhase.hashCode() : 0);
+        return result;
+    }
 }
 
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/alignment/TestTimedPhase.java b/entitlement/src/test/java/com/ning/billing/entitlement/alignment/TestTimedPhase.java
new file mode 100644
index 0000000..75831fa
--- /dev/null
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/alignment/TestTimedPhase.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2010-2012 Ning, Inc.
+ *
+ * Ning licenses this file to you under the Apache License, version 2.0
+ * (the "License"); you may not use this file except in compliance with the
+ * License.  You may obtain a copy of the License at:
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ */
+
+package com.ning.billing.entitlement.alignment;
+
+import org.joda.time.DateTime;
+import org.joda.time.DateTimeZone;
+import org.mockito.Mockito;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+import com.ning.billing.catalog.api.PlanPhase;
+
+public class TestTimedPhase {
+    @Test(groups = "fast")
+    public void testConstructor() throws Exception {
+        final PlanPhase planPhase = Mockito.mock(PlanPhase.class);
+        final DateTime startPhase = new DateTime(DateTimeZone.UTC);
+        final TimedPhase timedPhase = new TimedPhase(planPhase, startPhase);
+        final TimedPhase otherTimedPhase = new TimedPhase(planPhase, startPhase);
+
+        Assert.assertEquals(otherTimedPhase, timedPhase);
+        Assert.assertEquals(timedPhase.getPhase(), planPhase);
+        Assert.assertEquals(timedPhase.getStartPhase(), startPhase);
+    }
+}