package net.rrm.ehour.backup.service.restore; import net.rrm.ehour.backup.common.BackupEntityType; import net.rrm.ehour.backup.domain.ParseSession; import net.rrm.ehour.domain.User; import net.rrm.ehour.domain.UserRole; import org.junit.Before; import org.junit.Test; import javax.xml.stream.XMLEventReader; import javax.xml.stream.XMLInputFactory; import javax.xml.stream.XMLStreamException; import java.io.StringReader; import static org.junit.Assert.assertEquals; /** * @author thies (thies@te-con.nl) * Date: 11/30/10 12:31 AM */ public class UserRoleParserTest { private UserRoleParserDaoValidatorImpl daoValidator; private XMLEventReader eventReader; private UserRoleParser parser; private ParseSession status; private BackupEntityType userRoleBackupEntityType = new BackupEntityType(UserRole.class, "USER_ROLE", 0); @Before public void setUp() throws XMLStreamException { String xmlData = "<USER_TO_USERROLES>\n <USER_TO_USERROLE>\n <ROLE>ROLE_ADMIN</ROLE>\n <USER_ID>1</USER_ID>\n </USER_TO_USERROLE>\n <USER_TO_USERROLE>\n <ROLE>ROLE_REPORT</ROLE>\n <USER_ID>1</USER_ID>\n </USER_TO_USERROLE>\n <USER_TO_USERROLE>\n <ROLE>ROLE_ADMIN</ROLE>\n <USER_ID>2</USER_ID>\n </USER_TO_USERROLE>\n <USER_TO_USERROLE>\n <ROLE>ROLE_CONSULTANT</ROLE>\n <USER_ID>2</USER_ID>\n </USER_TO_USERROLE>\n <USER_TO_USERROLE>\n <ROLE>ROLE_PROJECTMANAGER</ROLE>\n <USER_ID>2</USER_ID>\n </USER_TO_USERROLE>\n <USER_TO_USERROLE>\n <ROLE>ROLE_REPORT</ROLE>\n <USER_ID>2</USER_ID>\n </USER_TO_USERROLE>\n </USER_TO_USERROLES>"; XMLInputFactory inputFactory = XMLInputFactory.newInstance(); eventReader = inputFactory.createXMLEventReader(new StringReader(xmlData)); eventReader.nextTag(); daoValidator = new UserRoleParserDaoValidatorImpl(); status = new ParseSession(); PrimaryKeyCache cache = new PrimaryKeyCache(); cache.putKey(User.class, 1, 1); cache.putKey(User.class, 2, 2); parser = new UserRoleParser(daoValidator, cache, userRoleBackupEntityType); } @Test public void shouldParseUserRoles() throws XMLStreamException { parser.parseUserRoles(eventReader, status); assertEquals(6, daoValidator.getPersistCount()); assertEquals(6, status.getInsertions().get(userRoleBackupEntityType).intValue()); } }