Commit 6e35aeae authored by Greg Messner's avatar Greg Messner
Browse files

Fixed getAllRunners() methods and added support to filter on runner type and status (#365).

parent b1ec6384
package org.gitlab4j.api; package org.gitlab4j.api;
import java.util.List;
import java.util.stream.Stream;
import javax.ws.rs.core.GenericType;
import javax.ws.rs.core.Response;
import org.gitlab4j.api.models.Job; import org.gitlab4j.api.models.Job;
import org.gitlab4j.api.models.JobStatus; import org.gitlab4j.api.models.JobStatus;
import org.gitlab4j.api.models.Runner; import org.gitlab4j.api.models.Runner;
import org.gitlab4j.api.models.Runner.RunnerStatus;
import org.gitlab4j.api.models.Runner.RunnerType;
import org.gitlab4j.api.models.RunnerDetail; import org.gitlab4j.api.models.RunnerDetail;
import javax.ws.rs.core.GenericType;
import javax.ws.rs.core.Response;
import java.util.List;
import java.util.stream.Stream;
/** /**
* This class provides an entry point to all the GitLab API repository files calls. * This class provides an entry point to all the GitLab API repository files calls.
*/ */
...@@ -28,7 +31,34 @@ public class RunnersApi extends AbstractApi { ...@@ -28,7 +31,34 @@ public class RunnersApi extends AbstractApi {
* @throws GitLabApiException if any exception occurs * @throws GitLabApiException if any exception occurs
*/ */
public List<Runner> getRunners() throws GitLabApiException { public List<Runner> getRunners() throws GitLabApiException {
return (getRunners(null, getDefaultPerPage()).all()); return (getRunners(null, null, getDefaultPerPage()).all());
}
/**
* Get a list of all available runners available to the user with pagination support.
*
* <pre><code>GitLab Endpoint: GET /runners</code></pre>
*
* @param page The page offset of runners
* @param perPage The number of runners to get after the page offset
* @return List of Runners
* @throws GitLabApiException if any exception occurs
*/
public List<Runner> getRunners(int page, int perPage) throws GitLabApiException {
return getRunners(null, null, page, perPage);
}
/**
* Get a list of all available runners available to the user.
*
* <pre><code>GitLab Endpoint: GET /runners</code></pre>
*
* @param itemsPerPage the number of Runner instances that will be fetched per page
* @return a Pager containing the Runners for the user
* @throws GitLabApiException if any exception occurs
*/
public Pager<Runner> getRunners(int itemsPerPage) throws GitLabApiException {
return (getRunners(null, null, itemsPerPage));
} }
/** /**
...@@ -40,7 +70,7 @@ public class RunnersApi extends AbstractApi { ...@@ -40,7 +70,7 @@ public class RunnersApi extends AbstractApi {
* @throws GitLabApiException if any exception occurs * @throws GitLabApiException if any exception occurs
*/ */
public Stream<Runner> getRunnersStream() throws GitLabApiException { public Stream<Runner> getRunnersStream() throws GitLabApiException {
return (getRunners(null, getDefaultPerPage()).stream()); return (getRunners(null, null, getDefaultPerPage()).stream());
} }
/** /**
...@@ -48,12 +78,51 @@ public class RunnersApi extends AbstractApi { ...@@ -48,12 +78,51 @@ public class RunnersApi extends AbstractApi {
* *
* <pre><code>GitLab Endpoint: GET /runners</code></pre> * <pre><code>GitLab Endpoint: GET /runners</code></pre>
* *
* @param scope The scope of specific runners to show, one of: active, paused, online; showing all runners null * @param type the type of runners to show, one of: instance_type, group_type, project_type, or null
* @param status the status of runners to show, one of: active, paused, online, offline, or null
* @return List of Runners * @return List of Runners
* @throws GitLabApiException if any exception occurs * @throws GitLabApiException if any exception occurs
*/ */
public List<Runner> getRunners(Runner.RunnerStatus scope) throws GitLabApiException { public List<Runner> getRunners(RunnerType type, RunnerStatus status) throws GitLabApiException {
return (getRunners(scope, getDefaultPerPage()).all()); return (getRunners(type, status, getDefaultPerPage()).all());
}
/**
* Get a list of specific runners available to the user.
*
* <pre><code>GitLab Endpoint: GET /runners</code></pre>
*
* @param type the type of runners to show, one of: instance_type, group_type, project_type, or null
* @param status the status of runners to show, one of: active, paused, online, offline, or null
* @param page the page offset of runners
* @param perPage the number of runners to get after the page offset
* @return List of Runners
* @throws GitLabApiException if any exception occurs
*/
public List<Runner> getRunners(RunnerType type, RunnerStatus status, int page, int perPage) throws GitLabApiException {
GitLabApiForm formData = new GitLabApiForm(page, perPage)
.withParam("type", type, false)
.withParam("status", status, false);
Response response = get(Response.Status.OK, formData.asMap(), "runners");
return (response.readEntity(new GenericType<List<Runner>>() {}));
}
/**
* Get a list of specific runners available to the user.
*
* <pre><code>GitLab Endpoint: GET /runners</code></pre>
*
* @param type the type of runners to show, one of: instance_type, group_type, project_type, or null
* @param status the status of runners to show, one of: active, paused, online, offline, or null
* @param itemsPerPage The number of Runner instances that will be fetched per page
* @return a Pager containing the Runners for the user
* @throws GitLabApiException if any exception occurs
*/
public Pager<Runner> getRunners(RunnerType type, RunnerStatus status, int itemsPerPage) throws GitLabApiException {
GitLabApiForm formData = new GitLabApiForm()
.withParam("type", type, false)
.withParam("status", status, false);
return (new Pager<>(this, Runner.class, itemsPerPage, formData.asMap(), "runners"));
} }
/** /**
...@@ -61,12 +130,13 @@ public class RunnersApi extends AbstractApi { ...@@ -61,12 +130,13 @@ public class RunnersApi extends AbstractApi {
* *
* <pre><code>GitLab Endpoint: GET /runners</code></pre> * <pre><code>GitLab Endpoint: GET /runners</code></pre>
* *
* @param scope The scope of specific runners to show, one of: active, paused, online; showing all runners null * @param type the type of runners to show, one of: instance_type, group_type, project_type, or null
* @param status the status of runners to show, one of: active, paused, online, offline, or null
* @return Stream of Runners * @return Stream of Runners
* @throws GitLabApiException if any exception occurs * @throws GitLabApiException if any exception occurs
*/ */
public Stream<Runner> getRunnersStream(Runner.RunnerStatus scope) throws GitLabApiException { public Stream<Runner> getRunnersStream(RunnerType type, RunnerStatus status) throws GitLabApiException {
return (getRunners(scope, getDefaultPerPage()).stream()); return (getRunners(type, status, getDefaultPerPage()).stream());
} }
/** /**
...@@ -74,13 +144,14 @@ public class RunnersApi extends AbstractApi { ...@@ -74,13 +144,14 @@ public class RunnersApi extends AbstractApi {
* *
* <pre><code>GitLab Endpoint: GET /runners</code></pre> * <pre><code>GitLab Endpoint: GET /runners</code></pre>
* *
* @param page The page offset of runners * @param scope The scope of specific runners to show, one of: active, paused, online; showing all runners null
* @param perPage The number of runners to get after the page offset
* @return List of Runners * @return List of Runners
* @throws GitLabApiException if any exception occurs * @throws GitLabApiException if any exception occurs
* @deprecated As of release 4.11.5, replaced by {@link #getRunners(Runner.RunnerType, Runner.RunnerStatus)}
*/ */
public List<Runner> getRunners(int page, int perPage) throws GitLabApiException { @Deprecated
return getRunners(null, page, perPage); public List<Runner> getRunners(RunnerStatus scope) throws GitLabApiException {
return (getRunners(scope, getDefaultPerPage()).all());
} }
/** /**
...@@ -93,8 +164,10 @@ public class RunnersApi extends AbstractApi { ...@@ -93,8 +164,10 @@ public class RunnersApi extends AbstractApi {
* @param perPage The number of runners to get after the page offset * @param perPage The number of runners to get after the page offset
* @return List of Runners * @return List of Runners
* @throws GitLabApiException if any exception occurs * @throws GitLabApiException if any exception occurs
* @deprecated As of release 4.11.5, replaced by {@link #getRunners(Runner.RunnerType, Runner.RunnerStatus, int, int)}
*/ */
public List<Runner> getRunners(Runner.RunnerStatus scope, Integer page, Integer perPage) throws GitLabApiException { @Deprecated
public List<Runner> getRunners(RunnerStatus scope, int page, int perPage) throws GitLabApiException {
GitLabApiForm formData = new GitLabApiForm() GitLabApiForm formData = new GitLabApiForm()
.withParam("scope", scope, false) .withParam("scope", scope, false)
.withParam("page", page, false) .withParam("page", page, false)
...@@ -105,31 +178,35 @@ public class RunnersApi extends AbstractApi { ...@@ -105,31 +178,35 @@ public class RunnersApi extends AbstractApi {
} }
/** /**
* Get a list of all available runners available to the user. * Get a list of specific runners available to the user.
* *
* <pre><code>GitLab Endpoint: GET /runners</code></pre> * <pre><code>GitLab Endpoint: GET /runners</code></pre>
* *
* @param itemsPerPage the number of Runner instances that will be fetched per page * @param scope the scope of specific runners to show, one of: active, paused, online; showing all runners null
* @param itemsPerPage The number of Runner instances that will be fetched per page
* @return a Pager containing the Runners for the user * @return a Pager containing the Runners for the user
* @throws GitLabApiException if any exception occurs * @throws GitLabApiException if any exception occurs
* @deprecated As of release 4.11.5, replaced by {@link #getRunners(Runner.RunnerType, Runner.RunnerStatus, int)}
*/ */
public Pager<Runner> getRunners(int itemsPerPage) throws GitLabApiException { @Deprecated
return (getRunners(null, itemsPerPage)); public Pager<Runner> getRunners(RunnerStatus scope, int itemsPerPage) throws GitLabApiException {
GitLabApiForm formData = new GitLabApiForm().withParam("scope", scope, false);
return (new Pager<>(this, Runner.class, itemsPerPage, formData.asMap(), "runners"));
} }
/** /**
* Get a list of specific runners available to the user. * Get a Stream of all available runners available to the user with pagination support.
* *
* <pre><code>GitLab Endpoint: GET /runners</code></pre> * <pre><code>GitLab Endpoint: GET /runners</code></pre>
* *
* @param scope the scope of specific runners to show, one of: active, paused, online; showing all runners null * @param scope The scope of specific runners to show, one of: active, paused, online; showing all runners null
* @param itemsPerPage The number of Runner instances that will be fetched per page * @return Stream of Runners
* @return a Pager containing the Runners for the user
* @throws GitLabApiException if any exception occurs * @throws GitLabApiException if any exception occurs
* @deprecated As of release 4.11.5, replaced by {@link #getRunnersStream(Runner.RunnerType, Runner.RunnerStatus)}
*/ */
public Pager<Runner> getRunners(Runner.RunnerStatus scope, int itemsPerPage) throws GitLabApiException { @Deprecated
GitLabApiForm formData = new GitLabApiForm().withParam("scope", scope, false); public Stream<Runner> getRunnersStream(RunnerStatus scope) throws GitLabApiException {
return (new Pager<>(this, Runner.class, itemsPerPage, formData.asMap(), "runners")); return (getRunners(scope, getDefaultPerPage()).stream());
} }
/** /**
...@@ -141,19 +218,21 @@ public class RunnersApi extends AbstractApi { ...@@ -141,19 +218,21 @@ public class RunnersApi extends AbstractApi {
* @throws GitLabApiException if any exception occurs * @throws GitLabApiException if any exception occurs
*/ */
public List<Runner> getAllRunners() throws GitLabApiException { public List<Runner> getAllRunners() throws GitLabApiException {
return (getAllRunners(null, getDefaultPerPage()).all()); return (getAllRunners(null, null, getDefaultPerPage()).all());
} }
/** /**
* Get a Stream of all runners in the GitLab instance (specific and shared). Access is restricted to users with admin privileges. * Get a list of all runners in the GitLab instance (specific and shared). Access is restricted to users with admin privileges.
* *
* <pre><code>GitLab Endpoint: GET /runners/all</code></pre> * <pre><code>GitLab Endpoint: GET /runners/all</code></pre>
* *
* @return a Stream of Runners * @param page The page offset of runners
* @param perPage The number of runners to get after the page offset
* @return a list of all runners in the GitLab instance
* @throws GitLabApiException if any exception occurs * @throws GitLabApiException if any exception occurs
*/ */
public Stream<Runner> getAllRunnersStream() throws GitLabApiException { public List<Runner> getAllRunners(int page, int perPage) throws GitLabApiException {
return (getAllRunners(null, getDefaultPerPage()).stream()); return (getAllRunners(null, page, perPage));
} }
/** /**
...@@ -161,12 +240,12 @@ public class RunnersApi extends AbstractApi { ...@@ -161,12 +240,12 @@ public class RunnersApi extends AbstractApi {
* *
* <pre><code>GitLab Endpoint: GET /runners/all</code></pre> * <pre><code>GitLab Endpoint: GET /runners/all</code></pre>
* *
* @param scope The scope of specific runners to show, one of: active, paused, online; showing all runners null * @param itemsPerPage The number of Runner instances that will be fetched per page
* @return a List of Runners * @return List of Runners
* @throws GitLabApiException if any exception occurs * @throws GitLabApiException if any exception occurs
*/ */
public List<Runner> getAllRunners(Runner.RunnerStatus scope) throws GitLabApiException { public Pager<Runner> getAllRunners(int itemsPerPage) throws GitLabApiException {
return (getAllRunners(scope, getDefaultPerPage()).all()); return getAllRunners(null, null, itemsPerPage);
} }
/** /**
...@@ -174,12 +253,11 @@ public class RunnersApi extends AbstractApi { ...@@ -174,12 +253,11 @@ public class RunnersApi extends AbstractApi {
* *
* <pre><code>GitLab Endpoint: GET /runners/all</code></pre> * <pre><code>GitLab Endpoint: GET /runners/all</code></pre>
* *
* @param scope The scope of specific runners to show, one of: active, paused, online; showing all runners null
* @return a Stream of Runners * @return a Stream of Runners
* @throws GitLabApiException if any exception occurs * @throws GitLabApiException if any exception occurs
*/ */
public Stream<Runner> getAllRunnersStream(Runner.RunnerStatus scope) throws GitLabApiException { public Stream<Runner> getAllRunnersStream() throws GitLabApiException {
return (getAllRunners(scope, getDefaultPerPage()).stream()); return (getAllRunners(null, null, getDefaultPerPage()).stream());
} }
/** /**
...@@ -187,13 +265,13 @@ public class RunnersApi extends AbstractApi { ...@@ -187,13 +265,13 @@ public class RunnersApi extends AbstractApi {
* *
* <pre><code>GitLab Endpoint: GET /runners/all</code></pre> * <pre><code>GitLab Endpoint: GET /runners/all</code></pre>
* *
* @param page The page offset of runners * @param type the type of runners to show, one of: instance_type, group_type, project_type, or null
* @param perPage The number of runners to get after the page offset * @param status the status of runners to show, one of: active, paused, online, offline, or null
* @return a list of all runners in the GitLab instance * @return a List of Runners
* @throws GitLabApiException if any exception occurs * @throws GitLabApiException if any exception occurs
*/ */
public List<Runner> getAllRunners(int page, int perPage) throws GitLabApiException { public List<Runner> getAllRunners(RunnerType type, RunnerStatus status) throws GitLabApiException {
return (getAllRunners(null, page, perPage)); return (getAllRunners(type, status, getDefaultPerPage()).all());
} }
/** /**
...@@ -201,17 +279,17 @@ public class RunnersApi extends AbstractApi { ...@@ -201,17 +279,17 @@ public class RunnersApi extends AbstractApi {
* *
* <pre><code>GitLab Endpoint: GET /runners/all</code></pre> * <pre><code>GitLab Endpoint: GET /runners/all</code></pre>
* *
* @param scope The scope of specific runners to show, one of: active, paused, online; showing all runners null * @param type the type of runners to show, one of: instance_type, group_type, project_type, or null
* @param status the status of runners to show, one of: active, paused, online, offline, or null
* @param page The page offset of runners * @param page The page offset of runners
* @param perPage The number of runners to get after the page offset * @param perPage The number of runners to get after the page offset
* @return List of Runners * @return List of Runners
* @throws GitLabApiException if any exception occurs * @throws GitLabApiException if any exception occurs
*/ */
public List<Runner> getAllRunners(Runner.RunnerStatus scope, Integer page, Integer perPage) throws GitLabApiException { public List<Runner> getAllRunners(RunnerType type, RunnerStatus status, int page, int perPage) throws GitLabApiException {
GitLabApiForm formData = new GitLabApiForm() GitLabApiForm formData = new GitLabApiForm(page, perPage)
.withParam("scope", scope, false) .withParam("type", type, false)
.withParam("page", page, false) .withParam("status", status, false);
.withParam("per_page", perPage, false);
Response response = get(Response.Status.OK, formData.asMap(), "runners", "all"); Response response = get(Response.Status.OK, formData.asMap(), "runners", "all");
return (response.readEntity(new GenericType<List<Runner>>() {})); return (response.readEntity(new GenericType<List<Runner>>() {}));
} }
...@@ -221,12 +299,65 @@ public class RunnersApi extends AbstractApi { ...@@ -221,12 +299,65 @@ public class RunnersApi extends AbstractApi {
* *
* <pre><code>GitLab Endpoint: GET /runners/all</code></pre> * <pre><code>GitLab Endpoint: GET /runners/all</code></pre>
* *
* @param type the type of runners to show, one of: instance_type, group_type, project_type, or null
* @param status the status of runners to show, one of: active, paused, online, offline, or null
* @param itemsPerPage The number of Runner instances that will be fetched per page * @param itemsPerPage The number of Runner instances that will be fetched per page
* @return a Pager containing the Runners
* @throws GitLabApiException if any exception occurs
*/
public Pager<Runner> getAllRunners(RunnerType type, RunnerStatus status, int itemsPerPage) throws GitLabApiException {
GitLabApiForm formData = new GitLabApiForm()
.withParam("type", type, false)
.withParam("status", status, false);
return (new Pager<>(this, Runner.class, itemsPerPage, formData.asMap(), "runners", "all"));
}
/**
* Get a Stream of all runners in the GitLab instance (specific and shared). Access is restricted to users with admin privileges.
*
* <pre><code>GitLab Endpoint: GET /runners/all</code></pre>
*
* @param type the type of runners to show, one of: instance_type, group_type, project_type, or null
* @param status the status of runners to show, one of: active, paused, online, offline, or null
* @return a Stream of Runners
* @throws GitLabApiException if any exception occurs
*/
public Stream<Runner> getAllRunnersStream(RunnerType type, RunnerStatus status) throws GitLabApiException {
return (getAllRunners(type, status, getDefaultPerPage()).stream());
}
/**
* Get a list of all runners in the GitLab instance (specific and shared). Access is restricted to users with admin privileges.
*
* <pre><code>GitLab Endpoint: GET /runners/all</code></pre>
*
* @param scope The scope of specific runners to show, one of: active, paused, online; showing all runners null
* @return a List of Runners
* @throws GitLabApiException if any exception occurs
* @deprecated As of release 4.11.5, replaced by {@link #getAllRunners(Runner.RunnerType, Runner.RunnerStatus)}
*/
@Deprecated
public List<Runner> getAllRunners(RunnerStatus scope) throws GitLabApiException {
return (getAllRunners(scope, getDefaultPerPage()).all());
}
/**
* Get a list of all runners in the GitLab instance (specific and shared). Access is restricted to users with admin privileges.
*
* <pre><code>GitLab Endpoint: GET /runners/all</code></pre>
*
* @param scope The scope of specific runners to show, one of: active, paused, online; showing all runners null
* @param page The page offset of runners
* @param perPage The number of runners to get after the page offset
* @return List of Runners * @return List of Runners
* @throws GitLabApiException if any exception occurs * @throws GitLabApiException if any exception occurs
* @deprecated As of release 4.11.5, replaced by {@link #getAllRunners(Runner.RunnerType, Runner.RunnerStatus, int, int)}
*/ */
public Pager<Runner> getAllRunners(int itemsPerPage) throws GitLabApiException { @Deprecated
return getAllRunners(null, itemsPerPage); public List<Runner> getAllRunners(RunnerStatus scope, int page, int perPage) throws GitLabApiException {
GitLabApiForm formData = new GitLabApiForm(page, perPage).withParam("scope", scope, false);
Response response = get(Response.Status.OK, formData.asMap(), "runners", "all");
return (response.readEntity(new GenericType<List<Runner>>() {}));
} }
/** /**
...@@ -238,10 +369,27 @@ public class RunnersApi extends AbstractApi { ...@@ -238,10 +369,27 @@ public class RunnersApi extends AbstractApi {
* @param itemsPerPage The number of Runner instances that will be fetched per page * @param itemsPerPage The number of Runner instances that will be fetched per page
* @return a Pager containing the Runners * @return a Pager containing the Runners
* @throws GitLabApiException if any exception occurs * @throws GitLabApiException if any exception occurs
* @deprecated As of release 4.11.5, replaced by {@link #getAllRunners(Runner.RunnerType, Runner.RunnerStatus, int)}
*/ */
public Pager<Runner> getAllRunners(Runner.RunnerStatus scope, int itemsPerPage) throws GitLabApiException { @Deprecated
public Pager<Runner> getAllRunners(RunnerStatus scope, int itemsPerPage) throws GitLabApiException {
GitLabApiForm formData = new GitLabApiForm().withParam("scope", scope, false); GitLabApiForm formData = new GitLabApiForm().withParam("scope", scope, false);
return (new Pager<>(this, Runner.class, itemsPerPage, formData.asMap(), "runners")); return (new Pager<>(this, Runner.class, itemsPerPage, formData.asMap(), "runners", "all"));
}
/**
* Get a Stream of all runners in the GitLab instance (specific and shared). Access is restricted to users with admin privileges.
*
* <pre><code>GitLab Endpoint: GET /runners/all</code></pre>
*
* @param scope The scope of specific runners to show, one of: active, paused, online; showing all runners null
* @return a Stream of Runners
* @throws GitLabApiException if any exception occurs
* @deprecated As of release 4.11.5, replaced by {@link #getAllRunnersStream(Runner.RunnerType, Runner.RunnerStatus)}
*/
@Deprecated
public Stream<Runner> getAllRunnersStream(RunnerStatus scope) throws GitLabApiException {
return (getAllRunners(scope, getDefaultPerPage()).stream());
} }
/** /**
......
...@@ -18,7 +18,7 @@ public class Runner { ...@@ -18,7 +18,7 @@ public class Runner {
private String ipAddress; private String ipAddress;
/** /**
* Enum to use for RunnersApi filtering. * Enum to use for RunnersApi filtering on status.
*/ */
public enum RunnerStatus { public enum RunnerStatus {
SPECIFIC, SHARED, ACTIVE, ONLINE, PAUSED, OFFLINE; SPECIFIC, SHARED, ACTIVE, ONLINE, PAUSED, OFFLINE;
...@@ -41,6 +41,29 @@ public class Runner { ...@@ -41,6 +41,29 @@ public class Runner {
} }
} }
/**
* Enum to use for RunnersApi filtering on type.
*/
public enum RunnerType {
INSTANCE_TYPE, GROUP_TYPE, PROJECT_TYPE;
private static JacksonJsonEnumHelper<RunnerType> enumHelper =
new JacksonJsonEnumHelper<>(RunnerType.class);
@JsonCreator
public static RunnerType forValue(String value) {
return enumHelper.forValue(value);
}
@JsonValue
public String toValue() {
return (enumHelper.toString(this));
}
@Override
public String toString() {
return (enumHelper.toString(this));
}
}
public Integer getId() { public Integer getId() {
return id; return id;
......
...@@ -25,6 +25,7 @@ package org.gitlab4j.api; ...@@ -25,6 +25,7 @@ package org.gitlab4j.api;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assume.assumeTrue; import static org.junit.Assume.assumeTrue;
import java.util.Arrays; import java.util.Arrays;
...@@ -32,6 +33,8 @@ import java.util.List; ...@@ -32,6 +33,8 @@ import java.util.List;
import org.gitlab4j.api.models.Project; import org.gitlab4j.api.models.Project;
import org.gitlab4j.api.models.Runner; import org.gitlab4j.api.models.Runner;
import org.gitlab4j.api.models.Runner.RunnerStatus;
import org.gitlab4j.api.models.Runner.RunnerType;
import org.gitlab4j.api.models.RunnerDetail; import org.gitlab4j.api.models.RunnerDetail;
import org.junit.Before; import org.junit.Before;
import org.junit.BeforeClass; import org.junit.BeforeClass;
...@@ -111,7 +114,9 @@ public class TestRunnersApi extends AbstractIntegrationTest { ...@@ -111,7 +114,9 @@ public class TestRunnersApi extends AbstractIntegrationTest {
@Test @Test
public void shouldHaveRunnerDetails() throws GitLabApiException { public void shouldHaveRunnerDetails() throws GitLabApiException {
assertNotNull("Runner was not created", createRunner()); // Arrange
Runner runner = createRunner();
assertNotNull("Failed to create test runner.", runner);
List<Runner> runners = gitLabApi.getRunnersApi().getAllRunners(); List<Runner> runners = gitLabApi.getRunnersApi().getAllRunners();
assertEquals(1, runners.size()); assertEquals(1, runners.size());
...@@ -121,19 +126,30 @@ public class TestRunnersApi extends AbstractIntegrationTest { ...@@ -121,19 +126,30 @@ public class TestRunnersApi extends AbstractIntegrationTest {
@Test @Test
public void shouldDeleteRunner() throws GitLabApiException { public void shouldDeleteRunner() throws GitLabApiException {
assertNotNull("Runner was not created", createRunner()); for (int i = 0; i < 3; i++) {
assertNotNull("Runner was not created", createRunner()); Runner runner = createRunner();
assertNotNull("Runner was not created", createRunner()); assertNotNull("Failed to create test runner.", runner);
}
List<Runner> allRunners = gitLabApi.getRunnersApi().getAllRunners(); List<Runner> allRunners = gitLabApi.getRunnersApi().getAllRunners();
assertEquals(3, allRunners.size()); assertEquals(3, allRunners.size());
for (Runner runner : allRunners) { for (Runner r : allRunners) {
RunnerDetail runnerDetail = gitLabApi.getRunnersApi().getRunnerDetail(runner.getId()); RunnerDetail runnerDetail = gitLabApi.getRunnersApi().getRunnerDetail(r.getId());
gitLabApi.getRunnersApi().deleteRunner(runnerDetail.getToken()); gitLabApi.getRunnersApi().deleteRunner(runnerDetail.getToken());
} }
allRunners = gitLabApi.getRunnersApi().getAllRunners(); allRunners = gitLabApi.getRunnersApi().getAllRunners();
assertEquals(0, allRunners.size()); assertEquals(0, allRunners.size());
} }
@Test
public void shouldHavePausedRunner() throws GitLabApiException {
Runner runner = createRunner();
assertNotNull("Failed to create test runner.", runner);
List<Runner> runners = gitLabApi.getRunnersApi().getAllRunners(RunnerType.GROUP_TYPE, RunnerStatus.PAUSED);
assertTrue(runners.isEmpty());
}
} }
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment