package com.processpuzzle.party.artifact; import static org.hamcrest.core.IsEqual.equalTo; import static org.hamcrest.core.IsNull.notNullValue; import static org.junit.Assert.assertThat; import static org.junit.Assert.assertTrue; import java.util.List; import org.dom4j.Document; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import com.processpuzzle.address.artifact.SettlementDataLoader; import com.processpuzzle.application.configuration.domain.ProcessPuzzleContext; import com.processpuzzle.application.security.domain.User; import com.processpuzzle.application.security.domain.UserRepository; import com.processpuzzle.party.artifact.PersonDataLoader; import com.processpuzzle.party.artifact.PersonDataSheet; import com.processpuzzle.party.artifact.PersonDataSheetRepository; import com.processpuzzle.party.domain.Person; import com.processpuzzle.persistence.domain.DefaultUnitOfWork; import com.processpuzzle.sharedfixtures.domaintier.BusinessDefinitionFixture; import com.processpuzzle.sharedfixtures.domaintier.SystemArtifactsFixture; import com.processpuzzle.user_session.domain.UserRequestManager; public class PersonDataLoaderTest { private static final String personXMLSourcePath = "classpath:com/itcodex/objectpuzzle/party_management/party/artifact/TestPerson.xml"; private static final String personXMLSchemePath = "classpath:com/itcodex/objectpuzzle/party_management/party/artifact/Person.xsd"; private static final String settlementXMLSourcePath = "classpath:com/itcodex/objectpuzzle/address/settlement/artifact/TestSettlement.xml"; private static final String settlementXMLSchemePath = "classpath:com/itcodex/objectpuzzle/address/settlement/artifact/Settlement.xsd"; private static ProcessPuzzleContext applicationContext; private static PersonDataLoader dataLoader = null; private static SettlementDataLoader settlementDataLoader = null; private static BusinessDefinitionFixture businessDefinitionFixture; private static SystemArtifactsFixture systemArtifactsFixture; private static PersonDataSheetRepository personDataSheetRepository; @BeforeClass public static void beforeAllTests() throws Exception { businessDefinitionFixture = BusinessDefinitionFixture.getInstance(); businessDefinitionFixture.setUp(); applicationContext = businessDefinitionFixture.getApplicationContext(); saveCurrentUser(); systemArtifactsFixture = SystemArtifactsFixture.getInstance( applicationContext ); systemArtifactsFixture.setUp(); personDataSheetRepository = applicationContext.getRepository(PersonDataSheetRepository.class); settlementDataLoader = new SettlementDataLoader( settlementXMLSourcePath, settlementXMLSchemePath ); settlementDataLoader.loadData(); dataLoader = new PersonDataLoader( personXMLSourcePath, personXMLSchemePath ); dataLoader.loadData(); } @Before public void beforeEachTests() { } @After public void afterEachTests() { } @Test public void testLoadData_ForDocumentLoad() { Document xmlDocument = dataLoader.getDocument(); assertTrue( "XmlDataLoader reads xml in and instantiates a DOM object", xmlDocument instanceof Document ); assertTrue("The readed document has content.", xmlDocument.hasContent() ); } @Test public void loadData() throws Exception { List<PersonDataSheet> savedPersons = dataLoader.getSavedPeople(); for (PersonDataSheet savedPersonDataSheet : savedPersons) { System.out.println("PersonDataLoaderTest - savedPersonDataSheet.getName(): " + savedPersonDataSheet.getName()); DefaultUnitOfWork work = new DefaultUnitOfWork(true); PersonDataSheet reloadedPersonDataSheet = personDataSheetRepository.findById( work, savedPersonDataSheet.getId() ); assertThat(reloadedPersonDataSheet, notNullValue()); assertThat(reloadedPersonDataSheet.getPerson(), notNullValue()); assertThat(reloadedPersonDataSheet.getPerson().getName(), equalTo(savedPersonDataSheet.getName())); Person person = reloadedPersonDataSheet.getPerson(); assertThat(person.getDefaultGeographicAddress(), notNullValue()); // assertThat(person.getDefaultTelecomAddress(), notNullValue()); work.finish(); } //assertThat(dataLoader.getCountOfSavedPeople(), is(2)); } @AfterClass public static void afterAllTests() throws Exception { businessDefinitionFixture.tearDown(); } private static void saveCurrentUser() { User currentUser = UserRequestManager.getInstance().currentUser(); UserRepository userRepository = applicationContext.getRepository( UserRepository.class ); userRepository.add( currentUser ); } }