mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-25 06:58:39 +00:00
Added some basic load/store tests for boats
This commit is contained in:
+123
@@ -0,0 +1,123 @@
|
||||
package com.sap.sailing.mongodb.test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import java.net.URISyntaxException;
|
||||
import java.net.UnknownHostException;
|
||||
import java.util.Collection;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import com.mongodb.DB;
|
||||
import com.mongodb.DBCollection;
|
||||
import com.mongodb.MongoException;
|
||||
import com.mongodb.WriteConcern;
|
||||
import com.sap.sailing.domain.base.Boat;
|
||||
import com.sap.sailing.domain.base.BoatClass;
|
||||
import com.sap.sailing.domain.base.DomainFactory;
|
||||
import com.sap.sailing.domain.base.impl.BoatClassImpl;
|
||||
import com.sap.sailing.domain.base.impl.BoatImpl;
|
||||
import com.sap.sailing.domain.base.impl.DomainFactoryImpl;
|
||||
import com.sap.sailing.domain.base.impl.DynamicBoat;
|
||||
import com.sap.sailing.domain.persistence.DomainObjectFactory;
|
||||
import com.sap.sailing.domain.persistence.MongoObjectFactory;
|
||||
import com.sap.sailing.domain.persistence.PersistenceFactory;
|
||||
import com.sap.sailing.domain.persistence.impl.CollectionNames;
|
||||
import com.sap.sse.common.Util;
|
||||
|
||||
public class StoreAndLoadBoatsTest extends AbstractMongoDBTest {
|
||||
private DomainFactory domainFactory;
|
||||
private final static BoatClass boatClass505 = new BoatClassImpl("505", /* typicallyStartsUpwind */ true);
|
||||
|
||||
public StoreAndLoadBoatsTest() throws UnknownHostException, MongoException {
|
||||
super();
|
||||
}
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
// clear the domainFactory competitor store for a clean start:
|
||||
domainFactory = new DomainFactoryImpl((srlid)->null);
|
||||
}
|
||||
|
||||
private void dropBoatCollection() {
|
||||
DB db = getMongoService().getDB();
|
||||
DBCollection boatCollection = db.getCollection(CollectionNames.BOATS.name());
|
||||
boatCollection.setWriteConcern(WriteConcern.SAFE); // ensure that the drop() has happened
|
||||
boatCollection.drop();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testStoreAndUpdateBoat() throws URISyntaxException {
|
||||
String sailID1 = "GER 1234";
|
||||
String sailID2 = "GER 12345";
|
||||
String boatName1 = "Hassos Boot";
|
||||
String boatName2 = "Hasso Plattners Boot";
|
||||
|
||||
MongoObjectFactory mongoObjectFactory = PersistenceFactory.INSTANCE.getMongoObjectFactory(getMongoService());
|
||||
DomainObjectFactory domainObjectFactory = PersistenceFactory.INSTANCE.getDomainObjectFactory(getMongoService(), domainFactory);
|
||||
dropBoatCollection();
|
||||
|
||||
DynamicBoat boat = (DynamicBoat) new BoatImpl("id12345", boatName1, boatClass505, sailID1);
|
||||
mongoObjectFactory.storeBoat(boat);
|
||||
|
||||
Collection<Boat> allBoats= domainObjectFactory.loadAllBoats();
|
||||
assertEquals(1, Util.size(allBoats));
|
||||
DynamicBoat loadedBoat = (DynamicBoat) allBoats.iterator().next();
|
||||
assertEquals(sailID1, loadedBoat.getSailID());
|
||||
assertEquals(boatName1, loadedBoat.getName());
|
||||
|
||||
loadedBoat.setName(boatName2);
|
||||
loadedBoat.setSailId(sailID2);
|
||||
mongoObjectFactory.storeBoat(loadedBoat);
|
||||
|
||||
allBoats = domainObjectFactory.loadAllBoats();
|
||||
assertEquals(1, Util.size(allBoats));
|
||||
loadedBoat = (DynamicBoat) allBoats.iterator().next();
|
||||
assertEquals(sailID2, loadedBoat.getSailID());
|
||||
assertEquals(boatName2, loadedBoat.getName());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testStoreAndUpdateBoatWithUUIDAsId() {
|
||||
MongoObjectFactory mongoObjectFactory = PersistenceFactory.INSTANCE.getMongoObjectFactory(getMongoService());
|
||||
DomainObjectFactory domainObjectFactory = PersistenceFactory.INSTANCE.getDomainObjectFactory(getMongoService(), domainFactory);
|
||||
dropBoatCollection();
|
||||
|
||||
DynamicBoat boat = (DynamicBoat) new BoatImpl(UUID.randomUUID(), "Hasso", boatClass505, "GER 1234");
|
||||
mongoObjectFactory.storeBoat(boat);
|
||||
assertEquals(1, Util.size(domainObjectFactory.loadAllBoats()));
|
||||
boat.setName("Hasso Plattner");
|
||||
mongoObjectFactory.storeBoat(boat);
|
||||
assertEquals(1, Util.size(domainObjectFactory.loadAllBoats()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testStoreAndRemoveBoat() {
|
||||
MongoObjectFactory mongoObjectFactory = PersistenceFactory.INSTANCE.getMongoObjectFactory(getMongoService());
|
||||
DomainObjectFactory domainObjectFactory = PersistenceFactory.INSTANCE.getDomainObjectFactory(getMongoService(), domainFactory);
|
||||
dropBoatCollection();
|
||||
|
||||
DynamicBoat boat = (DynamicBoat) new BoatImpl("id12345", "Hassos boot", boatClass505, "GER 1234");
|
||||
mongoObjectFactory.storeBoat(boat);
|
||||
assertEquals(1, Util.size(domainObjectFactory.loadAllBoats()));
|
||||
|
||||
mongoObjectFactory.removeBoat(boat);
|
||||
assertEquals(0, Util.size(domainObjectFactory.loadAllBoats()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testStoreAndRemoveCompetitorWithUUIDAsId() {
|
||||
MongoObjectFactory mongoObjectFactory = PersistenceFactory.INSTANCE.getMongoObjectFactory(getMongoService());
|
||||
DomainObjectFactory domainObjectFactory = PersistenceFactory.INSTANCE.getDomainObjectFactory(getMongoService(), domainFactory);
|
||||
dropBoatCollection();
|
||||
|
||||
DynamicBoat boat = (DynamicBoat) new BoatImpl(UUID.randomUUID(), "Hassos boot", boatClass505, "GER 1234");
|
||||
mongoObjectFactory.storeBoat(boat);
|
||||
assertEquals(1, Util.size(domainObjectFactory.loadAllBoats()));
|
||||
|
||||
mongoObjectFactory.removeBoat(boat);
|
||||
assertEquals(0, Util.size(domainObjectFactory.loadAllBoats()));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user