• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package org.robolectric.manifest;
2 
3 import com.google.common.collect.ImmutableList;
4 import javax.xml.parsers.DocumentBuilder;
5 import javax.xml.parsers.DocumentBuilderFactory;
6 import javax.xml.parsers.ParserConfigurationException;
7 import org.junit.Before;
8 import org.junit.Test;
9 import org.junit.runner.RunWith;
10 import org.junit.runners.JUnit4;
11 import org.mockito.Mock;
12 import org.mockito.MockitoAnnotations;
13 import org.robolectric.res.ResourceTable;
14 import org.w3c.dom.Element;
15 import org.w3c.dom.Node;
16 
17 /**
18  * Tests for {@link MetaData}
19  */
20 @RunWith(JUnit4.class)
21 public class MetaDataTest {
22 
23   @Mock private ResourceTable resourceProvider;
24 
25   @Before
setUp()26   public void setUp() {
27     MockitoAnnotations.initMocks(this);
28   }
29 
30   @Test(expected = RoboNotFoundException.class)
testNonExistantResource_throwsResourceNotFoundException()31   public void testNonExistantResource_throwsResourceNotFoundException() throws Exception {
32     Element metaDataElement = createMetaDataNode("aName", "@xml/non_existant_resource");
33 
34     MetaData metaData = new MetaData(ImmutableList.<Node>of(metaDataElement));
35     metaData.init(resourceProvider, "a.package");
36   }
37 
createMetaDataNode(String name, String value)38   private static Element createMetaDataNode(String name, String value) {
39     DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
40     Element metaDataElement;
41     try {
42       DocumentBuilder db = dbf.newDocumentBuilder();
43       metaDataElement = db.newDocument().createElement("meta-data");
44       metaDataElement.setAttribute("android:name", name);
45       metaDataElement.setAttribute("android:value", value);
46     } catch (ParserConfigurationException e) {
47       throw new RuntimeException(e);
48     }
49     return metaDataElement;
50   }
51 }
52