[Minor] fixing broken service tests

This commit is contained in:
Robert von Burg 2015-03-02 20:44:35 +01:00
parent f3d877e7a3
commit 28a6e24842
3 changed files with 32 additions and 18 deletions

View File

@ -30,6 +30,6 @@ public class XmlImportModelServiceTest extends AbstractRealmServiceTest {
XmlImportModelArgument arg = new XmlImportModelArgument(); XmlImportModelArgument arg = new XmlImportModelArgument();
arg.modelFileName = "Enums.xml"; arg.modelFileName = "Enums.xml";
runServiceInAllRealmTypes(XmlImportModelService.class, arg); runServiceInAllRealmTypes(XmlImportModelService.class, XmlImportModelResult.class, arg);
} }
} }

View File

@ -25,6 +25,7 @@ import li.strolch.agent.api.ComponentContainer;
import li.strolch.agent.api.StrolchRealm; import li.strolch.agent.api.StrolchRealm;
import li.strolch.persistence.postgresql.PostgreSqlPersistenceHandler; import li.strolch.persistence.postgresql.PostgreSqlPersistenceHandler;
import li.strolch.service.XmlImportModelArgument; import li.strolch.service.XmlImportModelArgument;
import li.strolch.service.XmlImportModelResult;
import li.strolch.service.XmlImportModelService; import li.strolch.service.XmlImportModelService;
import li.strolch.service.api.Service; import li.strolch.service.api.Service;
import li.strolch.service.api.ServiceArgument; import li.strolch.service.api.ServiceArgument;
@ -98,7 +99,7 @@ public abstract class AbstractRealmServiceTest {
arg.realm = realm; arg.realm = realm;
arg.modelFileName = "StrolchModel.xml"; arg.modelFileName = "StrolchModel.xml";
ServiceResult result = serviceHandler.doService(certificate, svc, arg); ServiceResult result = serviceHandler.doService(certificate, svc, arg);
assertServiceResult(ServiceResultState.SUCCESS, ServiceResult.class, result); assertServiceResult(ServiceResultState.SUCCESS, XmlImportModelResult.class, result);
} }
protected <T extends ServiceArgument, U extends ServiceResult> void doService(String realm, protected <T extends ServiceArgument, U extends ServiceResult> void doService(String realm,
@ -134,30 +135,42 @@ public abstract class AbstractRealmServiceTest {
} }
protected <T extends ServiceArgument, U extends ServiceResult> void runServiceInAllRealmTypes( protected <T extends ServiceArgument, U extends ServiceResult> void runServiceInAllRealmTypes(
Class<? extends Service<T, U>> svcClass, T arg, Runner before, Runner validator, Runner after) { Class<? extends Service<T, U>> svcClass, Class<?> expectedServiceResultType, T arg) {
runServiceInAllRealmTypes(svcClass, expectedServiceResultType, arg, null, null, null);
}
protected <T extends ServiceArgument, U extends ServiceResult> void runServiceInAllRealmTypes(
Class<? extends Service<T, U>> svcClass, T arg, Runner before, Runner validator, Runner after) {
runServiceInAllRealmTypes(svcClass, ServiceResult.class, arg, before, validator, after);
}
protected <T extends ServiceArgument, U extends ServiceResult> void runServiceInAllRealmTypes(
Class<? extends Service<T, U>> svcClass, Class<?> expectedServiceResultType, T arg, Runner before,
Runner validator, Runner after) {
try { try {
runTransient(svcClass.newInstance(), arg, before, validator, after); runTransient(expectedServiceResultType, svcClass.newInstance(), arg, before, validator, after);
runCached(svcClass.newInstance(), arg, before, validator, after); runCached(expectedServiceResultType, svcClass.newInstance(), arg, before, validator, after);
runTransactional(svcClass.newInstance(), arg, before, validator, after); runTransactional(expectedServiceResultType, svcClass.newInstance(), arg, before, validator, after);
} catch (InstantiationException | IllegalAccessException e) { } catch (InstantiationException | IllegalAccessException e) {
throw new RuntimeException("Failed to instantiate class " + svcClass.getName() + ": " + e.getMessage(), e); throw new RuntimeException("Failed to instantiate class " + svcClass.getName() + ": " + e.getMessage(), e);
} }
} }
private <T extends ServiceArgument, U extends ServiceResult> void runTransactional(Service<T, U> svc, T arg, private <T extends ServiceArgument, U extends ServiceResult> void runTransactional(
Runner before, Runner validator, Runner after) { Class<?> expectedServiceResultType, Service<T, U> svc, T arg, Runner before, Runner validator, Runner after) {
doService(REALM_TRANSACTIONAL, ServiceResultState.SUCCESS, ServiceResult.class, svc, arg, before, validator, doService(REALM_TRANSACTIONAL, ServiceResultState.SUCCESS, expectedServiceResultType, svc, arg, before,
validator, after);
}
private <T extends ServiceArgument, U extends ServiceResult> void runCached(Class<?> expectedServiceResultType,
Service<T, U> svc, T arg, Runner before, Runner validator, Runner after) {
doService(REALM_CACHED, ServiceResultState.SUCCESS, expectedServiceResultType, svc, arg, before, validator,
after); after);
} }
private <T extends ServiceArgument, U extends ServiceResult> void runCached(Service<T, U> svc, T arg, private <T extends ServiceArgument, U extends ServiceResult> void runTransient(Class<?> expectedServiceResultType,
Runner before, Runner validator, Runner after) { Service<T, U> svc, T arg, Runner before, Runner validator, Runner after) {
doService(REALM_CACHED, ServiceResultState.SUCCESS, ServiceResult.class, svc, arg, before, validator, after); doService(REALM_TRANSIENT, ServiceResultState.SUCCESS, expectedServiceResultType, svc, arg, before, validator,
} after);
private <T extends ServiceArgument, U extends ServiceResult> void runTransient(Service<T, U> svc, T arg,
Runner before, Runner validator, Runner after) {
doService(REALM_TRANSIENT, ServiceResultState.SUCCESS, ServiceResult.class, svc, arg, before, validator, after);
} }
} }

View File

@ -24,6 +24,7 @@ import li.strolch.runtime.StrolchConstants;
import li.strolch.service.XmlExportModelArgument; import li.strolch.service.XmlExportModelArgument;
import li.strolch.service.XmlExportModelService; import li.strolch.service.XmlExportModelService;
import li.strolch.service.XmlImportModelArgument; import li.strolch.service.XmlImportModelArgument;
import li.strolch.service.XmlImportModelResult;
import li.strolch.service.XmlImportModelService; import li.strolch.service.XmlImportModelService;
import li.strolch.service.api.ServiceResult; import li.strolch.service.api.ServiceResult;
import li.strolch.service.api.ServiceResultState; import li.strolch.service.api.ServiceResultState;
@ -111,7 +112,7 @@ public class XmlExportServiceTest {
XmlImportModelArgument importArgument = new XmlImportModelArgument(); XmlImportModelArgument importArgument = new XmlImportModelArgument();
importArgument.modelFileName = modelFileName; importArgument.modelFileName = modelFileName;
ServiceResult result = runtimeMock.getServiceHandler().doService(certificate, importService, importArgument); ServiceResult result = runtimeMock.getServiceHandler().doService(certificate, importService, importArgument);
RuntimeMock.assertServiceResult(ServiceResultState.SUCCESS, ServiceResult.class, result); RuntimeMock.assertServiceResult(ServiceResultState.SUCCESS, XmlImportModelResult.class, result);
} }
private void assertNumberOfFilesCreated(final String modelFileName, int nrOfExpectedFiles) { private void assertNumberOfFilesCreated(final String modelFileName, int nrOfExpectedFiles) {