package org.jtwig.resource.loader; import com.google.common.base.Optional; import com.google.common.base.Supplier; import org.jtwig.resource.exceptions.ResourceNotFoundException; import org.junit.Before; import org.junit.Test; import java.io.InputStream; import java.net.URL; import java.nio.charset.Charset; import java.util.HashMap; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.is; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; public class InMemoryResourceLoaderTest { private final HashMap<String, Supplier<InputStream>> resources = new HashMap<>(); private InMemoryResourceLoader underTest = new InMemoryResourceLoader(resources); @Before public void setUp() throws Exception { resources.clear(); } @Test public void charset() throws Exception { Optional<Charset> result = underTest.getCharset("path"); assertThat(result.isPresent(), is(false)); } @Test public void existsFalse() throws Exception { boolean result = underTest.exists("blah"); assertThat(result, is(false)); } @Test public void existsTrue() throws Exception { resources.put("a", mock(Supplier.class)); boolean result = underTest.exists("a"); assertThat(result, is(true)); } @Test public void toUrl() throws Exception { Optional<URL> result = underTest.toUrl("a"); assertThat(result.isPresent(), is(false)); } @Test public void loadFound() throws Exception { InputStream inputStream = mock(InputStream.class); Supplier<InputStream> supplier = mock(Supplier.class); resources.put("a", supplier); when(supplier.get()).thenReturn(inputStream); InputStream result = underTest.load("a"); assertThat(result, is(inputStream)); } @Test(expected = ResourceNotFoundException.class) public void loadNotFound() throws Exception { underTest.load("a"); } }