// Path: src/robolectric-test/test/com/nikhaldimann/viewselector/robolectric/testutil/RobolectricViewFactory.java
// public class RobolectricViewFactory extends ProvidedContextViewFactory {
// 
//     public RobolectricViewFactory() {
//         super(Robolectric.application);
//     }
// 
// }
// 
// Path: src/test-lib/src/com/nikhaldimann/viewselector/test/abstrakt/attributes/AbstractViewAttributesTest.java
// public abstract class AbstractViewAttributesTest extends ViewSelectorAndroidTestCase {
// 
//     @Test
//     public void testGetGetterMethodName() {
//         assertEquals("getText", ViewAttributes.getGetterMethodName("text"));
//         assertEquals("getText", ViewAttributes.getGetterMethodName("Text"));
//         assertEquals("getFooText", ViewAttributes.getGetterMethodName("fooText"));
//     }
// 
//     @Test
//     public void testGetGetterMethodNameBooleanAttribute() {
//         assertEquals("isFoo", ViewAttributes.getGetterMethodName("isFoo"));
//         assertEquals("hasFoo", ViewAttributes.getGetterMethodName("hasFoo"));
//         assertEquals("getIs", ViewAttributes.getGetterMethodName("is"));
//         assertEquals("getIsland", ViewAttributes.getGetterMethodName("island"));
//         assertEquals("getHas", ViewAttributes.getGetterMethodName("has"));
//         assertEquals("getHash", ViewAttributes.getGetterMethodName("hash"));
//     }
// 
//     @Test
//     public void testCallGetter() {
//         TextView view = viewFactory.createTextView();
//         view.setText("foo");
//         view.setInputType(InputType.TYPE_CLASS_TEXT);
//         view.setVisibility(View.INVISIBLE);
//         assertEquals("foo", ViewAttributes.callGetter(view, "getText").toString());
//         assertEquals(null, ViewAttributes.callGetter(view, "getTag"));
//         assertEquals(InputType.TYPE_CLASS_TEXT, ViewAttributes.callGetter(view, "getInputType"));
//         assertEquals(false, ViewAttributes.callGetter(view, "isShown"));
//         // TODO need to figure out how to deal with base class methods in Robolectric
//     }
// 
//     @Test
//     public void testCallGetterNoSuchMethod() {
//         try {
//             ViewAttributes.callGetter(viewFactory.createTextView(), "getFoo");
//             fail();
//         } catch (AttributeAccessException ex) {
//             // expected
//         }
//     }
// 
// }
// 
// Path: src/test-lib/src/com/nikhaldimann/viewselector/test/util/ViewFactory.java
// public interface ViewFactory {
// 
//     TextView createTextView();
// 
//     LinearLayout createLinearLayout();
// 
//     FrameLayout createFrameLayout();
// 
// }


import org.junit.runner.RunWith;
import com.nikhaldimann.viewselector.robolectric.testutil.RobolectricViewFactory;
import com.nikhaldimann.viewselector.test.abstrakt.attributes.AbstractViewAttributesTest;
import com.nikhaldimann.viewselector.test.util.ViewFactory;
import com.xtremelabs.robolectric.RobolectricTestRunner;
package com.nikhaldimann.viewselector.robolectric.attributes;



@RunWith(RobolectricTestRunner.class)
public class ViewAttributesTest extends AbstractViewAttributesTest {

// Path: src/robolectric-test/test/com/nikhaldimann/viewselector/robolectric/testutil/RobolectricViewFactory.java
// public class RobolectricViewFactory extends ProvidedContextViewFactory {
// 
//     public RobolectricViewFactory() {
//         super(Robolectric.application);
//     }
// 
// }
// 
// Path: src/test-lib/src/com/nikhaldimann/viewselector/test/abstrakt/attributes/AbstractViewAttributesTest.java
// public abstract class AbstractViewAttributesTest extends ViewSelectorAndroidTestCase {
// 
//     @Test
//     public void testGetGetterMethodName() {
//         assertEquals("getText", ViewAttributes.getGetterMethodName("text"));
//         assertEquals("getText", ViewAttributes.getGetterMethodName("Text"));
//         assertEquals("getFooText", ViewAttributes.getGetterMethodName("fooText"));
//     }
// 
//     @Test
//     public void testGetGetterMethodNameBooleanAttribute() {
//         assertEquals("isFoo", ViewAttributes.getGetterMethodName("isFoo"));
//         assertEquals("hasFoo", ViewAttributes.getGetterMethodName("hasFoo"));
//         assertEquals("getIs", ViewAttributes.getGetterMethodName("is"));
//         assertEquals("getIsland", ViewAttributes.getGetterMethodName("island"));
//         assertEquals("getHas", ViewAttributes.getGetterMethodName("has"));
//         assertEquals("getHash", ViewAttributes.getGetterMethodName("hash"));
//     }
// 
//     @Test
//     public void testCallGetter() {
//         TextView view = viewFactory.createTextView();
//         view.setText("foo");
//         view.setInputType(InputType.TYPE_CLASS_TEXT);
//         view.setVisibility(View.INVISIBLE);
//         assertEquals("foo", ViewAttributes.callGetter(view, "getText").toString());
//         assertEquals(null, ViewAttributes.callGetter(view, "getTag"));
//         assertEquals(InputType.TYPE_CLASS_TEXT, ViewAttributes.callGetter(view, "getInputType"));
//         assertEquals(false, ViewAttributes.callGetter(view, "isShown"));
//         // TODO need to figure out how to deal with base class methods in Robolectric
//     }
// 
//     @Test
//     public void testCallGetterNoSuchMethod() {
//         try {
//             ViewAttributes.callGetter(viewFactory.createTextView(), "getFoo");
//             fail();
//         } catch (AttributeAccessException ex) {
//             // expected
//         }
//     }
// 
// }
// 
// Path: src/test-lib/src/com/nikhaldimann/viewselector/test/util/ViewFactory.java
// public interface ViewFactory {
// 
//     TextView createTextView();
// 
//     LinearLayout createLinearLayout();
// 
//     FrameLayout createFrameLayout();
// 
// }


// Path: src/robolectric-test/test/com/nikhaldimann/viewselector/robolectric/attributes/ViewAttributesTest.java
import org.junit.runner.RunWith;
import com.nikhaldimann.viewselector.robolectric.testutil.RobolectricViewFactory;
import com.nikhaldimann.viewselector.test.abstrakt.attributes.AbstractViewAttributesTest;
import com.nikhaldimann.viewselector.test.util.ViewFactory;
import com.xtremelabs.robolectric.RobolectricTestRunner;

package com.nikhaldimann.viewselector.robolectric.attributes;



@RunWith(RobolectricTestRunner.class)
public class ViewAttributesTest extends AbstractViewAttributesTest {

    protected ViewFactory createViewFactory() {