[DS-3762] added more clauses to the metadatafield tests

This commit is contained in:
Raf Ponsaerts
2017-12-01 16:28:52 +01:00
committed by Tom Desair
parent f4b6b5d480
commit 00d3e095fb
2 changed files with 27 additions and 1 deletions

View File

@@ -7,6 +7,7 @@
*/ */
package org.dspace.app.rest; package org.dspace.app.rest;
import org.dspace.app.rest.matcher.MetadataFieldMatcher;
import org.dspace.app.rest.test.AbstractControllerIntegrationTest; import org.dspace.app.rest.test.AbstractControllerIntegrationTest;
import org.hamcrest.Matchers; import org.hamcrest.Matchers;
import org.junit.Test; import org.junit.Test;
@@ -24,10 +25,13 @@ public class MetadatafieldRestRepositoryIT extends AbstractControllerIntegration
getClient().perform(get("/api/core/metadatafields")) getClient().perform(get("/api/core/metadatafields"))
.andExpect(status().isOk()) .andExpect(status().isOk())
.andExpect(content().contentType(contentType)) .andExpect(content().contentType(contentType))
.andExpect(jsonPath("$._embedded.metadatafields[0].type", Matchers.is("metadatafield"))) .andExpect(jsonPath("$._embedded.metadatafields", Matchers.hasItem(
MetadataFieldMatcher.matchMetadataField()
)))
.andExpect(jsonPath("$._links.first.href", Matchers.containsString("/api/core/metadatafields"))) .andExpect(jsonPath("$._links.first.href", Matchers.containsString("/api/core/metadatafields")))
.andExpect(jsonPath("$._links.self.href", Matchers.containsString("/api/core/metadatafields"))) .andExpect(jsonPath("$._links.self.href", Matchers.containsString("/api/core/metadatafields")))
.andExpect(jsonPath("$._links.next.href", Matchers.containsString("/api/core/metadatafields"))) .andExpect(jsonPath("$._links.next.href", Matchers.containsString("/api/core/metadatafields")))
.andExpect(jsonPath("$._links.last.href", Matchers.containsString("/api/core/metadatafields"))); .andExpect(jsonPath("$._links.last.href", Matchers.containsString("/api/core/metadatafields")));
} }
} }

View File

@@ -0,0 +1,22 @@
package org.dspace.app.rest.matcher;
import org.hamcrest.Matcher;
import org.hamcrest.Matchers;
import static com.jayway.jsonpath.matchers.JsonPathMatchers.hasJsonPath;
import static org.hamcrest.Matchers.allOf;
import static org.hamcrest.Matchers.is;
public class MetadataFieldMatcher {
public static Matcher<? super Object> matchMetadataField(){
return allOf(
hasJsonPath("$.element", Matchers.not(Matchers.empty())),
hasJsonPath("$.qualifier", Matchers.not(Matchers.empty())),
hasJsonPath("$.type", is("metadatafield")),
hasJsonPath("$._embedded.schema", Matchers.not(Matchers.empty())),
hasJsonPath("$._links.schema.href", Matchers.containsString("/api/core/metadatafields")),
hasJsonPath("$._links.self.href", Matchers.containsString("/api/core/metadatafields"))
);
}
}