18c34ac6340e2e8adf46fb52b63380f1afb66ac03Erich Douglasspackage org.robolectric.shadows;
28c34ac6340e2e8adf46fb52b63380f1afb66ac03Erich Douglass
3851f2a9519be23c73a9e2929128179b405e2e7a6Christian Williamsimport static org.assertj.core.api.Assertions.assertThat;
4851f2a9519be23c73a9e2929128179b405e2e7a6Christian Williams
5851f2a9519be23c73a9e2929128179b405e2e7a6Christian Williamsimport java.io.File;
633f885639bd26e74fce341ec0711ba8f2a92f032Christian Williamsimport org.junit.Before;
78c34ac6340e2e8adf46fb52b63380f1afb66ac03Erich Douglassimport org.junit.Test;
8879371277af60d57148eefb24fd046a6a30e4683christianwimport org.junit.runner.RunWith;
9ceb8863e0cd0706c72351f063bc7af3c7d76d120Jonathan Gerrishimport org.robolectric.RobolectricTestRunner;
10851f2a9519be23c73a9e2929128179b405e2e7a6Christian Williamsimport org.robolectric.res.Fs;
11c99663a6be818bd37aaa7d1dd1cf4ebf96e7d65fChristian Williamsimport org.robolectric.res.FsFile;
12c99663a6be818bd37aaa7d1dd1cf4ebf96e7d65fChristian Williamsimport org.robolectric.res.Qualifiers;
13851f2a9519be23c73a9e2929128179b405e2e7a6Christian Williamsimport org.robolectric.res.ResType;
14851f2a9519be23c73a9e2929128179b405e2e7a6Christian Williamsimport org.robolectric.res.TypedResource;
15851f2a9519be23c73a9e2929128179b405e2e7a6Christian Williamsimport org.robolectric.res.XmlContext;
168c34ac6340e2e8adf46fb52b63380f1afb66ac03Erich Douglass
17ceb8863e0cd0706c72351f063bc7af3c7d76d120Jonathan Gerrish@RunWith(RobolectricTestRunner.class)
188c34ac6340e2e8adf46fb52b63380f1afb66ac03Erich Douglasspublic class ConverterTest {
198c34ac6340e2e8adf46fb52b63380f1afb66ac03Erich Douglass
20d261ada49ba98cac13cb4bd2fd13abcd9e557d6fJonathan Gerrish  private XmlContext xmlContext;
2133f885639bd26e74fce341ec0711ba8f2a92f032Christian Williams
2233f885639bd26e74fce341ec0711ba8f2a92f032Christian Williams  @Before
2333f885639bd26e74fce341ec0711ba8f2a92f032Christian Williams  public void setUp() throws Exception {
24c99663a6be818bd37aaa7d1dd1cf4ebf96e7d65fChristian Williams    FsFile xmlFile = Fs.newFile(new File("res/values/foo.xml"));
25c99663a6be818bd37aaa7d1dd1cf4ebf96e7d65fChristian Williams    Qualifiers qualifiers = Qualifiers.fromParentDir(xmlFile.getParent());
26c99663a6be818bd37aaa7d1dd1cf4ebf96e7d65fChristian Williams
27c99663a6be818bd37aaa7d1dd1cf4ebf96e7d65fChristian Williams    xmlContext = new XmlContext("", xmlFile, qualifiers);
2833f885639bd26e74fce341ec0711ba8f2a92f032Christian Williams  }
2933f885639bd26e74fce341ec0711ba8f2a92f032Christian Williams
308c34ac6340e2e8adf46fb52b63380f1afb66ac03Erich Douglass  @Test
31e61ccd3daafd83509208b20f1f07a238609f32a9Erich Douglass  public void fromCharSequence_asInt_shouldHandleSpacesInString() {
3233f885639bd26e74fce341ec0711ba8f2a92f032Christian Williams    final TypedResource<String> resource = new TypedResource<>(" 100 ", ResType.CHAR_SEQUENCE, xmlContext);
338c34ac6340e2e8adf46fb52b63380f1afb66ac03Erich Douglass    assertThat(Converter.getConverter(ResType.CHAR_SEQUENCE).asInt(resource)).isEqualTo(100);
348c34ac6340e2e8adf46fb52b63380f1afb66ac03Erich Douglass  }
35e61ccd3daafd83509208b20f1f07a238609f32a9Erich Douglass
36e61ccd3daafd83509208b20f1f07a238609f32a9Erich Douglass  @Test
37e61ccd3daafd83509208b20f1f07a238609f32a9Erich Douglass  public void fromCharSequence_asCharSequence_shouldHandleSpacesInString() {
3833f885639bd26e74fce341ec0711ba8f2a92f032Christian Williams    final TypedResource<String> resource = new TypedResource<>(" Robolectric ", ResType.CHAR_SEQUENCE, xmlContext);
39e61ccd3daafd83509208b20f1f07a238609f32a9Erich Douglass    assertThat(Converter.getConverter(ResType.CHAR_SEQUENCE).asCharSequence(resource)).isEqualTo("Robolectric");
40e61ccd3daafd83509208b20f1f07a238609f32a9Erich Douglass  }
41e61ccd3daafd83509208b20f1f07a238609f32a9Erich Douglass
42e61ccd3daafd83509208b20f1f07a238609f32a9Erich Douglass  @Test
43e61ccd3daafd83509208b20f1f07a238609f32a9Erich Douglass  public void fromColor_asInt_shouldHandleSpacesInString() {
4433f885639bd26e74fce341ec0711ba8f2a92f032Christian Williams    final TypedResource<String> resource = new TypedResource<>(" #aaaaaa ", ResType.COLOR, xmlContext);
45e61ccd3daafd83509208b20f1f07a238609f32a9Erich Douglass    assertThat(Converter.getConverter(ResType.COLOR).asInt(resource)).isEqualTo(-5592406);
46e61ccd3daafd83509208b20f1f07a238609f32a9Erich Douglass  }
47e61ccd3daafd83509208b20f1f07a238609f32a9Erich Douglass
48e61ccd3daafd83509208b20f1f07a238609f32a9Erich Douglass  @Test
49e61ccd3daafd83509208b20f1f07a238609f32a9Erich Douglass  public void fromDrawableValue_asInt_shouldHandleSpacesInString() {
5033f885639bd26e74fce341ec0711ba8f2a92f032Christian Williams    final TypedResource<String> resource = new TypedResource<>(" #aaaaaa ", ResType.DRAWABLE, xmlContext);
51e61ccd3daafd83509208b20f1f07a238609f32a9Erich Douglass    assertThat(Converter.getConverter(ResType.DRAWABLE).asInt(resource)).isEqualTo(-5592406);
52e61ccd3daafd83509208b20f1f07a238609f32a9Erich Douglass  }
53e61ccd3daafd83509208b20f1f07a238609f32a9Erich Douglass
54e61ccd3daafd83509208b20f1f07a238609f32a9Erich Douglass  @Test
55e61ccd3daafd83509208b20f1f07a238609f32a9Erich Douglass  public void fromInt_asInt_shouldHandleSpacesInString() {
5633f885639bd26e74fce341ec0711ba8f2a92f032Christian Williams    final TypedResource<String> resource = new TypedResource<>(" 100 ", ResType.INTEGER, xmlContext);
57e61ccd3daafd83509208b20f1f07a238609f32a9Erich Douglass    assertThat(Converter.getConverter(ResType.INTEGER).asInt(resource)).isEqualTo(100);
58e61ccd3daafd83509208b20f1f07a238609f32a9Erich Douglass  }
598c34ac6340e2e8adf46fb52b63380f1afb66ac03Erich Douglass}