package de.codecentric.jenkins.dashboard; import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertThat; import static org.powermock.api.mockito.PowerMockito.when; import hudson.util.ListBoxModel; import java.util.Arrays; import java.util.List; import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; import org.powermock.api.mockito.PowerMockito; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; import com.amazonaws.regions.Region; import com.amazonaws.regions.Regions; import de.codecentric.jenkins.dashboard.Environment.EnvironmentDescriptor; import de.codecentric.jenkins.dashboard.api.environments.ServerEnvironment; import de.codecentric.jenkins.dashboard.impl.environments.ec2.EC2Connector; @RunWith(PowerMockRunner.class) @PrepareForTest(EC2Connector.class) public class EnvironmentDescriptorTest { private static final String REGION_NAME = "eu-west-1"; private static final String CREDENTIAL_NAME = "credential"; private static final EC2Connector ec2 = PowerMockito.mock(EC2Connector.class); private static final Region REGION = Region.getRegion(Regions.fromName(REGION_NAME)); private static final String SERVER_TAG = "ABC"; private static final ServerEnvironment server1 = new ServerEnvironment("id", "type"); @BeforeClass public static void setup() { server1.setEnvironmentTag(SERVER_TAG); final ServerEnvironment array[] = { server1 }; final List<ServerEnvironment> ENVS = Arrays.asList(array); PowerMockito.mockStatic(EC2Connector.class); when(EC2Connector.getEC2Connector(CREDENTIAL_NAME)).thenReturn(ec2); when(ec2.getEnvironments(REGION)).thenReturn(ENVS); } @Test public void testDoFillAwsInstanceItems() { final EnvironmentDescriptor desc = new Environment.EnvironmentDescriptor(); final ListBoxModel values = desc.doFillAwsInstanceItems(REGION_NAME, CREDENTIAL_NAME); assertThat(values.size(), is(1)); assertThat(values.get(0).name, is(SERVER_TAG)); assertThat(values.get(0).value, is(SERVER_TAG)); } }