gcube-cms-suite/geoportal-service/src/test/java/org/gcube/application/geoportal/service/UCDTests.java

77 lines
2.7 KiB
Java
Raw Normal View History

2022-03-10 18:15:10 +01:00
package org.gcube.application.geoportal.service;
import lombok.extern.slf4j.Slf4j;
import org.gcube.application.cms.serialization.Serialization;
2022-04-27 19:36:10 +02:00
import org.gcube.application.cms.tests.TestProfiles;
import org.gcube.application.cms.tests.TestSchemas;
2022-03-10 18:15:10 +01:00
import org.gcube.application.cms.tests.TokenSetter;
2022-04-27 19:36:10 +02:00
import org.gcube.application.cms.tests.model.BasicTests;
import org.gcube.application.geoportal.common.model.document.Project;
2022-03-10 18:15:10 +01:00
import org.gcube.application.geoportal.common.model.rest.QueryRequest;
import org.gcube.application.geoportal.common.model.useCaseDescriptor.UseCaseDescriptor;
import org.gcube.application.geoportal.common.rest.InterfaceConstants;
import org.gcube.application.geoportal.common.utils.tests.GCubeTest;
import org.junit.Before;
import org.junit.Test;
import javax.ws.rs.client.Entity;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.MediaType;
import java.util.Iterator;
2022-04-27 19:36:10 +02:00
import java.util.UUID;
2022-03-10 18:15:10 +01:00
import java.util.concurrent.atomic.AtomicLong;
2022-03-11 16:42:33 +01:00
import static junit.framework.TestCase.assertTrue;
2022-03-10 18:15:10 +01:00
import static org.junit.Assume.assumeTrue;
@Slf4j
public class UCDTests extends BasicServiceTestUnit{
@Before
public void setContext(){
assumeTrue(GCubeTest.isTestInfrastructureEnabled());
TokenSetter.set(GCubeTest.getContext());
}
protected WebTarget baseTarget(){
return super.target(InterfaceConstants.Methods.UCD);
}
private Iterator<UseCaseDescriptor> query(QueryRequest request) throws Exception {
String json = check(baseTarget().path(InterfaceConstants.Methods.QUERY_PATH).
request(MediaType.APPLICATION_JSON).post(Entity.entity(request,MediaType.APPLICATION_JSON)),
String.class);
try{
return Serialization.readCollection(json, UseCaseDescriptor.class);
}catch(Throwable t){
log.error("Unable to query UCD with {} ",request,t);
throw new Exception("Unable to parse collection. Check projection settings.",t);
}
}
@Test
public void queryAll() throws Exception {
QueryRequest request=new QueryRequest();
AtomicLong l = new AtomicLong();
query(request).forEachRemaining(u->l.incrementAndGet());
2022-03-11 16:42:33 +01:00
assertTrue(l.get()>0);
2022-03-10 18:15:10 +01:00
}
2022-04-27 19:36:10 +02:00
@Test
public void registerNew() throws Exception {
UseCaseDescriptor randomUCD=TestProfiles.profiles.get("basic");
randomUCD.setId(UUID.randomUUID().toString());
randomUCD.setName("Test UCD");
UseCaseDescriptor ucd =check(baseTarget().request(MediaType.APPLICATION_JSON).
post(Entity.entity(Serialization.write(randomUCD),
MediaType.APPLICATION_JSON)), UseCaseDescriptor.class);
}
2022-03-10 18:15:10 +01:00
}