Rename Configurator to Aquarium
[aquarium] / src / test / scala / gr / grnet / aquarium / user / UserStateComputationsTest.scala
index 2edbf14..c602707 100644 (file)
@@ -39,13 +39,17 @@ import gr.grnet.aquarium.store.memory.MemStore
 import gr.grnet.aquarium.util.date.MutableDateCalc
 import gr.grnet.aquarium.logic.accounting.dsl._
 import gr.grnet.aquarium.logic.accounting.{Policy, Accounting}
-import gr.grnet.aquarium.util.{Loggable, ContextualLogger, justForSure}
+import gr.grnet.aquarium.util.{Loggable, ContextualLogger}
 import gr.grnet.aquarium.simulation._
 import gr.grnet.aquarium.uid.{UIDGenerator, ConcurrentVMLocalUIDGenerator}
-import com.ckkloverdos.maybe.{Maybe, Just, NoVal}
+import com.ckkloverdos.maybe.{Maybe, Just}
 import org.junit.{Assert, Ignore, Test}
-import gr.grnet.aquarium.logic.accounting.algorithm.{ExecutableCostPolicyAlgorithm, CostPolicyAlgorithmCompiler, SimpleCostPolicyAlgorithmCompiler}
-import gr.grnet.aquarium.{AquariumException, Configurator}
+import gr.grnet.aquarium.logic.accounting.algorithm.{ExecutableCostPolicyAlgorithm, CostPolicyAlgorithmCompiler}
+import gr.grnet.aquarium.{AquariumException}
+import gr.grnet.aquarium.Aquarium.{Instance ⇒ AquariumInstance}
+import gr.grnet.aquarium.computation.{UserState, BillingMonthInfo, UserStateComputations}
+import gr.grnet.aquarium.computation.reason.MonthlyBillingCalculation
+import org.apache.ivy.util.Configurator
 
 
 /**
@@ -149,7 +153,7 @@ aquariumpolicy:
     @inline private[this]
     def hrs(millis: Double) = millis / 1000 / 60 / 60
 
-    def apply(vars: Map[DSLCostPolicyVar, Any]): Maybe[Double] = Maybe {
+    def apply(vars: Map[DSLCostPolicyVar, Any]): Double = {
       vars.apply(DSLCostPolicyNameVar) match {
         case DSLCostPolicyNames.continuous ⇒
           val unitPrice = vars(DSLUnitPriceVar).asInstanceOf[Double]
@@ -194,8 +198,8 @@ aquariumpolicy:
   }
 
   val DefaultCompiler  = new CostPolicyAlgorithmCompiler {
-    def compile(definition: String): Maybe[ExecutableCostPolicyAlgorithm] = {
-      Just(DefaultAlgorithm)
+    def compile(definition: String): ExecutableCostPolicyAlgorithm = {
+      DefaultAlgorithm
     }
   }
   //val DefaultAlgorithm = justForSure(DefaultCompiler.compile("")).get // hardcoded since we know exactly what this is
@@ -213,9 +217,9 @@ aquariumpolicy:
   val Synnefo = ClientSim("synnefo")(TheUIDGenerator)
   val Pithos  = ClientSim("pithos" )(TheUIDGenerator)
 
-  val mc = Configurator.MasterConfigurator.withStoreProviderClass(classOf[MemStore])
-  Policy.withConfigurator(mc)
-  val StoreProvider = mc.storeProvider
+  val aquarium = AquariumInstance.withStoreProviderClass(classOf[MemStore])
+  Policy.withConfigurator(aquarium)
+  val StoreProvider = aquarium.storeProvider
   val ResourceEventStore = StoreProvider.resourceEventStore
 
   val StartOfBillingYearDateCalc = new MutableDateCalc(2012,  1, 1)
@@ -240,7 +244,7 @@ aquariumpolicy:
 
   val UserCKKL  = Aquarium.newUser("CKKL", UserCreationDate)
 
-  val InitialUserState = Computations.createInitialUserState(
+  val InitialUserState = UserState.createInitialUserState(
     userID = UserCKKL.userId,
     userCreationMillis = UserCreationDate.getTime,
     isActive = true,
@@ -299,7 +303,7 @@ aquariumpolicy:
       DefaultAccounting,
       DefaultCompiler,
       MonthlyBillingCalculation(billingMonthInfo),
-      Just(clog)
+      Some(clog)
     )
   }
   
@@ -333,7 +337,7 @@ aquariumpolicy:
   @Ignore
   @Test
   def testFullOnOff: Unit = {
-    val clog = ContextualLogger.fromOther(NoVal, logger, "testFullOnOff()")
+    val clog = ContextualLogger.fromOther(None, logger, "testFullOnOff()")
     clog.begin()
 
     ResourceEventStore.clearResourceEvents()
@@ -349,9 +353,8 @@ aquariumpolicy:
 
     showResourceEvents(clog)
 
-    val userStateM = doFullMonthlyBilling(clog, BillingMonthInfoJan)
-    val userState = justUserState(userStateM)
-    
+    val userState = doFullMonthlyBilling(clog, BillingMonthInfoJan)
+
     showUserState(clog, userState)
 
     expectCredits(clog, credits, userState)
@@ -362,7 +365,7 @@ aquariumpolicy:
   @Ignore
   @Test
   def testLonelyON: Unit = {
-    val clog = ContextualLogger.fromOther(NoVal, logger, "testLonelyON()")
+    val clog = ContextualLogger.fromOther(None, logger, "testLonelyON()")
     clog.begin()
 
     ResourceEventStore.clearResourceEvents()
@@ -379,8 +382,7 @@ aquariumpolicy:
 
     showResourceEvents(clog)
 
-    val userStateM = doFullMonthlyBilling(clog, BillingMonthInfoJan)
-    val userState = justUserState(userStateM)
+    val userState = doFullMonthlyBilling(clog, BillingMonthInfoJan)
 
     showUserState(clog, userState)
 
@@ -392,7 +394,7 @@ aquariumpolicy:
 //  @Ignore
   @Test
   def testOrphanOFF: Unit = {
-    val clog = ContextualLogger.fromOther(NoVal, logger, "testOrphanOFF()")
+    val clog = ContextualLogger.fromOther(None, logger, "testOrphanOFF()")
     clog.begin()
 
     ResourceEventStore.clearResourceEvents()
@@ -410,8 +412,7 @@ aquariumpolicy:
 
     showResourceEvents(clog)
 
-    val userStateM = doFullMonthlyBilling(clog, BillingMonthInfoJan)
-    val userState = justUserState(userStateM)
+    val userState = doFullMonthlyBilling(clog, BillingMonthInfoJan)
 
     showUserState(clog, userState)
 
@@ -423,7 +424,7 @@ aquariumpolicy:
   @Ignore
   @Test
   def testOne: Unit = {
-    val clog = ContextualLogger.fromOther(NoVal, logger, "testOne()")
+    val clog = ContextualLogger.fromOther(None, logger, "testOne()")
     clog.begin()
 
     // Let's create our dates of interest
@@ -462,8 +463,8 @@ aquariumpolicy:
 
     clog.debugMap("DefaultResourcesMap", DefaultResourcesMap.map, 1)
 
-    val userStateM = doFullMonthlyBilling(clog, BillingMonthInfoJan)
-    val userState = justUserState(userStateM)
+    val userState = doFullMonthlyBilling(clog, BillingMonthInfoJan)
+
     showUserState(clog, userState)
 
     clog.end()