You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by is...@apache.org on 2014/10/12 13:34:53 UTC
git commit: adding simple tests for application parsing. not complet
yet
Repository: stratos
Updated Branches:
refs/heads/4.0.0-grouping 3560f07bc -> 8db918085
adding simple tests for application parsing. not complet yet
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/8db91808
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/8db91808
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/8db91808
Branch: refs/heads/4.0.0-grouping
Commit: 8db9180853b464eeae124814588b295a0e49e8cc
Parents: 3560f07
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Sun Oct 12 17:04:12 2014 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Sun Oct 12 17:04:32 2014 +0530
----------------------------------------------------------------------
.../CompositeApplicationParseTest.java | 144 +++++++++++++++++++
1 file changed, 144 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/8db91808/components/org.apache.stratos.cloud.controller/src/test/java/org/apache/stratos/cloud/controller/application/CompositeApplicationParseTest.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/test/java/org/apache/stratos/cloud/controller/application/CompositeApplicationParseTest.java b/components/org.apache.stratos.cloud.controller/src/test/java/org/apache/stratos/cloud/controller/application/CompositeApplicationParseTest.java
new file mode 100644
index 0000000..c2b76af
--- /dev/null
+++ b/components/org.apache.stratos.cloud.controller/src/test/java/org/apache/stratos/cloud/controller/application/CompositeApplicationParseTest.java
@@ -0,0 +1,144 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF 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 org.apache.stratos.cloud.controller.application;
+
+import org.apache.stratos.cloud.controller.application.parser.DefaultApplicationParser;
+import org.apache.stratos.cloud.controller.exception.ApplicationDefinitionException;
+import org.apache.stratos.cloud.controller.interfaces.ApplicationParser;
+import org.apache.stratos.cloud.controller.pojo.Cartridge;
+import org.apache.stratos.cloud.controller.pojo.Dependencies;
+import org.apache.stratos.cloud.controller.pojo.ServiceGroup;
+import org.apache.stratos.cloud.controller.pojo.application.ApplicationContext;
+import org.apache.stratos.cloud.controller.pojo.application.ComponentContext;
+import org.apache.stratos.cloud.controller.pojo.application.SubscribableContext;
+import org.apache.stratos.cloud.controller.pojo.application.SubscribableInfoContext;
+import org.apache.stratos.cloud.controller.runtime.FasterLookUpDataHolder;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+public class CompositeApplicationParseTest {
+
+ private static FasterLookUpDataHolder dataHolder = null;
+
+ @BeforeClass
+ public static void setUpBeforeClass() {
+
+ dataHolder = FasterLookUpDataHolder.getInstance();
+ // add cartridges
+ // add php cartridge
+ dataHolder.addCartridge(new Cartridge("php", "stratos.com", "php-provider" , "1.0.0", false));
+ // add tomcat cartridge
+ dataHolder.addCartridge(new Cartridge("tomcat", "stratos.com", "apache" , "1.0.0", false));
+ // add mysql cartridge
+ dataHolder.addCartridge(new Cartridge("mysql", "stratos.com", "apache" , "1.0.0", false));
+
+ // add groups
+ // add group1
+ ServiceGroup group1 = new ServiceGroup();
+ group1.setName("group1");
+ group1.setCartridges(new String[]{"mysql"});
+ Dependencies group1Dependencies = new Dependencies();
+ group1Dependencies.setKillBehaviour("kill-none");
+ group1.setDependencies(group1Dependencies);
+ dataHolder.addServiceGroup(group1);
+ // add group2
+ ServiceGroup group2 = new ServiceGroup();
+ group2.setName("group2");
+ group2.setCartridges(new String[]{"php"});
+ group2.setSubGroups(new String[]{"group1"});
+ Dependencies group2Dependencies = new Dependencies();
+ group2Dependencies.setStartupOrders(new String[]{"group.group1,cartridge.php"});
+ group2Dependencies.setKillBehaviour("kill-dependents");
+ group2.setDependencies(group2Dependencies);
+ dataHolder.addServiceGroup(group2);
+ }
+
+ @Test
+ public void testParseSimpleApplication () throws ApplicationDefinitionException {
+
+ ApplicationParser applicationParser = new DefaultApplicationParser();
+ ApplicationContext simpleAppCtxt = new ApplicationContext();
+ // app id
+ simpleAppCtxt.setApplicationId("simpleApp");
+ simpleAppCtxt.setAlias("simpleAppAlias");
+ // tenant info
+ simpleAppCtxt.setTenantId(-1234);
+ // components
+ ComponentContext simpleAppComponentCtxt = new ComponentContext();
+ SubscribableContext simpleAppSubscribableContext = new SubscribableContext();
+ simpleAppSubscribableContext.setType("php");
+ simpleAppSubscribableContext.setAlias("myphp");
+ simpleAppComponentCtxt.setSubscribableContexts(new SubscribableContext[]{simpleAppSubscribableContext});
+ simpleAppCtxt.setComponents(simpleAppComponentCtxt);
+ // subscribable information
+ SubscribableInfoContext simpleAppSubscribableInfoCtxt = new SubscribableInfoContext();
+ simpleAppSubscribableInfoCtxt.setAlias("myphp");
+ simpleAppSubscribableInfoCtxt.setAutoscalingPolicy("deployment_policy_1");
+ simpleAppSubscribableInfoCtxt.setAutoscalingPolicy("autoscale_policy_1");
+ simpleAppSubscribableInfoCtxt.setRepoUrl("www.mygit.com/myphp.git");
+ simpleAppSubscribableInfoCtxt.setPrivateRepo(true);
+ simpleAppSubscribableInfoCtxt.setRepoUsername("admin");
+ simpleAppSubscribableInfoCtxt.setRepoUrl("admin123");
+ simpleAppCtxt.setSubscribableInfoContext(new SubscribableInfoContext[]{simpleAppSubscribableInfoCtxt});
+
+ // parse
+ applicationParser.parse(simpleAppCtxt);
+ }
+
+ @Test(expected = ApplicationDefinitionException.class)
+ public void testParseSimpleInvalidCartridgeApplication() throws ApplicationDefinitionException {
+
+ ApplicationParser applicationParser = new DefaultApplicationParser();
+ ApplicationContext simpleAppCtxt = new ApplicationContext();
+ // app id
+ simpleAppCtxt.setApplicationId("simpleInvalidApp");
+ simpleAppCtxt.setAlias("simpleInvalidAppAlias");
+ // tenant info
+ simpleAppCtxt.setTenantId(-1234);
+ // components
+ ComponentContext simpleAppComponentCtxt = new ComponentContext();
+ SubscribableContext simpleAppSubscribableContext = new SubscribableContext();
+ // give invalid cartridge type
+ simpleAppSubscribableContext.setType("php1");
+ simpleAppSubscribableContext.setAlias("myphp");
+ simpleAppComponentCtxt.setSubscribableContexts(new SubscribableContext[]{simpleAppSubscribableContext});
+ simpleAppCtxt.setComponents(simpleAppComponentCtxt);
+ // subscribable information
+ SubscribableInfoContext simpleAppSubscribableInfoCtxt = new SubscribableInfoContext();
+ simpleAppSubscribableInfoCtxt.setAlias("myphp");
+ simpleAppSubscribableInfoCtxt.setAutoscalingPolicy("deployment_policy_1");
+ simpleAppSubscribableInfoCtxt.setAutoscalingPolicy("autoscale_policy_1");
+ simpleAppSubscribableInfoCtxt.setRepoUrl("www.mygit.com/myphp.git");
+ simpleAppSubscribableInfoCtxt.setPrivateRepo(true);
+ simpleAppSubscribableInfoCtxt.setRepoUsername("admin");
+ simpleAppSubscribableInfoCtxt.setRepoUrl("admin123");
+ simpleAppCtxt.setSubscribableInfoContext(new SubscribableInfoContext[]{simpleAppSubscribableInfoCtxt});
+
+ // parse
+ applicationParser.parse(simpleAppCtxt);
+ }
+
+ @AfterClass
+ public static void tearDownAfterClass() {
+
+ dataHolder = null;
+ }
+}