package org.tessell.tests.model.properties; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; import static org.tessell.model.properties.NewProperty.stringProperty; import org.junit.Test; import org.tessell.model.properties.StringProperty; import org.tessell.tests.model.validation.rules.AbstractRuleTest; public class StringPropertyTest extends AbstractRuleTest { @Test public void maxCreatesARule() { final StringProperty p = stringProperty("p").max(2); listenTo(p); p.set("abc"); assertMessages("P must be less than 2"); p.set("ab"); assertMessages(""); } @Test public void lenCreatesARule() { final StringProperty p = stringProperty("p").len(2, 5); listenTo(p); p.set("123456"); assertMessages("P must be between 2 and 5"); p.set("1"); assertMessages("P must be between 2 and 5"); p.set("12"); assertMessages(""); } @Test public void lenSetsMaxLength() { final StringProperty p = stringProperty("p").len(2, 5); assertThat(p.getMaxLength(), is(5)); } @Test public void regexMatches() { final StringProperty p = stringProperty("p").regex("[a-z]", "did not match"); listenTo(p); p.set("a"); assertMessages(""); } @Test public void regexDoesNotMatch() { final StringProperty p = stringProperty("p").regex("[a-z]", "did not match"); listenTo(p); p.set("1"); assertMessages("did not match"); } }