package org.jentrata.validation; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.*; import java.util.Properties; import javax.xml.soap.AttachmentPart; import hk.hku.cecid.piazza.commons.module.Module; import hk.hku.cecid.piazza.commons.test.PluginTest; import org.jentrata.validation.Validator; import org.jentrata.validation.ValidatorComponent; import org.junit.Test; public class ValidatorComponentTest extends PluginTest { @Test public void testValidatorComponentConfig() { Module m = new Module("modules/validator-test-module.xml"); assertThat(m.getComponent(ValidatorComponent.COMP_ID), is(instanceOf(ValidatorComponent.class))); ValidatorComponent vc = (ValidatorComponent) m.getComponent(ValidatorComponent.COMP_ID); vc.registerDefault("test", MockValidator.class, buildDefaultConfig()); Validator v = vc.getDefaultValidator("test"); assertThat(v,is(instanceOf(MockValidator.class))); } @Test public void testValidatorComponentWithContentType() { Module m = new Module("modules/validator-test-module.xml"); assertThat(m.getComponent(ValidatorComponent.COMP_ID), is(instanceOf(ValidatorComponent.class))); ValidatorComponent vc = (ValidatorComponent) m.getComponent(ValidatorComponent.COMP_ID); Properties props = buildDefaultConfig(); vc.register("test","text/plain", MockValidator.class, props); Validator v = vc.getValidator("test","text/plain"); assertThat(v,is(instanceOf(MockValidator.class))); } @Test public void testValidatorComponentDefault() { Module m = new Module("modules/validator-test-module.xml"); assertThat(m.getComponent(ValidatorComponent.COMP_ID), is(instanceOf(ValidatorComponent.class))); ValidatorComponent vc = (ValidatorComponent) m.getComponent(ValidatorComponent.COMP_ID); Properties props = buildDefaultConfig(); vc.registerDefault("test", MockValidator.class, props); Validator v = vc.getValidator("test","text/plain"); assertThat(v,is(instanceOf(MockValidator.class))); v = vc.getValidator("test", "text/xml"); assertThat(v,is(instanceOf(MockValidator.class))); } private Properties buildDefaultConfig() { Properties config = new Properties(); config.put("type", "mock"); return config; } public static class MockValidator implements Validator { public void init(Properties config) { assertThat(config.get("type").toString(),is(equalTo("mock"))); } public void validate(AttachmentPart payload) throws ValidationException { } } }