package de.lessvoid.xml.lwxs.elements;
import static org.easymock.EasyMock.createMock;
import static org.easymock.EasyMock.replay;
import static org.easymock.EasyMock.verify;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import de.lessvoid.xml.lwxs.XmlType;
import de.lessvoid.xml.xpp3.XmlParser;
public class XmlProcessorElementTest {
private XmlParser xmlParserMock;
private XmlProcessorType xmlElementProcessorMock;
@Before
public void setUp() throws Exception {
xmlParserMock = createMock(XmlParser.class);
xmlElementProcessorMock = createMock(XmlProcessorType.class);
}
@After
public void tearDown() {
verify(xmlParserMock);
verify(xmlElementProcessorMock);
}
@Test
public void testOccuresRequired() throws Exception {
xmlParserMock.required("name", xmlElementProcessorMock);
replay(xmlParserMock);
XmlType parent = createMock(XmlType.class);
replay(parent);
xmlElementProcessorMock.parentLinkSet(parent, "name");
replay(xmlElementProcessorMock);
XmlProcessorElement child = new XmlProcessorElement(xmlElementProcessorMock, "name", OccursEnum.required);
child.process(xmlParserMock, parent);
verify(parent);
}
@Test
public void testOccuresOneOrMore() throws Exception {
xmlParserMock.oneOrMore("name", xmlElementProcessorMock);
replay(xmlParserMock);
XmlType parent = createMock(XmlType.class);
replay(parent);
xmlElementProcessorMock.parentLinkAdd(parent, "name");
replay(xmlElementProcessorMock);
XmlProcessorElement child = new XmlProcessorElement(xmlElementProcessorMock, "name", OccursEnum.oneOrMore);
child.process(xmlParserMock, parent);
verify(parent);
}
@Test
public void testOccuresOptional() throws Exception {
xmlParserMock.optional("name", xmlElementProcessorMock);
replay(xmlParserMock);
XmlType parent = createMock(XmlType.class);
replay(parent);
xmlElementProcessorMock.parentLinkSet(parent, "name");
replay(xmlElementProcessorMock);
XmlProcessorElement child = new XmlProcessorElement(xmlElementProcessorMock, "name", OccursEnum.optional);
child.process(xmlParserMock, parent);
verify(parent);
}
@Test
public void testOccuresZeroOrMore() throws Exception {
xmlParserMock.zeroOrMore("name", xmlElementProcessorMock);
replay(xmlParserMock);
XmlType parent = createMock(XmlType.class);
replay(parent);
xmlElementProcessorMock.parentLinkAdd(parent, "name");
replay(xmlElementProcessorMock);
XmlProcessorElement child = new XmlProcessorElement(xmlElementProcessorMock, "name", OccursEnum.zeroOrMore);
child.process(xmlParserMock, parent);
verify(parent);
}
}