Updated Branches: refs/heads/master 0e03fe2f2 -> 2231b6e40
mockcontext changes Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/2231b6e4 Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/2231b6e4 Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/2231b6e4 Branch: refs/heads/master Commit: 2231b6e40d44941763101bcdce0f665302c18a2c Parents: 0e03fe2 Author: Pradeep Fernando <[email protected]> Authored: Tue Jan 7 18:20:43 2014 +0530 Committer: Pradeep Fernando <[email protected]> Committed: Tue Jan 7 18:20:43 2014 +0530 ---------------------------------------------------------------------- .../stratos/rest/endpoint/mock/MockContext.java | 94 ++++++++++++++++++++ 1 file changed, 94 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/2231b6e4/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 ac0ec49..258c618 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 @@ -16,5 +16,99 @@ package org.apache.stratos.rest.endpoint.mock;/* * under the License. */ +import org.apache.stratos.adc.mgt.dto.Cartridge; +import org.apache.stratos.adc.mgt.dto.SubscriptionInfo; +import org.apache.stratos.rest.endpoint.bean.CartridgeInfoBean; +import org.apache.stratos.rest.endpoint.bean.cartridge.definition.CartridgeDefinitionBean; + +import java.util.*; + public class MockContext { + private static MockContext mockContext = new MockContext(); // singleton + 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>(); + private Map<String,Cartridge> subscribedCartridges = new HashMap<String,Cartridge>(); + + private Set<Cartridge> temp = new HashSet<Cartridge>(); + + + private MockContext(){} // do not allow to initialize + + public static MockContext getInstance(){ + return mockContext; + } + + + public void addCartirdgeDefinition(CartridgeDefinitionBean cartridgeDefinitionBean){ + this.cartridgeDefinitionBeanList.add(cartridgeDefinitionBean); + Cartridge cartridge = new Cartridge(); + cartridge.setCartridgeType(cartridgeDefinitionBean.type); + cartridge.setDescription(cartridgeDefinitionBean.description); + cartridge.setDisplayName(cartridgeDefinitionBean.displayName); + cartridge.setMultiTenant(cartridgeDefinitionBean.multiTenant); + cartridge.setProvider(cartridgeDefinitionBean.provider); + cartridge.setVersion(cartridgeDefinitionBean.version); + + if(cartridge.isMultiTenant()){ + availableMultiTenantCartridges.put(cartridge.getCartridgeType(), cartridge); + }else{ + availableSingleTenantCartridges.put(cartridge.getCartridgeType(), cartridge); + } + } + + + + public Cartridge[] getAvailableMultiTenantCartridges(){ + return availableMultiTenantCartridges.values().toArray(new Cartridge[0]); + } + + + public Cartridge[] getAvailableSingleTenantCartridges(){ + return availableSingleTenantCartridges.values().toArray(new Cartridge[0]); + } + + public Cartridge[] getSubscribedCartridges(){ + return subscribedCartridges.values().toArray(new Cartridge[0]); + } + + public SubscriptionInfo subscribeToCartridge(CartridgeInfoBean cartridgeInfoBean){ + String cartridgeType = cartridgeInfoBean.getCartridgeType(); + String alias = cartridgeInfoBean.getAlias(); + Cartridge subscribedCartridge; + // retrieve the cartridge from available ones + if(availableSingleTenantCartridges.containsKey(alias)){ + subscribedCartridge = availableSingleTenantCartridges.get(cartridgeType); + + }else if(availableMultiTenantCartridges.containsKey(alias)){ + subscribedCartridge = availableMultiTenantCartridges.get(cartridgeType); + }else { + throw new RuntimeException("Wrong programme sequence"); // TODO; handle properly + } + //Proper way is copy construrctor + Cartridge copy = new Cartridge(); + copy.setCartridgeType(subscribedCartridge.getCartridgeType()); + copy.setDescription(subscribedCartridge.getDescription()); + copy.setDisplayName(subscribedCartridge.getDisplayName()); + copy.setMultiTenant(subscribedCartridge.isMultiTenant()); + copy.setProvider(subscribedCartridge.getProvider()); + copy.setVersion(subscribedCartridge.getVersion()); + copy.setCartridgeAlias(alias); + copy.setHostName("dummy.stratos.com"); + copy.setRepoURL("http://dummy.stratos.com/myrepo.git"); + + subscribedCartridges.put(alias,copy); + + SubscriptionInfo subscriptionInfo = new SubscriptionInfo(); + subscriptionInfo.setHostname(copy.getHostName()); + subscriptionInfo.setRepositoryURL(copy.getRepoURL()); + + return subscriptionInfo; + } + + public void unsubscribe(String alias) { + if(subscribedCartridges.containsKey(alias)){ + subscribedCartridges.remove(alias); + } + } }
