package com.processpuzzle.application.resource.domain; import static org.junit.Assert.assertThat; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.hamcrest.core.Is.*; import static org.hamcrest.core.IsEqual.*; import org.junit.After; import org.junit.Before; import org.junit.Ignore; import org.junit.Test; import org.springframework.core.io.Resource; import com.processpuzzle.application.resource.domain.DataFromResourceLoader; import com.processpuzzle.application.resource.domain.DataLoader; import com.processpuzzle.application.resource.domain.ResourceNotFoundException; import com.processpuzzle.sharedfixtures.domaintier.DomainTierTestConfiguration; public class DataFromResourceLoaderTest { private DataFromResourceLoader dataLoader = null; private String multipleSource = DomainTierTestConfiguration.TEST_XML_PATH + "," + DomainTierTestConfiguration.ANOTHER_TEST_XML_PATH; @Before public void setUp() { dataLoader = new TestDataFromResourceLoader( multipleSource ); // Note that TestDataFromResourceLoader doesn't add any functionality dataLoader.loadData(); } @Ignore @Test public void testLoadData_ForResource() { assertTrue( "DataFromResourceLoader handles resource (file) as (Spring) Resource.", dataLoader.getResource() instanceof Resource ); } @Ignore @Test public void testInstantiation_ForMultipleSource() { DataLoader nextLoader = dataLoader.getNext(); assertNotNull( "'dataLoader' has a subsequent data loader.", nextLoader ); assertTrue( "When multiple source are specified the chained loader's class are the same.", nextLoader instanceof TestDataFromResourceLoader ); } @Ignore @Test public void testLoadData_ForMultipleSource() { assertNotNull( "The whole chain is invoked.", ((DataFromResourceLoader) dataLoader.getNext()).getResource() ); } @Ignore @Test public void setResourcePath_shouldHandleMultiperResources() { // SETUP: dataLoader = new TestDataFromResourceLoader(); // EXCERCISE: dataLoader.setResourcePath( multipleSource ); // VERIFY: assertThat( dataLoader.hasNext(), is( true ) ); assertThat( dataLoader.getResourcePath(), equalTo( DomainTierTestConfiguration.TEST_XML_PATH ) ); assertThat( ((DataFromResourceLoader) dataLoader.getNext()).getResourcePath(), equalTo( DomainTierTestConfiguration.ANOTHER_TEST_XML_PATH ) ); } @Ignore @Test( expected = ResourceNotFoundException.class ) public void testLoadData_WithNoneExistingFile() { dataLoader = new TestDataFromResourceLoader( "Nonexisting file" ); dataLoader.loadData(); } @After public void tearDown() { dataLoader = null; } }