package org.tessell.tests.model.validation.rules;
import org.junit.Before;
import org.junit.Test;
public class RuleGroupTest extends AbstractRuleTest {
private final Foo f = new Foo();
@Before
public void listenToNameAndDesc() {
listenTo(f.name);
listenTo(f.description);
listenTo(f.all);
}
@Test
public void bothInAGroupIsInValid() {
f.all.touch();
assertMessages("some invalid", "name required", "description required");
}
@Test
public void oneInAGroupIsInValid() {
f.name.set("somename");
f.all.touch();
assertMessages("some invalid", "description required");
}
@Test
public void invalidInAGroupBecomingValidUnfiresGroup() {
f.name.set("somename");
f.all.touch();
assertMessages("some invalid", "description required");
f.description.set("somedesc");
assertMessages();
}
@Test
public void validInAGroupBecomingInvalidFiresGroup() {
f.name.set("somename");
f.description.set("somedesc");
f.all.touch();
assertMessages();
f.description.set(null);
assertMessages("some invalid", "description required");
}
}