package com.googlecode.zohhak.internal;
import static org.assertj.core.api.Assertions.assertThat;
import org.junit.Test;
import org.junit.runner.Result;
import org.junit.runner.RunWith;
import com.googlecode.zohhak.api.Configure;
import com.googlecode.zohhak.api.DefaultConfiguration;
import com.googlecode.zohhak.api.TestWith;
import com.googlecode.zohhak.api.runners.ZohhakRunner;
import com.googlecode.zohhak.helper.ConstantConfiguration.ConstantCoercer;
import com.googlecode.zohhak.testutils.JUnitLauncher;
@RunWith(ZohhakRunner.class)
@Configure(coercers={}, separator="1")
public class ConfigurationResolverTest {
@TestWith(configuration=DefaultConfiguration.class, value={
"1, 2"
})
public void configMergeTest(int i, int j) {}
@TestWith(configuration=DefaultConfiguration.class, coercers=ConstantCoercer.class, inheritCoercers=false,
value={"1"
})
public void overrideInlinedCoercers(int i) {
assertThat(i).isEqualTo(7);
}
@Test
public void should_fail_when_cannot_instantiate_configuration() {
Result result = JUnitLauncher.runWithZohhak(TestWithUninstantiableConfigurationSample.class);
assertThat(result.getFailures().get(0).getException())
.isInstanceOf(IllegalArgumentException.class)
.hasMessageContaining("annot instantiate configuration class")
.hasMessageContaining(UninstantiableConfiguration.class.getName());
}
}
class TestWithUninstantiableConfigurationSample {
@TestWith(value="a", configuration=UninstantiableConfiguration.class)
public void should_fail_when_cant_instantiate_configuration(String s) {}
}
class UninstantiableConfiguration extends DefaultConfiguration {
private UninstantiableConfiguration(int i) {}
}