package com.captaindebug.xml.sax;
import static org.junit.Assert.assertEquals;
import java.io.ByteArrayInputStream;
import java.util.List;
import org.junit.Before;
import org.junit.Test;
import com.captaindebug.xml.sax.PizzaParser.PizzaOrder;
public class PizzaParserTest {
private static final String ORDER_XML = //
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + //
"<pizza>\n" + // 8
" <name>Capricciosa</name>\n" + //
" <base>thin</base>\n" + //
" <quantity>2</quantity>\n" + //
"</pizza>\n";
private static final String ORDER_XML_2 = //
"<?xml version=\"1.0\" encoding=\"UTF-8\"?><pizza><name>Capricciosa</name><base>thin</base><quantity>2</quantity></pizza>";
private static final String ORDER_XML_3 = //
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + //
"<pizzas>\n" + //
" <pizza>\n" + //
" <name>Capricciosa</name>\n" + //
" <base>thin</base>\n" + //
" <quantity>2</quantity>\n" + //
" </pizza>\n" + //
" <pizza>\n" + //
" <name>Margherita</name>\n" + //
" <base>thin</base>\n" + //
" <quantity>1</quantity>\n" + //
" </pizza>\n" + //
"</pizzas>";
private PizzaParser instance;
@Before
public void setUp() {
instance = new PizzaParser();
}
@Test
public void readOrderFromXML() {
List<PizzaOrder> results = instance.order(new ByteArrayInputStream(ORDER_XML.getBytes()));
assertEquals(1, results.size());
PizzaOrder result = results.get(0);
assertEquals("Capricciosa", result.getPizzaName());
assertEquals("thin", result.getBase());
assertEquals("2", result.getQuantity());
}
@Test
public void readOrderFromModifiedXML() {
List<PizzaOrder> results = instance.order(new ByteArrayInputStream(ORDER_XML_2.getBytes()));
assertEquals(1, results.size());
PizzaOrder result = results.get(0);
assertEquals("Capricciosa", result.getPizzaName());
assertEquals("thin", result.getBase());
assertEquals("2", result.getQuantity());
}
@Test
public void readOrderForMultiplePizza() {
List<PizzaOrder> results = instance.order(new ByteArrayInputStream(ORDER_XML_3.getBytes()));
PizzaOrder result = results.get(0);
assertEquals("Capricciosa", result.getPizzaName());
assertEquals("thin", result.getBase());
assertEquals("2", result.getQuantity());
result = results.get(1);
assertEquals("Margherita", result.getPizzaName());
assertEquals("thin", result.getBase());
assertEquals("1", result.getQuantity());
}
}