package com.hp.autonomy.frontend.find.core.configuration.export; import com.hp.autonomy.frontend.configuration.ConfigException; import com.hp.autonomy.frontend.configuration.ConfigurationComponentTest; import org.junit.Test; import org.springframework.boot.test.json.JsonContent; import org.springframework.boot.test.json.ObjectContent; import java.io.IOException; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.containsString; public class PowerPointConfigTest extends ConfigurationComponentTest<PowerPointConfig> { @Test(expected = ConfigException.class) public void invalidMargin() throws Exception { PowerPointConfig.builder() .marginLeft(1D) .build() .basicValidate(null); } @Test(expected = ConfigException.class) public void invalidMarginDifference() throws Exception { PowerPointConfig.builder() .marginLeft(0.5) .marginRight(0.5) .build() .basicValidate(null); } @Test(expected = ConfigException.class) public void nonExistentTemplate() throws Exception { PowerPointConfig.builder() .templateFile("./customTemplate.pptx") .build() .basicValidate(null); } @Override protected Class<PowerPointConfig> getType() { return PowerPointConfig.class; } @Override protected PowerPointConfig constructComponent() { return PowerPointConfig.builder() .marginLeft(0.1) .marginRight(0.1) .marginTop(0.1) .marginBottom(0.1) .build(); } @Override protected String sampleJson() throws IOException { return "{}"; } @Override protected void validateJson(final JsonContent<PowerPointConfig> jsonContent) { jsonContent.assertThat().hasJsonPathNumberValue("@.marginLeft", 0.1); jsonContent.assertThat().hasJsonPathNumberValue("@.marginRight", 0.1); jsonContent.assertThat().hasJsonPathNumberValue("@.marginTop", 0.1); jsonContent.assertThat().hasJsonPathNumberValue("@.marginBottom", 0.1); } @Override protected void validateParsedComponent(final ObjectContent<PowerPointConfig> objectContent) { objectContent.assertThat().hasFieldOrPropertyWithValue("marginLeft", null); objectContent.assertThat().hasFieldOrPropertyWithValue("marginRight", null); objectContent.assertThat().hasFieldOrPropertyWithValue("marginTop", null); objectContent.assertThat().hasFieldOrPropertyWithValue("marginBottom", null); objectContent.assertThat().hasFieldOrPropertyWithValue("templateFile", null); } @Override protected void validateMergedComponent(final ObjectContent<PowerPointConfig> objectContent) { objectContent.assertThat().hasFieldOrPropertyWithValue("marginLeft", 0.1); objectContent.assertThat().hasFieldOrPropertyWithValue("marginRight", 0.1); objectContent.assertThat().hasFieldOrPropertyWithValue("marginTop", 0.1); objectContent.assertThat().hasFieldOrPropertyWithValue("marginBottom", 0.1); } @Override protected void validateString(final String s) { assertThat(s, containsString("marginLeft")); } }