/* * Copyright (c) 2013 GigaSpaces Technologies Ltd. All rights reserved * * Licensed 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.cloudifysource.rest; import java.util.List; import java.util.Properties; import junit.framework.Assert; import org.cloudifysource.dsl.internal.CloudifyConstants; import org.cloudifysource.dsl.rest.response.InstanceDescription; import org.cloudifysource.dsl.rest.response.ServiceDescription; import org.cloudifysource.rest.util.ApplicationDescriptionFactory; import org.junit.Test; import org.mockito.Mockito; import org.openspaces.admin.internal.machine.DefaultMachine; import org.openspaces.admin.internal.pu.DefaultProcessingUnit; import org.openspaces.admin.internal.vm.DefaultVirtualMachine; import org.openspaces.admin.machine.Machine; import org.openspaces.admin.pu.ProcessingUnit; import org.openspaces.admin.pu.ProcessingUnitInstance; import org.openspaces.admin.pu.ProcessingUnitType; import org.openspaces.admin.vm.VirtualMachine; import org.openspaces.core.properties.BeanLevelProperties; /** * * @author yael * */ public class GetServiceDescriptionTest { @Test public void testUSMStateNotAvailable() { final ApplicationDescriptionFactory factory = new ApplicationDescriptionFactory(null); final ProcessingUnit mockProcessingUnit = Mockito.mock(DefaultProcessingUnit.class); // mockProcessingUnitInstance final ProcessingUnitInstance mockProcessingUnitInstance = Mockito.mock(ProcessingUnitInstance.class); Mockito.when(mockProcessingUnitInstance.getProcessingUnit()).thenReturn(mockProcessingUnit); Mockito.when(mockProcessingUnitInstance.getProcessingUnit()).thenReturn(mockProcessingUnit); VirtualMachine mockVirtualMachine = Mockito.mock(DefaultVirtualMachine.class); Machine mockMachine = Mockito.mock(DefaultMachine.class); Mockito.when(mockMachine.getHostName()).thenReturn("localhost"); Mockito.when(mockMachine.getHostAddress()).thenReturn("localhost"); Mockito.when(mockVirtualMachine.getMachine()).thenReturn(mockMachine); Mockito.when(mockProcessingUnitInstance.getVirtualMachine()).thenReturn(mockVirtualMachine); // mockProcessingUnit final ProcessingUnitInstance[] puis = { mockProcessingUnitInstance }; Mockito.when(mockProcessingUnit.getInstances()).thenReturn(puis); Mockito.when(mockProcessingUnit.iterator()).thenCallRealMethod(); Mockito.when(mockProcessingUnit.getType()).thenReturn(ProcessingUnitType.UNIVERSAL); Mockito.when(mockProcessingUnit.getName()).thenReturn("default.tomcat"); final BeanLevelProperties blp = Mockito.mock(BeanLevelProperties.class); final Properties contextProperties = new Properties(); contextProperties.setProperty(CloudifyConstants.CONTEXT_PROPERTY_DEPLOYMENT_ID, "12345"); Mockito.when(blp.getContextProperties()).thenReturn(contextProperties); Mockito.when(mockProcessingUnit.getBeanLevelProperties()).thenReturn(blp); Mockito.when(mockProcessingUnit.getNumberOfInstances()).thenReturn(1); // asserts ServiceDescription result = factory.getServiceDescription(mockProcessingUnit); Assert.assertEquals("default", result.getApplicationName()); Assert.assertEquals("12345", result.getDeploymentId()); Assert.assertEquals(0, result.getInstanceCount()); Assert.assertEquals(1, result.getPlannedInstances()); Assert.assertEquals("tomcat", result.getServiceName()); List<InstanceDescription> instancesDescription = result.getInstancesDescription(); Assert.assertEquals(1, instancesDescription.size()); InstanceDescription instanceDescription = instancesDescription.get(0); Assert.assertNotNull(instanceDescription); Assert.assertEquals("localhost", instanceDescription.getHostAddress()); Assert.assertEquals("localhost", instanceDescription.getHostName()); Assert.assertEquals("NA", instanceDescription.getInstanceStatus()); } }