Add integration test

This commit is contained in:
René Pfeuffer
2018-09-28 15:55:57 +02:00
parent e28f30fbea
commit 1440fa7b9d
3 changed files with 50 additions and 2 deletions

View File

@@ -0,0 +1,48 @@
package sonia.scm.it;
import io.restassured.RestAssured;
import org.apache.http.HttpStatus;
import org.junit.Test;
import sonia.scm.it.utils.RestUtil;
import sonia.scm.web.VndMediaType;
import static sonia.scm.it.utils.RegExMatcher.matchesPattern;
import static sonia.scm.it.utils.RestUtil.given;
public class IndexITCase {
@Test
public void shouldLinkEverythingForAdmin() {
given(VndMediaType.INDEX)
.when()
.get(RestUtil.createResourceUrl(""))
.then()
.statusCode(HttpStatus.SC_OK)
.body(
"_links.repositories.href", matchesPattern(".+/repositories/"),
"_links.users.href", matchesPattern(".+/users/"),
"_links.groups.href", matchesPattern(".+/groups/"),
"_links.config.href", matchesPattern(".+/config"),
"_links.gitConfig.href", matchesPattern(".+/config/git"),
"_links.hgConfig.href", matchesPattern(".+/config/hg"),
"_links.svnConfig.href", matchesPattern(".+/config/svn")
);
}
@Test
public void shouldCreateLoginLinksForAnonymousAccess() {
RestAssured.given() // do not specify user credentials
.when()
.get(RestUtil.createResourceUrl(""))
.then()
.statusCode(HttpStatus.SC_OK)
.body(
"_links.formLogin.href", matchesPattern(".+/auth/.+")
);
}
}

View File

@@ -24,6 +24,6 @@ public class RegExMatcher extends BaseMatcher<String> {
@Override @Override
public boolean matches(Object o) { public boolean matches(Object o) {
return Pattern.compile(pattern).matcher(o.toString()).matches(); return o != null && Pattern.compile(pattern).matcher(o.toString()).matches();
} }
} }

View File

@@ -32,7 +32,7 @@ public class IndexDtoGenerator {
builder.single(Link.link("groups", resourceLinks.groupCollection().self())); builder.single(Link.link("groups", resourceLinks.groupCollection().self()));
} }
if (ConfigurationPermissions.list().isPermitted()) { if (ConfigurationPermissions.list().isPermitted()) {
builder.single(Link.link("configuration", resourceLinks.config().self())); builder.single(Link.link("config", resourceLinks.config().self()));
} }
builder.single(Link.link("repositories", resourceLinks.repositoryCollection().self())); builder.single(Link.link("repositories", resourceLinks.repositoryCollection().self()));
} else { } else {