You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ni...@apache.org on 2014/05/07 22:49:06 UTC

[3/5] git commit: implementing the mock REST API test cases for the domain mapping implementation

implementing the mock REST API test cases for the domain mapping implementation


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

Branch: refs/heads/master
Commit: acdb17bffc67bf4bb6c97c72892b41de824a9625
Parents: 34d4205
Author: Nirmal Fernando <ni...@apache.org>
Authored: Thu May 8 02:16:45 2014 +0530
Committer: Nirmal Fernando <ni...@apache.org>
Committed: Thu May 8 02:16:45 2014 +0530

----------------------------------------------------------------------
 .../stratos/rest/endpoint/mock/MockContext.java | 82 ++++++++++++++++++++
 .../rest/endpoint/mock/StratosTestAdmin.java    | 45 ++++++++++-
 2 files changed, 126 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/acdb17bf/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/MockContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/MockContext.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/MockContext.java
index ec58da7..5cadb9a 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/MockContext.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/MockContext.java
@@ -29,13 +29,18 @@ import org.apache.stratos.rest.endpoint.bean.autoscaler.policy.autoscale.Autosca
 import org.apache.stratos.rest.endpoint.bean.autoscaler.policy.deployment.DeploymentPolicy;
 import org.apache.stratos.rest.endpoint.bean.cartridge.definition.CartridgeDefinitionBean;
 import org.apache.stratos.rest.endpoint.bean.cartridge.definition.ServiceDefinitionBean;
+import org.apache.stratos.rest.endpoint.bean.subscription.domain.SubscriptionDomain;
 import org.apache.stratos.rest.endpoint.bean.topology.Cluster;
 import org.apache.stratos.rest.endpoint.exception.RestAPIException;
 
 import java.util.*;
 
+import javax.ws.rs.core.Response.Status;
+
 public class MockContext {
     private static MockContext mockContext = new MockContext(); // singleton
+    private Map<String, List<SubscriptionDomain>> subscriptionAliasToDomainMap = new HashMap<String, List<SubscriptionDomain>>();
+    private Map<Integer, List<String>> tenantIdToAliasesMap = new HashMap<Integer, List<String>>();
     private List<CartridgeDefinitionBean> cartridgeDefinitionBeanList = new LinkedList<CartridgeDefinitionBean>();
     private Map<String,Cartridge> availableSingleTenantCartridges = new HashMap<String,Cartridge>();
     private Map<String,Cartridge> availableMultiTenantCartridges = new HashMap<String,Cartridge>();
@@ -387,4 +392,81 @@ public class MockContext {
         return deploymentPolicyMap.values().toArray(new DeploymentPolicy[0]);
     }
 
+	public StratosAdminResponse addSubscriptionDomain(int tenantId, String alias, String domainName, String applicationContext) {
+		// populate new alias
+		List<String> aliasList;
+		if(tenantIdToAliasesMap.containsKey(tenantId)) {
+			aliasList = tenantIdToAliasesMap.get(tenantId);
+		} else {
+			aliasList = new ArrayList<String>();
+		}
+		aliasList.add(alias);
+		tenantIdToAliasesMap.put(tenantId, aliasList);
+		
+		// populate domains
+		List<SubscriptionDomain> list;
+		if(subscriptionAliasToDomainMap.containsKey(alias)) {
+			list = subscriptionAliasToDomainMap.get(alias);
+		} else {
+			list = new ArrayList<SubscriptionDomain>();
+		}
+		SubscriptionDomain subscriptionDomain = new SubscriptionDomain();
+		subscriptionDomain.domainName = domainName;
+		subscriptionDomain.applicationContext = applicationContext;
+		list.add(subscriptionDomain);
+		subscriptionAliasToDomainMap.put(alias, list);
+		
+		StratosAdminResponse stratosAdminResponse = new StratosAdminResponse();
+        stratosAdminResponse.setMessage("Successfully added subscription domain: "+domainName);
+        return stratosAdminResponse;
+	}
+
+	public List<SubscriptionDomain> getSubscriptionDomains(int tenantId, String alias) {
+		List<String> tenantAliases = tenantIdToAliasesMap.get(tenantId);
+		if(tenantAliases != null && tenantAliases.contains(alias)) {
+			
+			return subscriptionAliasToDomainMap.get(alias);
+		}
+        return new ArrayList<SubscriptionDomain>();
+	}
+
+	public SubscriptionDomain getSubscriptionDomain(int tenantId, String cartridgeType,
+			String subscriptionAlias, String domainName) throws RestAPIException {
+		List<String> tenantAliases = tenantIdToAliasesMap.get(tenantId);
+		if(tenantAliases != null && tenantAliases.contains(subscriptionAlias)) {
+			for (SubscriptionDomain subscriptionDomain : subscriptionAliasToDomainMap.get(subscriptionAlias)) {
+				if(subscriptionDomain.domainName.equals(domainName)) {
+					return subscriptionDomain;
+				}
+			}
+		}
+
+		String message = "Could not find a subscription [domain] " + domainName
+				+ " for Cartridge [type] " + cartridgeType + " and [alias] "
+				+ subscriptionAlias;
+		throw new RestAPIException(Status.NOT_FOUND, message);
+	}
+
+	public StratosAdminResponse removeSubscriptionDomain(int tenantId,
+			String subscriptionAlias, String domainName) {
+		StratosAdminResponse stratosAdminResponse = new StratosAdminResponse();
+		
+		List<String> tenantAliases = tenantIdToAliasesMap.get(tenantId);
+		if(tenantAliases != null && tenantAliases.contains(subscriptionAlias)) {
+			for (Iterator<SubscriptionDomain> iterator = subscriptionAliasToDomainMap.get(subscriptionAlias).iterator(); iterator
+					.hasNext();) {
+				SubscriptionDomain subscriptionDomain = (SubscriptionDomain) iterator.next();
+				if (subscriptionDomain.domainName.equals(domainName)) {
+					iterator.remove();
+					stratosAdminResponse.setMessage("Successfully removed the subscription domain: "+domainName);
+				}
+			}
+		} else {
+			
+			stratosAdminResponse.setMessage("Failed to remove the subscription domain: "+domainName);
+		}
+		
+        return stratosAdminResponse;
+	}
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/acdb17bf/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/StratosTestAdmin.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/StratosTestAdmin.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/StratosTestAdmin.java
index c31e3e3..3f16039 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/StratosTestAdmin.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/StratosTestAdmin.java
@@ -18,7 +18,7 @@
  */
 package org.apache.stratos.rest.endpoint.mock;
 
-import org.apache.catalina.tribes.membership.McastService;
+
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.common.beans.TenantInfoBean;
@@ -30,14 +30,17 @@ import org.apache.stratos.rest.endpoint.annotation.AuthorizationAction;
 import org.apache.stratos.rest.endpoint.annotation.SuperTenantService;
 import org.apache.stratos.rest.endpoint.bean.CartridgeInfoBean;
 import org.apache.stratos.rest.endpoint.bean.StratosAdminResponse;
+import org.apache.stratos.rest.endpoint.bean.SubscriptionDomainRequest;
 import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.Partition;
 import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.PartitionGroup;
 import org.apache.stratos.rest.endpoint.bean.autoscaler.policy.autoscale.AutoscalePolicy;
 import org.apache.stratos.rest.endpoint.bean.autoscaler.policy.deployment.DeploymentPolicy;
 import org.apache.stratos.rest.endpoint.bean.cartridge.definition.CartridgeDefinitionBean;
 import org.apache.stratos.rest.endpoint.bean.cartridge.definition.ServiceDefinitionBean;
+import org.apache.stratos.rest.endpoint.bean.subscription.domain.SubscriptionDomain;
 import org.apache.stratos.rest.endpoint.bean.topology.Cluster;
 import org.apache.stratos.rest.endpoint.exception.RestAPIException;
+import org.apache.stratos.rest.endpoint.services.ServiceUtils;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpSession;
@@ -474,6 +477,46 @@ public class StratosTestAdmin {
         return MockContext.getInstance().getDeploymentPoliciesForCartridgeType(cartridgeType);
     }
 
+    @POST
+    @Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domain/")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    public StratosAdminResponse addSubscriptionDomain(@PathParam("cartridgeType") String cartridgeType,
+                                                      @PathParam("subscriptionAlias") String subscriptionAlias,
+                                                      SubscriptionDomainRequest request) throws RestAPIException {
+
+        return MockContext.getInstance().addSubscriptionDomain(2, subscriptionAlias, request.getDomainName(), request.getApplicationContext());
+    }
+
+    @GET
+    @Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domain/")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    public SubscriptionDomain[] getSubscriptionDomains(@PathParam("cartridgeType") String cartridgeType,
+                                           @PathParam("subscriptionAlias") String subscriptionAlias) throws RestAPIException {
+
+        return MockContext.getInstance().getSubscriptionDomains(2, subscriptionAlias).toArray(new SubscriptionDomain[0]);
+    }
 
+    @GET
+    @Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domain/{domainName}")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    public SubscriptionDomain getSubscriptionDomain(@PathParam("cartridgeType") String cartridgeType,
+            @PathParam("subscriptionAlias") String subscriptionAlias, @PathParam("domainName") String domainName) throws RestAPIException {
+
+        return MockContext.getInstance().getSubscriptionDomain(2, cartridgeType, subscriptionAlias, domainName);
+    }
+
+    @DELETE
+    @Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domain/{domainName}")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    public StratosAdminResponse removeSubscriptionDomain(@PathParam("cartridgeType") String cartridgeType,
+                                                         @PathParam("subscriptionAlias") String subscriptionAlias,
+                                                         @PathParam("domainName") String domainName) throws RestAPIException {
+
+        return MockContext.getInstance().removeSubscriptionDomain(2, subscriptionAlias, domainName);
+    }
 
 }