refactor AbstractServerReplicationTest to enable tests with multiple replicable services in future

This commit is contained in:
Fredrik Teschke committed 2015-02-13 20:27:23 +01:00
1 parent 4cb7b535c8
commit b4b646be1f
14 files changed
+260 -114

No files matched your search

@@ -10,43 +10,49 @@ import com.sap.sse.filestorage.impl.EmptyFileStorageServicePropertyStoreImpl;
import com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl;
import com.sap.sse.filestorage.testsupport.DummyFileStorageService;
import com.sap.sse.mongodb.MongoDBService;
import com.sap.sse.replication.testsupport.AbstractServerReplicationTest;
import com.sap.sse.replication.testsupport.AbstractServerWithSingleServiceReplicationTest;
public abstract class AbstractFileStorageManagementServiceReplicationTest extends
AbstractServerReplicationTest<FileStorageManagementService, FileStorageManagementServiceImpl> {
private MongoDBService mongoDBService;
AbstractServerWithSingleServiceReplicationTest<FileStorageManagementService, FileStorageManagementServiceImpl> {
public AbstractFileStorageManagementServiceReplicationTest() {
super(new ServerReplicationTestSetUp());
}
@Override
protected void persistenceSetUp(boolean dropDB) {
mongoDBService = MongoDBService.INSTANCE;
if (dropDB) {
private static class ServerReplicationTestSetUp extends com.sap.sse.replication.testsupport.AbstractServerReplicationTestSetUp<FileStorageManagementService, FileStorageManagementServiceImpl> {
private MongoDBService mongoDBService;
@Override
protected void persistenceSetUp(boolean dropDB) {
mongoDBService = MongoDBService.INSTANCE;
if (dropDB) {
mongoDBService.getDB().dropDatabase();
}
}
protected FileStorageManagementServiceImpl createNewService() {
return new FileStorageManagementServiceImpl(
new SingleTypeBasedServiceFinderImpl<>(new DummyFileStorageService(),
DummyFileStorageService.NAME), EmptyFileStorageServicePropertyStoreImpl.INSTANCE);
}
@Override
public FileStorageManagementServiceImpl createNewMaster() throws MalformedURLException, IOException,
InterruptedException {
FileStorageManagementServiceImpl result = createNewService();
FileStorageService serviceOnMaster = result.getAvailableFileStorageServices()[0];
result.setActiveFileStorageService(serviceOnMaster);
result.setFileStorageServiceProperty(serviceOnMaster, DummyFileStorageService.PROPERTY_NAME, "123");
return result;
}
@Override
public FileStorageManagementServiceImpl createNewReplica() {
return createNewService();
}
@Override
protected void persistenceTearDown() {
mongoDBService.getDB().dropDatabase();
}
}
protected FileStorageManagementServiceImpl createNewService() {
return new FileStorageManagementServiceImpl(
new SingleTypeBasedServiceFinderImpl<>(new DummyFileStorageService(),
DummyFileStorageService.NAME), EmptyFileStorageServicePropertyStoreImpl.INSTANCE);
}
@Override
protected FileStorageManagementServiceImpl createNewMaster() throws MalformedURLException, IOException,
InterruptedException {
FileStorageManagementServiceImpl result = createNewService();
FileStorageService serviceOnMaster = result.getAvailableFileStorageServices()[0];
result.setActiveFileStorageService(serviceOnMaster);
result.setFileStorageServiceProperty(serviceOnMaster, DummyFileStorageService.PROPERTY_NAME, "123");
return result;
}
@Override
protected FileStorageManagementServiceImpl createNewReplica() {
return createNewService();
}
@Override
protected void persistenceTearDown() {
mongoDBService.getDB().dropDatabase();
}
}