package com.offbytwo.jenkins.integration;
import static org.assertj.core.api.Assertions.assertThat;
import java.io.IOException;
import java.io.Serializable;
import java.net.URISyntaxException;
import java.util.Collection;
import java.util.Map;
import javax.servlet.ServletException;
import javax.xml.bind.JAXBException;
import org.dom4j.DocumentException;
import org.junit.Ignore;
import org.junit.Test;
import org.kohsuke.stapler.StaplerRequest;
import org.kohsuke.stapler.StaplerResponse;
import com.offbytwo.jenkins.model.View;
import hudson.model.Descriptor;
import hudson.model.Item;
import hudson.model.ListView;
import hudson.model.TopLevelItem;
public class JenkinsClientViewIT extends BaseForIntegrationTests {
public static final String TEST_VIEW = "testView";
@Test
@Ignore("I need to check what real cause of this is: JenkinsClientViewIT.shouldObtainView:36 ยป NullPointer")
public void shouldObtainView() throws URISyntaxException, IOException, JAXBException, DocumentException {
// given
jenkinsRule.getInstance().addView(new TestView());
// when
com.offbytwo.jenkins.model.View testView = jenkinsServer.getView(TEST_VIEW);
// then
assertThat(testView).isNotNull();
}
@Test
public void shouldGetAllViews() throws URISyntaxException, IOException, JAXBException, DocumentException {
ListView createdFirstView = new ListView("FirstView");
ListView createdSecondView = new ListView("SecondView");
// given
jenkinsRule.getInstance().addView(createdFirstView);
jenkinsRule.getInstance().addView(createdSecondView);
// when
Map<String, View> testView = jenkinsServer.getViews();
assertThat(testView).hasSize(3);
// TODO: Check why this does not work?
// // then
// View first = new View();
// first.setName("FirstView");
// assertThat(testView.get("FirstView")).isEqualTo(first);
// View second = new View();
// second.setName("SecondView");
// assertThat(testView.get("SecondView")).isEqualTo(second);
}
private static class TestView extends hudson.model.View implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
public TestView() {
super(TEST_VIEW);
}
@Override
public Collection<TopLevelItem> getItems() {
return null;
}
@Override
public boolean contains(TopLevelItem topLevelItem) {
return false;
}
@Override
protected void submit(StaplerRequest staplerRequest)
throws IOException, ServletException, Descriptor.FormException {
}
@Override
public Item doCreateItem(StaplerRequest staplerRequest, StaplerResponse staplerResponse)
throws IOException, ServletException {
return null;
}
}
}