Fixes
This commit is contained in:
parent
ab1d97ad3b
commit
dea72bf237
|
@ -26,7 +26,7 @@ public class ConcessioniMongoManager extends MongoManager{
|
|||
super();
|
||||
// TODO Auto-generated constructor stub
|
||||
}
|
||||
private static final String collectionName="legacy-concessioni";
|
||||
private static final String collectionName="legacyConcessioni";
|
||||
private static final String DB_NAME="gna_dev";
|
||||
|
||||
|
||||
|
@ -42,8 +42,10 @@ public class ConcessioniMongoManager extends MongoManager{
|
|||
}
|
||||
|
||||
protected static Document asDocument (Concessione c) throws JsonProcessingException {
|
||||
return Document.parse(Serialization.write(c));
|
||||
|
||||
Document toReturn=Document.parse(Serialization.write(c));
|
||||
if(c.getMongo_id()!=null&&!c.getMongo_id().isEmpty())
|
||||
toReturn.append(ID, new ObjectId(c.getMongo_id()));
|
||||
return toReturn;
|
||||
}
|
||||
|
||||
protected static Concessione asConcessione (Document d) throws JsonProcessingException, IOException {
|
||||
|
@ -52,14 +54,15 @@ public class ConcessioniMongoManager extends MongoManager{
|
|||
|
||||
public Concessione registerNew(Concessione toRegister) throws IOException {
|
||||
ObjectId id=insert(asDocument(toRegister), collectionName);
|
||||
|
||||
Concessione toReturn=asConcessione(getById(id,collectionName));
|
||||
toReturn.setMongo_id(id.toHexString());
|
||||
update(asDocument(toRegister),collectionName);
|
||||
return toReturn;
|
||||
|
||||
return asConcessione(update(asDocument(toReturn),collectionName));
|
||||
}
|
||||
|
||||
public void update(Concessione toRegister) throws JsonProcessingException {
|
||||
update(asDocument(toRegister),collectionName);
|
||||
public Concessione update(Concessione toRegister) throws IOException {
|
||||
return asConcessione(update(asDocument(toRegister),collectionName));
|
||||
}
|
||||
|
||||
public List<Concessione> list(){
|
||||
|
@ -76,6 +79,7 @@ public class ConcessioniMongoManager extends MongoManager{
|
|||
}
|
||||
|
||||
public Concessione getById(String id) throws JsonProcessingException, IOException {
|
||||
log.debug("Loading by ID "+id);
|
||||
return asConcessione(getById(new ObjectId(id),collectionName));
|
||||
}
|
||||
public void deleteById(String id) {
|
||||
|
@ -87,8 +91,7 @@ public class ConcessioniMongoManager extends MongoManager{
|
|||
toReturn.setDefaults();
|
||||
toReturn.validate();
|
||||
publish(toReturn);
|
||||
update(asDocument(toReturn),collectionName);
|
||||
return toReturn;
|
||||
return asConcessione(update(asDocument(toReturn),collectionName));
|
||||
}
|
||||
|
||||
private static PublicationReport publish(Concessione c) {
|
||||
|
|
|
@ -12,6 +12,8 @@ import com.mongodb.MongoClient;
|
|||
import com.mongodb.client.FindIterable;
|
||||
import com.mongodb.client.MongoCollection;
|
||||
import com.mongodb.client.MongoDatabase;
|
||||
import com.mongodb.client.model.FindOneAndReplaceOptions;
|
||||
import com.mongodb.client.model.ReturnDocument;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
|
@ -20,7 +22,7 @@ public abstract class MongoManager {
|
|||
|
||||
protected MongoClient client=null;
|
||||
|
||||
|
||||
protected static final String ID="_id";
|
||||
|
||||
|
||||
public MongoManager() throws ConfigurationException {
|
||||
|
@ -42,16 +44,24 @@ public abstract class MongoManager {
|
|||
// NB BsonId
|
||||
protected ObjectId insert(Document proj, String collectionName) {
|
||||
MongoDatabase database=getDatabase();
|
||||
MongoCollection<Document> collection = database.getCollection(collectionName);
|
||||
collection.insertOne(Document.parse(proj.toJson()));
|
||||
return proj.getObjectId("_id");
|
||||
MongoCollection<Document> collection = database.getCollection(collectionName);
|
||||
|
||||
// Check if _id is present
|
||||
ObjectId id=proj.getObjectId(ID);
|
||||
if(id==null) {
|
||||
proj.append(ID, new ObjectId());
|
||||
id=proj.getObjectId(ID);
|
||||
}
|
||||
|
||||
|
||||
collection.insertOne(Document.parse(proj.toJson()));
|
||||
return id;
|
||||
}
|
||||
|
||||
public void delete(ObjectId id, String collectionName) {
|
||||
MongoDatabase database=getDatabase();
|
||||
MongoCollection<Document> collection = database.getCollection(collectionName);
|
||||
collection.deleteOne(eq("_id",id));
|
||||
collection.deleteOne(eq(ID,id));
|
||||
}
|
||||
|
||||
|
||||
|
@ -59,7 +69,7 @@ public abstract class MongoManager {
|
|||
public Document getById(ObjectId id,String collectionName) {
|
||||
MongoDatabase database=getDatabase();
|
||||
MongoCollection<Document> coll=database.getCollection(collectionName);
|
||||
return coll.find(new Document("_id",id)).first();
|
||||
return coll.find(new Document(ID,id)).first();
|
||||
}
|
||||
|
||||
|
||||
|
@ -82,10 +92,12 @@ public abstract class MongoManager {
|
|||
return coll.find(filter,clazz);
|
||||
}
|
||||
|
||||
public void update(Document toUpdate,String collectionName) {
|
||||
public Document update(Document toUpdate,String collectionName) {
|
||||
MongoDatabase database=getDatabase();
|
||||
MongoCollection<Document> coll=database.getCollection(collectionName);
|
||||
coll.findOneAndReplace(eq("_id",toUpdate.getObjectId("_id")), toUpdate);
|
||||
return coll.findOneAndReplace(
|
||||
eq(ID,toUpdate.getObjectId(ID)), toUpdate,new FindOneAndReplaceOptions().returnDocument(ReturnDocument.AFTER));
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -78,6 +78,8 @@ public class BasicServiceTestUnit extends JerseyTest {
|
|||
if(resp.getStatus()<200||resp.getStatus()>=300)
|
||||
throw new Exception("RESP STATUS IS "+resp.getStatus()+". Message : "+resString);
|
||||
System.out.println("Resp String is "+resString);
|
||||
return Serialization.read(resString, clazz);
|
||||
if(clazz!=null)
|
||||
return Serialization.read(resString, clazz);
|
||||
else return null;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,6 +10,7 @@ import javax.ws.rs.core.Response;
|
|||
|
||||
import org.gcube.application.geoportal.common.model.legacy.Concessione;
|
||||
import org.gcube.application.geoportal.service.utils.Serialization;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
public class ConcessioniOverMongoTest extends BasicServiceTestUnit{
|
||||
|
@ -17,6 +18,9 @@ public class ConcessioniOverMongoTest extends BasicServiceTestUnit{
|
|||
|
||||
private static final String PATH="mongo-concessioni";
|
||||
|
||||
private static final String PUBLISH_PATH="publish";
|
||||
private static final String FILES_PATH="registerFiles";
|
||||
|
||||
|
||||
@Test
|
||||
public void list() {
|
||||
|
@ -30,7 +34,85 @@ public class ConcessioniOverMongoTest extends BasicServiceTestUnit{
|
|||
Concessione conc=TestModel.prepareConcessione();
|
||||
Response resp=target.request(MediaType.APPLICATION_JSON).post(Entity.entity(Serialization.write(conc), MediaType.APPLICATION_JSON));
|
||||
Concessione c=check(resp,Concessione.class);
|
||||
Assert.assertTrue(c.getMongo_id()!=null&&!c.getMongo_id().isEmpty());
|
||||
System.out.println("ID IS "+c.getMongo_id());
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void delete() throws Exception {
|
||||
WebTarget target=target(PATH);
|
||||
Concessione conc=TestModel.prepareConcessione();
|
||||
Response resp=target.request(MediaType.APPLICATION_JSON).post(Entity.entity(Serialization.write(conc), MediaType.APPLICATION_JSON));
|
||||
Concessione c=check(resp,Concessione.class);
|
||||
System.out.println("ID IS "+c.getMongo_id());
|
||||
|
||||
Assert.assertTrue(c.getMongo_id()!=null&&!c.getMongo_id().isEmpty());
|
||||
|
||||
resp=target.path(c.getMongo_id()).request(MediaType.APPLICATION_JSON).delete();
|
||||
check(resp,null);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void getById() throws Exception {
|
||||
WebTarget target=target(PATH);
|
||||
Concessione conc=TestModel.prepareConcessione();
|
||||
Response resp=target.request(MediaType.APPLICATION_JSON).post(Entity.entity(Serialization.write(conc), MediaType.APPLICATION_JSON));
|
||||
Concessione c=check(resp,Concessione.class);
|
||||
|
||||
Assert.assertTrue(c.getMongo_id()!=null&&!c.getMongo_id().isEmpty());
|
||||
|
||||
resp=target.path(c.getMongo_id()).request(MediaType.APPLICATION_JSON).get();
|
||||
Concessione loaded=check(resp,Concessione.class);
|
||||
System.out.println("Got by ID "+loaded);
|
||||
|
||||
Assert.assertTrue(loaded.getMongo_id()!=null&&!loaded.getMongo_id().isEmpty());
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void update() throws Exception {
|
||||
WebTarget target=target(PATH);
|
||||
Concessione conc=TestModel.prepareConcessione();
|
||||
Response resp=target.request(MediaType.APPLICATION_JSON).post(Entity.entity(Serialization.write(conc), MediaType.APPLICATION_JSON));
|
||||
Concessione c=check(resp,Concessione.class);
|
||||
|
||||
resp=target.path(c.getMongo_id()).request(MediaType.APPLICATION_JSON).get();
|
||||
Concessione loaded=check(resp,Concessione.class);
|
||||
|
||||
Assert.assertTrue(c.getMongo_id()!=null&&!c.getMongo_id().isEmpty());
|
||||
System.out.println("Modifying "+loaded);
|
||||
String newTitle="Questo titolo l'ho modificato mo'";
|
||||
loaded.setNome(newTitle);
|
||||
|
||||
resp=target.request(MediaType.APPLICATION_JSON).put(Entity.entity(Serialization.write(loaded), MediaType.APPLICATION_JSON));
|
||||
Assert.assertTrue(check(resp,Concessione.class).getNome().equals(newTitle));
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void uploadFile() {
|
||||
// TODO
|
||||
}
|
||||
|
||||
@Test
|
||||
public void publish() throws Exception {
|
||||
WebTarget target=target(PATH);
|
||||
Concessione conc=TestModel.prepareConcessione();
|
||||
Response resp=target.request(MediaType.APPLICATION_JSON).post(Entity.entity(Serialization.write(conc), MediaType.APPLICATION_JSON));
|
||||
Concessione c=check(resp,Concessione.class);
|
||||
// System.out.println("ID IS "+c.getMongo_id());
|
||||
resp=target.path(c.getMongo_id()).request(MediaType.APPLICATION_JSON).get();
|
||||
Concessione loaded=check(resp,Concessione.class);
|
||||
System.out.println("Modifying "+loaded);
|
||||
String newTitle="Questo titolo l'ho modificato mo'";
|
||||
loaded.setNome(newTitle);
|
||||
|
||||
resp=target.path(PUBLISH_PATH).path(c.getMongo_id()).request(MediaType.APPLICATION_JSON).
|
||||
put(Entity.entity(Serialization.write(conc), MediaType.APPLICATION_JSON));
|
||||
|
||||
// TODO Validation
|
||||
// Assert.assertTrue(check(resp,Concessione.class).getNome().equals(newTitle));
|
||||
}
|
||||
}
|
||||
|
|
Reference in New Issue