package net.rrm.ehour.backup.service.restore; import net.rrm.ehour.backup.domain.ImportException; import net.rrm.ehour.backup.domain.ParseSession; import net.rrm.ehour.config.ConfigurationItem; import net.rrm.ehour.domain.Configuration; import net.rrm.ehour.persistence.config.dao.ConfigurationDao; import org.junit.Test; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import javax.xml.stream.XMLEventReader; import javax.xml.stream.XMLInputFactory; import java.io.StringReader; import static org.mockito.Mockito.when; /** * Created by IntelliJ IDEA. * User: thies * Date: 1/16/11 * Time: 2:14 AM * To change this template use File | Settings | File Templates. */ public class XmlParserTest { private XMLEventReader eventReader; @Mock private ConfigurationDao configurationDao; @Test public void shouldMatch084On083() throws Exception { MockitoAnnotations.initMocks(this); Configuration config = new Configuration("version", "0.8.4"); when(configurationDao.findById(ConfigurationItem.VERSION.getDbField())).thenReturn(config); String xmlData = "<?xml version=\"1.0\" ?>\n<EHOUR DB_VERSION=\"0.8.3\"></EHOUR>"; XMLInputFactory inputFactory = XMLInputFactory.newInstance(); eventReader = inputFactory.createXMLEventReader(new StringReader(xmlData)); ParseContext ctx = new ParseContext(configurationDao, null, null, null, null, false); XmlParser importer = new XmlParser(ctx); importer.parseXml(new ParseSession(), eventReader); } @Test(expected = ImportException.class) public void shouldNotMatch084On081() throws Exception { MockitoAnnotations.initMocks(this); Configuration config = new Configuration("version", "0.8.4"); when(configurationDao.findById(ConfigurationItem.VERSION.getDbField())).thenReturn(config); String xmlData = "<?xml version=\"1.0\" ?>\n<EHOUR DB_VERSION=\"0.8.1\"></EHOUR>"; XMLInputFactory inputFactory = XMLInputFactory.newInstance(); eventReader = inputFactory.createXMLEventReader(new StringReader(xmlData)); ParseContext ctx = new ParseContext(configurationDao, null, null, null, null, false); XmlParser importer = new XmlParser(ctx); importer.parseXml(new ParseSession(), eventReader); } }