package org.deephacks.confit.test.integration;
import org.deephacks.confit.spi.BeanManager;
import org.deephacks.confit.spi.SchemaManager;
import org.deephacks.confit.test.FeatureTestsBuilder;
import java.util.ArrayList;
import java.util.List;
/**
* IntegrationTestSuiteBuilder assume impl of ConfigContext and AdminContext
* to be available on classpath during 'test' phase.
*/
public class IntegrationTestsBuilder extends FeatureTestsBuilder {
private ArrayList<Class<?>> tests = new ArrayList<>();
public static IntegrationTestsBuilder named(String name) {
IntegrationTestsBuilder builder = new IntegrationTestsBuilder();
builder.name = name;
return builder;
}
public IntegrationTestsBuilder using(BeanManager manager) {
using(BeanManager.class, manager);
return this;
}
public IntegrationTestsBuilder using(SchemaManager manager) {
using(SchemaManager.class, manager);
return this;
}
public IntegrationTestsBuilder addTest(Class<?> cls) {
tests.add(cls);
return this;
}
@Override
protected List<Class<?>> getTests() {
if( tests != null && !tests.isEmpty()) {
return tests;
}
ArrayList<Class<?>> tests = new ArrayList<>();
tests.add(IntegrationConfigTests.class);
withSetUp(new IntegrationConfigTests());
tests.add(IntegrationValidationTests.class);
withSetUp(new IntegrationValidationTests());
return tests;
}
}