package org.ow2.choreos.ee.services.preparer;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.ow2.choreos.ee.nodes.cm.NodePreparer;
import org.ow2.choreos.ee.nodes.cm.NodePreparers;
import org.ow2.choreos.ee.nodes.cm.NodeUpdater;
import org.ow2.choreos.ee.nodes.cm.NodeUpdaters;
import org.ow2.choreos.nodes.datamodel.CloudNode;
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.services.datamodel.ServiceType;
import org.ow2.choreos.tests.ModelsForTest;
public class InstanceDeploymentPreparerTest {
private ModelsForTest models;
private CloudNode node;
private NodePreparer nodePreparer;
private NodeUpdater nodeUpdater;
@Before
public void setUp() throws Exception {
models = new ModelsForTest(ServiceType.SOAP, PackageType.COMMAND_LINE);
setNode();
setPreparer();
setUpdater();
}
@After
public void tearDown() {
NodeUpdaters.testing = false;
NodePreparers.testing = false;
}
private void setNode() {
node = new CloudNode();
node.setId("1");
node.setIp("192.168.56.101");
node.setUser("ubuntu");
node.setPrivateKey("ubuntu.pem");
}
private void setPreparer() {
nodePreparer = mock(NodePreparer.class);
NodePreparers.preparerForTest = nodePreparer;
NodePreparers.testing = true;
}
private void setUpdater() {
nodeUpdater = mock(NodeUpdater.class);
NodeUpdaters.updaterForTest = nodeUpdater;
NodeUpdaters.testing = true;
}
@Test
public void shouldRunDeploymentPrepareOnNodeAndAddHandler() throws Exception {
DeployableServiceSpec spec = models.getAirlineSpec();
DeployableService airlineService = models.getAirlineService();
InstanceDeploymentPreparer instanceDeploymentPreparer = new InstanceDeploymentPreparer(spec, airlineService,
node);
instanceDeploymentPreparer.prepareDeployment();
verify(nodePreparer).prepareNodeForDeployment(spec.getPackageUri(), "jar");
verify(nodeUpdater).addHandler(any(InstanceCreatorUpdateHandler.class));
}
}