1package com.xtremelabs.robolectric.res;
2
3import static com.xtremelabs.robolectric.util.TestUtil.resourceFile;
4import static org.hamcrest.CoreMatchers.equalTo;
5import static org.junit.Assert.assertThat;
6
7import com.xtremelabs.robolectric.R;
8import org.junit.Before;
9import org.junit.Test;
10
11public class PluralResourceLoaderTest {
12    private PluralResourceLoader pluralResourceLoader;
13
14    @Before
15    public void setUp() throws Exception {
16        ResourceExtractor resourceExtractor = new ResourceExtractor();
17        resourceExtractor.addLocalRClass(R.class);
18
19        StringResourceLoader stringResourceLoader = new StringResourceLoader(resourceExtractor);
20        pluralResourceLoader = new PluralResourceLoader(resourceExtractor, stringResourceLoader);
21
22        new DocumentLoader(stringResourceLoader).loadResourceXmlDir(resourceFile("res", "values"));
23        new DocumentLoader(pluralResourceLoader).loadResourceXmlDir(resourceFile("res", "values"));
24    }
25
26    @Test
27    public void testPluralsAreResolved() throws Exception {
28        assertThat(pluralResourceLoader.getValue(R.plurals.beer, 0), equalTo("Howdy"));
29        assertThat(pluralResourceLoader.getValue(R.plurals.beer, 1), equalTo("One beer"));
30        assertThat(pluralResourceLoader.getValue(R.plurals.beer, 2), equalTo("Two beers"));
31        assertThat(pluralResourceLoader.getValue(R.plurals.beer, 3), equalTo("%d beers, yay!"));
32    }
33}
34