docs/docs-web/src/test/java/com/sismics/docs/rest/TestMetadataResource.java

83 lines
3.0 KiB
Java

package com.sismics.docs.rest;
import com.sismics.util.filter.TokenBasedSecurityFilter;
import org.junit.Assert;
import org.junit.Test;
import jakarta.json.JsonArray;
import jakarta.json.JsonObject;
import jakarta.ws.rs.client.Entity;
import jakarta.ws.rs.core.Form;
/**
* Test the metadata resource.
*
* @author bgamard
*/
public class TestMetadataResource extends BaseJerseyTest {
/**
* Test the metadata resource.
*/
@Test
public void testMetadataResource() {
// Login admin
String adminToken = adminToken();
// Get all metadata with admin
JsonObject json = target().path("/metadata")
.queryParam("sort_column", "2")
.queryParam("asc", "false")
.request()
.cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminToken)
.get(JsonObject.class);
JsonArray metadata = json.getJsonArray("metadata");
Assert.assertEquals(0, metadata.size());
// Create a metadata with admin
json = target().path("/metadata").request()
.cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminToken)
.put(Entity.form(new Form()
.param("name", "ISBN 13")
.param("type", "STRING")), JsonObject.class);
String metadataIsbnId = json.getString("id");
Assert.assertNotNull(metadataIsbnId);
Assert.assertEquals("ISBN 13", json.getString("name"));
Assert.assertEquals("STRING", json.getString("type"));
// Get all metadata with admin
json = target().path("/metadata")
.queryParam("sort_column", "2")
.queryParam("asc", "false")
.request()
.cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminToken)
.get(JsonObject.class);
metadata = json.getJsonArray("metadata");
Assert.assertEquals(1, metadata.size());
// Update a metadata with admin
json = target().path("/metadata/" + metadataIsbnId).request()
.cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminToken)
.post(Entity.form(new Form()
.param("name", "ISBN 10")), JsonObject.class);
Assert.assertEquals(metadataIsbnId, json.getString("id"));
Assert.assertEquals("ISBN 10", json.getString("name"));
Assert.assertEquals("STRING", json.getString("type"));
// Delete a metadata with admin
target().path("/metadata/" + metadataIsbnId).request()
.cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminToken)
.delete(JsonObject.class);
// Get all metadata with admin
json = target().path("/metadata")
.queryParam("sort_column", "2")
.queryParam("asc", "false")
.request()
.cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminToken)
.get(JsonObject.class);
metadata = json.getJsonArray("metadata");
Assert.assertEquals(0, metadata.size());
}
}