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 java.util.List; 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.CompanyDataLoader; import com.processpuzzle.party.artifact.CompanyDataSheet; import com.processpuzzle.party.artifact.CompanyDataSheetRepository; import com.processpuzzle.party.domain.Company; 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 CompanyDataLoaderTest { private static final String companyXMLSourcePath = "classpath:com/itcodex/objectpuzzle/party_management/party/artifact/TestCompany.xml"; private static final String companyXMLSchemePath = "classpath:com/itcodex/objectpuzzle/party_management/party/artifact/Company.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 CompanyDataLoader dataLoader = null; private static SettlementDataLoader settlementDataLoader = null; private static BusinessDefinitionFixture businessDefinitionFixture; private static SystemArtifactsFixture systemArtifactsFixture; private static CompanyDataSheetRepository companyDataSheetRepository; @BeforeClass public static void beforeAllTests() throws Exception { businessDefinitionFixture = BusinessDefinitionFixture.getInstance(); businessDefinitionFixture.setUp(); applicationContext = businessDefinitionFixture.getApplicationContext(); saveCurrentUser(); systemArtifactsFixture = SystemArtifactsFixture.getInstance( applicationContext ); systemArtifactsFixture.setUp(); companyDataSheetRepository = applicationContext.getRepository(CompanyDataSheetRepository.class); settlementDataLoader = new SettlementDataLoader( settlementXMLSourcePath, settlementXMLSchemePath ); settlementDataLoader.loadData(); dataLoader = new CompanyDataLoader( companyXMLSourcePath, companyXMLSchemePath ); dataLoader.loadData(); } @Before public void beforeEachTests() { } @After public void afterEachTests() { } @Test public void loadData() throws Exception { List<CompanyDataSheet> savedCompanies = dataLoader.getSavedCompanies(); for (CompanyDataSheet savedCompanyDataSheet : savedCompanies) { System.out.println("CompanyDataLoaderTest - savedCompanyDataSheet.getName(): " + savedCompanyDataSheet.getName()); DefaultUnitOfWork work = new DefaultUnitOfWork(true); CompanyDataSheet reloadedCompanyDataSheet = companyDataSheetRepository.findById( work, savedCompanyDataSheet.getId() ); assertThat(reloadedCompanyDataSheet, notNullValue()); assertThat(reloadedCompanyDataSheet.getCompany(), notNullValue()); assertThat(reloadedCompanyDataSheet.getCompany().getName(), equalTo(savedCompanyDataSheet.getName())); Company reloadedCompany = reloadedCompanyDataSheet.getCompany(); assertThat(reloadedCompany.getDefaultGeographicAddress(), notNullValue()); work.finish(); } } @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 ); } }