package io.dropwizard.configuration; import static org.assertj.core.api.Assertions.assertThat; import io.dropwizard.jackson.Jackson; public class JsonConfigurationFactoryTest extends BaseConfigurationFactoryTest { @Override public void setUp() throws Exception { this.factory = new JsonConfigurationFactory<>(Example.class, validator, Jackson.newObjectMapper(), "dw"); this.malformedFile = resourceFileName("factory-test-malformed.json"); this.emptyFile = resourceFileName("factory-test-empty.json"); this.invalidFile = resourceFileName("factory-test-invalid.json"); this.validFile = resourceFileName("factory-test-valid.json"); this.typoFile = resourceFileName("factory-test-typo.json"); this.wrongTypeFile = resourceFileName("factory-test-wrong-type.json"); this.malformedAdvancedFile = resourceFileName("factory-test-malformed-advanced.json"); } @Override public void throwsAnExceptionOnMalformedFiles() throws Exception { try { super.throwsAnExceptionOnMalformedFiles(); } catch (ConfigurationParsingException e) { assertThat(e) .hasMessageContaining("* Malformed JSON at line:"); } } @Override public void printsDetailedInformationOnMalformedContent() throws Exception { try { super.printsDetailedInformationOnMalformedContent(); } catch (ConfigurationParsingException e) { assertThat(e) .hasMessageContaining(String.format( "%s has an error:%n" + " * Malformed JSON at line: 7, column: 3; Unexpected close marker '}': expected ']'", malformedAdvancedFile.getName())); } } }