| package com.xtremelabs.robolectric.res; |
| |
| import com.xtremelabs.robolectric.R; |
| import com.xtremelabs.robolectric.WithTestDefaultsRunner; |
| import org.junit.Before; |
| import org.junit.Test; |
| import org.junit.runner.RunWith; |
| |
| import java.io.BufferedReader; |
| import java.io.IOException; |
| import java.io.InputStream; |
| import java.io.InputStreamReader; |
| import java.io.Reader; |
| import java.io.StringWriter; |
| import java.io.Writer; |
| |
| import static com.xtremelabs.robolectric.util.TestUtil.resourceFile; |
| import static org.junit.Assert.assertEquals; |
| |
| @RunWith(WithTestDefaultsRunner.class) |
| public class RawResourceLoaderTest { |
| |
| private RawResourceLoader rawResourceLoader; |
| |
| @Before public void setUp() throws Exception { |
| ResourceExtractor resourceExtractor = new ResourceExtractor(); |
| resourceExtractor.addLocalRClass(R.class); |
| rawResourceLoader = new RawResourceLoader(resourceExtractor, resourceFile("res")); |
| } |
| |
| @Test |
| public void shouldReturnRawResourcesWithExtensions() throws Exception { |
| InputStream is = rawResourceLoader.getValue(R.raw.raw_resource); |
| assertEquals("raw txt file contents", readString(is)); |
| } |
| |
| @Test |
| public void shouldReturnRawResourcesWithoutExtensions() throws Exception { |
| InputStream is = rawResourceLoader.getValue(R.raw.raw_no_ext); |
| assertEquals("no ext file contents", readString(is)); |
| } |
| |
| private static String readString(InputStream is) throws IOException { |
| Writer writer = new StringWriter(); |
| char[] buffer = new char[1024]; |
| try { |
| Reader reader = new BufferedReader(new InputStreamReader(is, "UTF-8")); |
| int n; |
| while ((n = reader.read(buffer)) != -1) { |
| writer.write(buffer, 0, n); |
| } |
| } finally { |
| is.close(); |
| } |
| return writer.toString(); |
| } |
| } |