package com.offbytwo.jenkins.integration;
import static org.assertj.core.api.Assertions.assertThat;
import java.io.IOException;
import java.util.List;
import javax.xml.bind.JAXBException;
import org.dom4j.DocumentException;
import org.junit.Test;
import com.offbytwo.jenkins.model.ComputerSet;
import com.offbytwo.jenkins.model.ComputerWithDetails;
import jenkins.model.Jenkins;
public class ComputerSetIT extends BaseForIntegrationTests {
@Test
public void shouldGetTotalExecutors() throws JAXBException, IOException, DocumentException {
Jenkins ji = jenkinsRule.getInstance();
ComputerSet computerSet = jenkinsServer.getComputerSet();
assertThat(computerSet).isNotNull();
assertThat(computerSet.getBusyExecutors()).isEqualTo(0);
assertThat(computerSet.getTotalExecutors()).isEqualTo(ji.getNumExecutors());
assertThat(computerSet.getDisplayName()).isEqualTo("Nodes");
}
@Test
public void shouldGetComputerWithDetailsAndExecutors() throws IOException {
Jenkins ji = jenkinsRule.getInstance();
List<ComputerWithDetails> computerSet = jenkinsServer.getComputerSet().getComputers();
ComputerWithDetails computerWithDetails = computerSet.get(0);
assertThat(computerWithDetails.getExecutors()).isNotNull();
assertThat(computerWithDetails.getNumExecutors()).isEqualTo(ji.getNumExecutors());
assertThat(computerWithDetails.getOfflineCause()).isNull();
}
@Test
public void shouldTrunFromOnlineToOffline() throws IOException {
ComputerWithDetails computerWithDetails = jenkinsServer.getComputerSet().getComputers().get( 0 );
computerWithDetails.toggleOffline(true);
ComputerWithDetails computerWithDetailsAfterStarting = jenkinsServer.getComputerSet().getComputers().get( 0 );
assertThat( computerWithDetailsAfterStarting.getOffline() ).isTrue();
}
}