package dnars.siebog;
import static org.junit.Assert.assertEquals;
import java.util.List;
import org.junit.Test;
import dnars.base.Statement;
import dnars.siebog.EventParser.ParsedMethod;
import dnars.siebog.annotations.BeliefAdded;
import dnars.siebog.annotations.BeliefUpdated;
public class EventParserTest {
@Test
public void testBeliefsMethods() {
DNarsAgent ag = new DNarsAgent() {
private static final long serialVersionUID = 1L;
@BeliefAdded(subj = "cat", copula = "->", pred = "animal")
public void onBeliefAdded(List<Statement> beliefs) {
}
@BeliefUpdated
public void onBeliefUpdated(List<Statement> beliefs) {
}
@SuppressWarnings("unused")
public void dummy() {
}
};
EventParser parser = new EventParser(ag);
assertAdded(parser.getAdded());
assertUpdated(parser.getUpdated());
}
@Test(expected = IllegalStateException.class)
public void testInvalidHeader() {
DNarsAgent ag = new DNarsAgent() {
private static final long serialVersionUID = 1L;
@BeliefAdded
public void invalid(String[] statements) {
}
};
new EventParser(ag);
}
private void assertAdded(List<ParsedMethod> list) {
assertEquals(1, list.size());
ParsedMethod m = list.get(0);
assertEquals("onBeliefAdded", m.ref.getName());
assertEquals("cat", m.subj);
assertEquals("->", m.copula);
assertEquals("animal", m.pred);
assertEquals(".*", m.truth);
}
private void assertUpdated(List<ParsedMethod> list) {
assertEquals(1, list.size());
ParsedMethod m = list.get(0);
assertEquals("onBeliefUpdated", m.ref.getName());
assertEquals(".*", m.subj);
assertEquals(".*", m.copula);
assertEquals(".*", m.pred);
assertEquals(".*", m.truth);
}
}