package com.processpuzzle.address.artifact; import static org.hamcrest.core.IsEqual.equalTo; import static org.junit.Assert.assertThat; import java.util.ArrayList; import java.util.List; import org.junit.Ignore; import org.junit.Test; import com.processpuzzle.address.artifact.SettlementDataLoader; import com.processpuzzle.address.domain.Country; import com.processpuzzle.address.domain.District; import com.processpuzzle.address.domain.Settlement; import com.processpuzzle.address.domain.SettlementRepository; import com.processpuzzle.address.domain.ZipCode; import com.processpuzzle.litest.template.DataLoaderTestTemplate; import com.processpuzzle.persistence.domain.DefaultUnitOfWork; import com.processpuzzle.sharedfixtures.domaintier.DomainTierTestConfiguration; public class SettlementDataLoaderTest extends DataLoaderTestTemplate<SettlementDataLoader> { 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 SettlementRepository settlementRepository; private static List<Settlement> savedSettlement = new ArrayList<Settlement>(); public SettlementDataLoaderTest() { super( DomainTierTestConfiguration.APPLICATION_CONFIGURATION_DESCRIPTOR_PATH ); settlementRepository = applicationContext.getRepository( SettlementRepository.class ); dataLoader = new SettlementDataLoader( settlementXMLSourcePath, settlementXMLSchemePath ); dataLoader.loadData(); } @Ignore @Test public void loadData() throws Exception { savedSettlement = dataLoader.getSavedSettlements(); for( Settlement savedSettl : savedSettlement ){ DefaultUnitOfWork work = new DefaultUnitOfWork( true ); Country country = savedSettl.getCountry(); assertThat( databaseSpy.retrieveColumnFromRow( "T_SETTLEMENT", savedSettl.getId(), Integer.class, "COUNTRY_ID" ), equalTo( country.getId() ) ); savedSettl = settlementRepository.findSettlementById( work, savedSettl.getId() ); for( ZipCode zip : savedSettl.getZipCodes() ){ assertThat( databaseSpy.retrieveColumnFromRow( "T_ZIP_CODE", zip.getId(), Integer.class, "SETTLEMENT_ID" ), equalTo( savedSettl.getId() ) ); } for( District district : savedSettl.getDistricts() ){ assertThat( databaseSpy.retrieveColumnFromRow( "T_DISTRICT", district.getId(), Integer.class, "SETTLEMENT_ID" ), equalTo( savedSettl.getId() ) ); for( ZipCode zip : district.getZipCodes() ){ assertThat( databaseSpy.retrieveColumnFromRow( "T_ZIP_CODE", zip.getId(), Integer.class, "DISTRICT_ID" ), equalTo( district.getId() ) ); } } work.finish(); } } }