package com.surenpi.jenkins.client.view; import com.surenpi.jenkins.client.Jenkins; import hudson.model.User; import hudson.security.SecurityRealm; import jenkins.security.ApiTokenProperty; import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.jvnet.hudson.test.JenkinsRule; import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; import static org.junit.Assert.assertNotNull; /** * @author suren */ public class ViewsTest { private static Views views; private final String viewName = "hello"; @Rule public JenkinsRule j = new JenkinsRule(); @Before public void setup() throws URISyntaxException { User user = User.getById("admin", true); assertNotNull(user); String token = ((ApiTokenProperty) user.getProperty(ApiTokenProperty.class)).getApiToken(); assertNotNull(j.jenkins.getRootUrl()); j.jenkins.setSecurityRealm(SecurityRealm.NO_AUTHENTICATION); views = new Jenkins(new URI(j.jenkins.getRootUrl()), user.getId(), token).getViews(); } @Test public void create() throws IOException { views.create(viewName, VIEW_XML); hudson.model.View view = j.jenkins.getView(viewName); assertNotNull(view); } @Test public void info() throws IOException { views.create(viewName, VIEW_XML); View view = views.info(viewName); assertNotNull(view); } @Test public void getXml() throws IOException { views.create(viewName, VIEW_XML); assertNotNull(j.jenkins.getView(viewName)); String viewXmlConfig = views.getXml(viewName); assertNotNull(viewXmlConfig); } public static final String VIEW_XML = "<hudson.model.ListView>\n" + " <name>rrr</name>\n" + " <filterExecutors>false</filterExecutors>\n" + " <filterQueue>false</filterQueue>\n" + " <properties class=\"hudson.model.View$PropertyList\"/>\n" + " <jobNames>\n" + " <comparator class=\"hudson.util.CaseInsensitiveComparator\"/>\n" + " </jobNames>\n" + " <jobFilters/>\n" + " <columns>\n" + " <hudson.views.StatusColumn/>\n" + " <hudson.views.WeatherColumn/>\n" + " <hudson.views.JobColumn/>\n" + " <hudson.views.LastSuccessColumn/>\n" + " <hudson.views.LastFailureColumn/>\n" + " <hudson.views.LastDurationColumn/>\n" + " <hudson.views.BuildButtonColumn/>\n" + " <hudson.plugins.favorite.column.FavoriteColumn plugin=\"[email protected]\"/>\n" + " </columns>\n" + " <recurse>false</recurse>\n" + "</hudson.model.ListView>"; }