Updated Branches:
  refs/heads/master e11e713e8 -> 838278964

fixing drools test case as it tests the minimum rule


Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/83827896
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/83827896
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/83827896

Branch: refs/heads/master
Commit: 838278964be63e6b2fd8d00b82b663aed8834545
Parents: e11e713
Author: Nirmal Fernando <[email protected]>
Authored: Mon Dec 16 12:06:48 2013 +0530
Committer: Nirmal Fernando <[email protected]>
Committed: Mon Dec 16 12:06:57 2013 +0530

----------------------------------------------------------------------
 .../stratos/autoscaler/PartitionContext.java    |  4 ++
 .../stratos/autoscaler/TestDelegator.java       | 20 +++++++++
 .../stratos/autoscaler/TestKnowledgeBase.java   | 37 ++++++----------
 .../resources/test-minimum-autoscaler-rule.drl  | 44 ++++++++++++++++----
 4 files changed, 73 insertions(+), 32 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/83827896/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/PartitionContext.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/PartitionContext.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/PartitionContext.java
index a4c1b68..96dc2bd 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/PartitionContext.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/PartitionContext.java
@@ -70,6 +70,10 @@ public class PartitionContext implements Serializable{
 
     private Map<String, MemberStatsContext> memberStatsContexts;
     
+    // for the use of tests
+    public PartitionContext() {
+    }
+    
     public PartitionContext(Partition partition) {
         this.setPartition(partition);
         this.minimumMemberCount = partition.getPartitionMin();

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/83827896/components/org.apache.stratos.autoscaler/src/test/java/org/apache/stratos/autoscaler/TestDelegator.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/test/java/org/apache/stratos/autoscaler/TestDelegator.java
 
b/components/org.apache.stratos.autoscaler/src/test/java/org/apache/stratos/autoscaler/TestDelegator.java
new file mode 100644
index 0000000..7bf37d5
--- /dev/null
+++ 
b/components/org.apache.stratos.autoscaler/src/test/java/org/apache/stratos/autoscaler/TestDelegator.java
@@ -0,0 +1,20 @@
+package org.apache.stratos.autoscaler;
+
+/**
+ * Helper class to keep the state of the consequence of a rule.
+ * @author nirmal
+ *
+ */
+public class TestDelegator {
+    private static boolean isDelegated;
+
+    public static boolean isDelegated() {
+        return isDelegated;
+    }
+
+    public static void setDelegated(boolean isDelegated) {
+        TestDelegator.isDelegated = isDelegated;
+    }
+
+    
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/83827896/components/org.apache.stratos.autoscaler/src/test/java/org/apache/stratos/autoscaler/TestKnowledgeBase.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/test/java/org/apache/stratos/autoscaler/TestKnowledgeBase.java
 
b/components/org.apache.stratos.autoscaler/src/test/java/org/apache/stratos/autoscaler/TestKnowledgeBase.java
index c4fd401..5c4f959 100644
--- 
a/components/org.apache.stratos.autoscaler/src/test/java/org/apache/stratos/autoscaler/TestKnowledgeBase.java
+++ 
b/components/org.apache.stratos.autoscaler/src/test/java/org/apache/stratos/autoscaler/TestKnowledgeBase.java
@@ -19,18 +19,18 @@
 
 package org.apache.stratos.autoscaler;
 
-import java.util.ArrayList;
-import java.util.List;
+import static org.junit.Assert.*;
 
+import java.util.ArrayList;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.cloud.controller.pojo.MemberContext;
 import org.drools.KnowledgeBase;
 import org.drools.KnowledgeBaseFactory;
 import org.drools.builder.*;
 import org.drools.io.Resource;
 import org.drools.io.ResourceFactory;
 import org.drools.runtime.StatefulKnowledgeSession;
-import org.drools.runtime.StatelessKnowledgeSession;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -39,7 +39,6 @@ public class TestKnowledgeBase {
     private String droolsFilePath = 
"src/test/resources/test-minimum-autoscaler-rule.drl";
     private KnowledgeBase kbase;
     private StatefulKnowledgeSession ksession;
-    private StatelessKnowledgeSession ksession1;
 
     @Before
     public void setUp() {
@@ -68,35 +67,25 @@ public class TestKnowledgeBase {
             throw new IllegalArgumentException("Knowledge base is null.");
         }
         
-//        ksession1 = kbase.newStatelessKnowledgeSession();
+        assertEquals(false, TestDelegator.isDelegated());
+        
         ksession = kbase.newStatefulKnowledgeSession();
-        List<String> p = new ArrayList<String>();
-        p.add("aa");
-        p.add("bb");
-//        p.setId("pp");
-//        ksession.setGlobal("pa", p);
-//        ksession.setGlobal("log", log);
-//        ksession.setGlobal("$manager", PolicyManager.getInstance());
-//        ksession.setGlobal("$topology", TopologyManager.getTopology());
-//        ksession.setGlobal("$evaluator", this);
-//        ksession1.execute(p);
-//        FactHandle handle = ksession.insert(p);
+        ksession.setGlobal("clusterId", "lb.cluster.1");
+        ksession.setGlobal("lbRef", null);
+        PartitionContext p = new PartitionContext();
+        p.setPendingMembers(new ArrayList<MemberContext>());
+        p.setMinimumMemberCount(1);
         ksession.insert(p);
         ksession.fireAllRules();
-//        p = new Partition();
-//        p.setId("3");
-//        ksession.update(handle, p);
-//        ksession.fireAllRules();
+
         try {
             Thread.sleep(3000);
         } catch (InterruptedException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-//        System.err.println(p.getId());
-//        ksession1.execute(p);
-//        ksession.insert(p);
-//        ksession.execute(p);
+        
+        assertEquals(true, TestDelegator.isDelegated());
         
     }
     

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/83827896/components/org.apache.stratos.autoscaler/src/test/resources/test-minimum-autoscaler-rule.drl
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/test/resources/test-minimum-autoscaler-rule.drl
 
b/components/org.apache.stratos.autoscaler/src/test/resources/test-minimum-autoscaler-rule.drl
index a5c2fb1..faaf142 100644
--- 
a/components/org.apache.stratos.autoscaler/src/test/resources/test-minimum-autoscaler-rule.drl
+++ 
b/components/org.apache.stratos.autoscaler/src/test/resources/test-minimum-autoscaler-rule.drl
@@ -19,17 +19,45 @@
 
 package org.apache.stratos.autoscaler.rule;
 
-import function org.apache.stratos.autoscaler.TestKnowledgeBase.get;
+import org.apache.stratos.messaging.domain.topology.Service;
+import org.apache.stratos.messaging.domain.topology.Cluster;
+import org.apache.stratos.autoscaler.AutoscalerContext;
+import org.apache.stratos.autoscaler.Constants;
+import org.apache.stratos.autoscaler.policy.PolicyManager;
+import org.apache.stratos.autoscaler.policy.model.AutoscalePolicy;
+import org.apache.stratos.autoscaler.policy.model.RequestsInFlight;
+import org.apache.stratos.autoscaler.policy.model.LoadThresholds;
+import 
org.apache.stratos.autoscaler.client.cloud.controller.CloudControllerClient;
+import org.apache.stratos.autoscaler.algorithm.AutoscaleAlgorithm;
+import org.apache.stratos.autoscaler.algorithm.OneAfterAnother;
+import org.apache.stratos.autoscaler.algorithm.RoundRobin;
+import org.apache.stratos.autoscaler.PartitionContext;
+import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
+import org.apache.stratos.autoscaler.rule.AutoscalerRuleEvaluator;
+import org.apache.commons.logging.Log;
+import org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy;
+import org.apache.stratos.autoscaler.partition.PartitionGroup;
+import org.apache.stratos.cloud.controller.deployment.partition.Partition;
+import org.apache.stratos.cloud.controller.pojo.MemberContext;
 
 
+global org.apache.stratos.autoscaler.policy.PolicyManager $manager;
+global org.apache.stratos.autoscaler.AutoscalerContext $context; 
+global org.apache.commons.logging.Log log;
+global org.apache.stratos.messaging.domain.topology.Topology $topology;
+global java.util.Map partitionCtxts;
+global java.lang.String clusterId;
+global java.lang.String lbRef;
+
+import function org.apache.stratos.autoscaler.TestDelegator.setDelegated;
+
 rule "Minimum Rule"
 dialect "mvel"
        when
-                  eval(true)
+              $ctxt : PartitionContext ()
+              eval($ctxt.getCurrentMemberCount() < 
$ctxt.getMinimumMemberCount())
 
-      then
-               p = get();
-               if(p != null) {
-                       System.out.println(p+ "SSsSS");        
-                       }
-end
\ No newline at end of file
+       then
+              setDelegated(true);
+              
+end

Reply via email to