ckan2zenodo-library/src/test/java/org/gcube/data/publishing/ckan2zenodo/TestCommons.java

78 lines
3.0 KiB
Java
Raw Normal View History

2022-03-01 17:39:43 +01:00
package org.gcube.data.publishing.ckan2zenodo;
2019-12-02 18:02:11 +01:00
import java.io.IOException;
2021-03-08 17:12:28 +01:00
import java.io.PrintStream;
2019-12-02 18:02:11 +01:00
import java.nio.file.Files;
import java.nio.file.Paths;
2020-06-25 17:12:55 +02:00
import java.util.HashMap;
import java.util.Map;
2019-12-02 18:02:11 +01:00
2019-12-05 11:56:51 +01:00
import org.gcube.data.publishing.ckan2zenodo.model.CkanItemDescriptor;
2020-07-06 15:50:51 +02:00
import org.gcube.data.publishing.ckan2zenodo.model.CkanResource;
2019-12-02 18:02:11 +01:00
import org.gcube.data.publishing.ckan2zenodo.model.ZenodoCredentials;
2019-12-05 11:56:51 +01:00
import org.gcube.data.publishing.ckan2zenodo.model.zenodo.ZenodoDeposition;
2019-12-02 18:02:11 +01:00
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
public class TestCommons {
static ZenodoCredentials loadCredentials() throws IOException {
String BASE_URL="https://sandbox.zenodo.org/api/";
2020-06-25 17:12:55 +02:00
String key=Files.readAllLines(Paths.get("/Users/FabioISTI/eclipse-workspace/zenodo-sandbox.key")).get(0);
2019-12-02 18:02:11 +01:00
System.out.println("Using key : "+key);
return new ZenodoCredentials(key,BASE_URL);
}
2020-06-25 17:12:55 +02:00
static Map<String,String> getDefinedMappings(){
HashMap<String,String> toReturn=new HashMap<String,String>();
toReturn.put("/blue_cloud_dataset.json", "/blue_cloud_dataset.xml");
2021-03-08 17:12:28 +01:00
toReturn.put("/blue_cloud_deliverable.json", "/blue_cloud_deliverable.xml");
2020-06-25 17:12:55 +02:00
return toReturn;
}
2019-12-02 18:02:11 +01:00
static String convertStreamToString(java.io.InputStream is) {
java.util.Scanner s = new java.util.Scanner(is).useDelimiter("\\A");
return s.hasNext() ? s.next() : "";
}
static ObjectMapper getMapper() {
ObjectMapper mapper=new ObjectMapper();
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES,false);
mapper.configure(SerializationFeature.WRITE_EMPTY_JSON_ARRAYS, false);
mapper.setSerializationInclusion(Include.NON_NULL);
return mapper;
}
2019-12-10 17:06:52 +01:00
static final ZenodoDeposition readAndTransform(String jsonFile, Translator transformer,ZenodoDeposition...depositions) throws Exception {
2021-03-08 17:12:28 +01:00
return readAndTransform(jsonFile, transformer, System.out, depositions);
}
static final ZenodoDeposition readAndTransform(String jsonFile, Translator transformer,PrintStream os, ZenodoDeposition...depositions) throws Exception {
2019-12-05 11:56:51 +01:00
try{
String json=TestCommons.convertStreamToString(TransformationTests.class.getResourceAsStream(jsonFile));
CkanItemDescriptor desc=new CkanItemDescriptor(json);
2021-03-08 17:12:28 +01:00
os.println("Going to transform : "+desc.getContent());
os.println("Result : ");
2019-12-10 17:06:52 +01:00
ZenodoDeposition dep=transformer.transform(desc, (depositions!=null&&depositions.length>0)?depositions[0]:null);
2021-03-08 17:12:28 +01:00
os.println(dep);
os.println("As JSON : ");
os.println(Fixer.fixSending(getMapper().writeValueAsString(dep)));
os.println("Filtered resources : ");
2020-07-06 15:50:51 +02:00
for(CkanResource res : transformer.filterResources(desc)) {
2021-03-08 17:12:28 +01:00
os.println("AS JSON : ");
os.println(Fixer.fixSending(getMapper().writeValueAsString(res)));
2020-07-06 15:50:51 +02:00
}
2019-12-05 11:56:51 +01:00
return dep;
}catch(Throwable t) {
throw new Exception("Errors with json file "+jsonFile,t);
}
}
2019-12-02 18:02:11 +01:00
}