package trikita.anvil; import android.content.Context; import android.view.View; import android.view.ViewGroup; import org.junit.Test; import static junit.framework.Assert.assertEquals; import static trikita.anvil.BaseDSL.attr; import static trikita.anvil.BaseDSL.v; import static trikita.anvil.BaseDSL.xml; public class XmlTest extends Utils { private final static int ID_HEADER = 100; private final static int LAYOUT = 1; private int inflateCount = 0; public XmlTest() { Anvil.registerViewFactory(new Anvil.ViewFactory() { public View fromClass(Context c, Class<? extends View> v) { return null; } public View fromXml(ViewGroup parent, int xmlId) { if (xmlId == LAYOUT) { inflateCount++; MockLayout layout = new MockLayout(parent.getContext()); MockView header = new MockView(parent.getContext()); header.setId(ID_HEADER); layout.addView(header, 0); return layout; } return null; } }); } @Test public void testXml() { Anvil.mount(container, new Anvil.Renderable() { public void view() { xml(LAYOUT, new Anvil.Renderable() { public void view() { attr("text", "foo"); v(MockView.class, new Anvil.Renderable() { public void view() { attr("tag", "bar"); } }); } }); } }); assertEquals(1, inflateCount); MockLayout layout = (MockLayout) container.getChildAt(0); assertEquals("foo", layout.getText()); assertEquals(1, layout.getChildCount()); assertEquals(ID_HEADER, layout.getChildAt(0).getId()); assertEquals("bar", layout.getChildAt(0).getTag()); } }