package org.jenkinsci.plugins.nomad; import hudson.model.labels.LabelAtom; import hudson.slaves.NodeProvisioner; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import java.util.Collection; import java.util.Collections; import java.util.Set; import org.mockito.Mockito; public class NomadCloudTest { private NomadSlaveTemplate slaveTemplate = Mockito.mock(NomadSlaveTemplate.class); private LabelAtom label = Mockito.mock(LabelAtom.class); private NomadCloud nomadCloud = new NomadCloud( "nomad", "nomadUrl", "jenkinsUrl", "slaveUrl", Collections.singletonList(slaveTemplate)); @Before public void setup() { Set<LabelAtom> labels = Collections.singleton(label); Mockito.when(label.matches(Mockito.anyCollectionOf(LabelAtom.class))).thenReturn(true); Mockito.when(slaveTemplate.createSlaveName()).thenReturn("slave-1", "slave-2", "slave-3"); Mockito.when(slaveTemplate.getNumExecutors()).thenReturn(1); Mockito.when(slaveTemplate.getLabelSet()).thenReturn(labels); } @Test public void testCanProvision() { Assert.assertTrue(nomadCloud.canProvision(label)); } @Test public void testProvision() { int workload = 3; Collection<NodeProvisioner.PlannedNode> plannedNodes = nomadCloud.provision(label, workload); Assert.assertEquals(plannedNodes.size(), workload); } }