/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
package org.ow2.choreos.ee.services;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import org.junit.Before;
import org.junit.Test;
import org.ow2.choreos.ee.config.DeploymentManagerConfiguration;
import org.ow2.choreos.ee.services.preparer.PrepareDeploymentFailedException;
import org.ow2.choreos.ee.services.preparer.ServiceDeploymentPreparer;
import org.ow2.choreos.ee.services.preparer.ServiceDeploymentPreparerFactory;
import org.ow2.choreos.nodes.datamodel.CloudNode;
import org.ow2.choreos.services.ServiceNotCreatedException;
import org.ow2.choreos.services.datamodel.DeployableService;
import org.ow2.choreos.services.datamodel.DeployableServiceSpec;
import org.ow2.choreos.services.datamodel.PackageType;
import org.ow2.choreos.utils.LogConfigurator;
import com.google.common.collect.Sets;
public class ServiceCreatorTest {
private ServiceCreator serviceCreator;
private DeployableServiceSpec serviceSpec;
private CloudNode node;
@Before
public void setUp() throws PrepareDeploymentFailedException {
LogConfigurator.configLog();
DeploymentManagerConfiguration.set("TESTING", "true");
setNode();
setUpServiceDeployer();
}
private void setNode() {
node = new CloudNode();
node.setId("1");
node.setIp("192.168.56.101");
node.setUser("ubuntu");
node.setPrivateKey("key.pem");
}
private void setUpServiceDeployer() throws PrepareDeploymentFailedException {
serviceSpec = new DeployableServiceSpec();
serviceSpec.setPackageUri("http://choreos.eu/services/airline.jar");
serviceSpec.setPackageType(PackageType.COMMAND_LINE);
serviceSpec.setEndpointName("airline");
serviceSpec.setPort(8042);
serviceCreator = new ServiceCreator();
ServiceDeploymentPreparer preparerMock = mock(ServiceDeploymentPreparer.class);
when(preparerMock.prepareDeployment()).thenReturn(Sets.newHashSet(node));
ServiceDeploymentPreparerFactory.preparerForTest = preparerMock;
ServiceDeploymentPreparerFactory.testing = true;
}
@Test
public void shouldReturnAValidService() throws PrepareDeploymentFailedException, ServiceNotCreatedException {
DeployableService service = serviceCreator.createService(serviceSpec);
assertEquals(serviceSpec.getName(), service.getSpec().getName());
String uuid = service.getUUID();
assertTrue(uuid != null && !uuid.isEmpty());
assertEquals(service.getSelectedNodes().iterator().next(), node);
ServiceDeploymentPreparerFactory.testing = false;
}
}