60 lines
2.2 KiB
Java
60 lines
2.2 KiB
Java
package org.gcube.tests;
|
|
|
|
import java.io.IOException;
|
|
import java.nio.file.Files;
|
|
import java.nio.file.Paths;
|
|
|
|
import org.gcube.data.publishing.ckan2zenodo.Fixer;
|
|
import org.gcube.data.publishing.ckan2zenodo.Translator;
|
|
import org.gcube.data.publishing.ckan2zenodo.model.CkanItemDescriptor;
|
|
import org.gcube.data.publishing.ckan2zenodo.model.ZenodoCredentials;
|
|
import org.gcube.data.publishing.ckan2zenodo.model.zenodo.ZenodoDeposition;
|
|
|
|
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/";
|
|
|
|
String key=Files.readAllLines(Paths.get("/home/fabio/workspaces/zenodo.key")).get(0);
|
|
|
|
System.out.println("Using key : "+key);
|
|
return new ZenodoCredentials(key,BASE_URL);
|
|
}
|
|
|
|
|
|
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;
|
|
}
|
|
|
|
static final ZenodoDeposition readAndTransform(String jsonFile, Translator transformer,ZenodoDeposition...depositions) throws Exception {
|
|
try{
|
|
String json=TestCommons.convertStreamToString(TransformationTests.class.getResourceAsStream(jsonFile));
|
|
CkanItemDescriptor desc=new CkanItemDescriptor(json);
|
|
System.out.println("Going to transform : "+desc.getContent());
|
|
System.out.println("Result : ");
|
|
ZenodoDeposition dep=transformer.transform(desc, (depositions!=null&&depositions.length>0)?depositions[0]:null);
|
|
System.out.println(dep);
|
|
System.out.println("As JSON : ");
|
|
System.out.println(Fixer.fixSending(getMapper().writeValueAsString(dep)));
|
|
return dep;
|
|
}catch(Throwable t) {
|
|
throw new Exception("Errors with json file "+jsonFile,t);
|
|
}
|
|
}
|
|
}
|