// Path: src/robolectric2-test/test/com/nikhaldimann/viewselector/robolectric2/testutil/Robolectric2ViewFactory.java
// public class Robolectric2ViewFactory extends ProvidedContextViewFactory {
// 
//     public Robolectric2ViewFactory() {
//         super(Robolectric.application);
//     }
// 
// }
// 
// Path: src/test-lib/src/com/nikhaldimann/viewselector/test/abstrakt/AbstractViewSelectorAssertionsTest.java
// public abstract class AbstractViewSelectorAssertionsTest extends ViewSelectorAndroidTestCase {
// 
//     /**
//      * Fails with a RuntimeException, so we can distinguish this from planned
//      * assertion failures.
//      */
//     private void failHard() {
//         throw new RuntimeException("Failed to cause an assertion failure");
//     }
// 
//     @Test
//     public void testAssertThat() {
//         TextView view = viewFactory.createTextView();
//         assertThat(selection("TextView", view))
//             .hasSize(1)
//             .startsWith(view)
//             .endsWith(view);
//     }
// 
//     @Test
//     public void testFailingAssertThat() {
//         try {
//             assertThat(selection("TextView", viewFactory.createTextView())).isEmpty();
//             failHard();
//         } catch (AssertionError ex) {
//             // expected
//         }
//     }
// 
//     @Test
//     public void testAssertThatSelection() {
//         assertThatSelection("TextView", viewFactory.createTextView()).hasSize(1);
//     }
// 
//     @Test
//     public void testFailingAssertThatSelection() {
//         try {
//             assertThatSelection("TextView", viewFactory.createTextView()).isEmpty();
//             failHard();
//         } catch (AssertionError ex) {
//             // expected
//         }
//     }
// 
//     @Test
//     public void testExtractAttribute() {
//         TextView view = viewFactory.createTextView();
//         view.setText("foo");
//         assertThat(extractAttribute("text").from(selection("TextView", view)))
//             .containsExactly("foo");
//     }
// 
// }
// 
// 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.robolectric2.testutil.Robolectric2ViewFactory;
import com.nikhaldimann.viewselector.test.abstrakt.AbstractViewSelectorAssertionsTest;
import com.nikhaldimann.viewselector.test.util.ViewFactory;
import org.robolectric.RobolectricTestRunner;
package com.nikhaldimann.viewselector.robolectric2;



@RunWith(RobolectricTestRunner.class)
public class ViewSelectorAssertionsTest extends AbstractViewSelectorAssertionsTest {

    protected ViewFactory createViewFactory() {
// Path: src/robolectric2-test/test/com/nikhaldimann/viewselector/robolectric2/testutil/Robolectric2ViewFactory.java
// public class Robolectric2ViewFactory extends ProvidedContextViewFactory {
// 
//     public Robolectric2ViewFactory() {
//         super(Robolectric.application);
//     }
// 
// }
// 
// Path: src/test-lib/src/com/nikhaldimann/viewselector/test/abstrakt/AbstractViewSelectorAssertionsTest.java
// public abstract class AbstractViewSelectorAssertionsTest extends ViewSelectorAndroidTestCase {
// 
//     /**
//      * Fails with a RuntimeException, so we can distinguish this from planned
//      * assertion failures.
//      */
//     private void failHard() {
//         throw new RuntimeException("Failed to cause an assertion failure");
//     }
// 
//     @Test
//     public void testAssertThat() {
//         TextView view = viewFactory.createTextView();
//         assertThat(selection("TextView", view))
//             .hasSize(1)
//             .startsWith(view)
//             .endsWith(view);
//     }
// 
//     @Test
//     public void testFailingAssertThat() {
//         try {
//             assertThat(selection("TextView", viewFactory.createTextView())).isEmpty();
//             failHard();
//         } catch (AssertionError ex) {
//             // expected
//         }
//     }
// 
//     @Test
//     public void testAssertThatSelection() {
//         assertThatSelection("TextView", viewFactory.createTextView()).hasSize(1);
//     }
// 
//     @Test
//     public void testFailingAssertThatSelection() {
//         try {
//             assertThatSelection("TextView", viewFactory.createTextView()).isEmpty();
//             failHard();
//         } catch (AssertionError ex) {
//             // expected
//         }
//     }
// 
//     @Test
//     public void testExtractAttribute() {
//         TextView view = viewFactory.createTextView();
//         view.setText("foo");
//         assertThat(extractAttribute("text").from(selection("TextView", view)))
//             .containsExactly("foo");
//     }
// 
// }
// 
// Path: src/test-lib/src/com/nikhaldimann/viewselector/test/util/ViewFactory.java
// public interface ViewFactory {
// 
//     TextView createTextView();
// 
//     LinearLayout createLinearLayout();
// 
//     FrameLayout createFrameLayout();
// 
// }


// Path: src/robolectric2-test/test/com/nikhaldimann/viewselector/robolectric2/ViewSelectorAssertionsTest.java
import org.junit.runner.RunWith;
import com.nikhaldimann.viewselector.robolectric2.testutil.Robolectric2ViewFactory;
import com.nikhaldimann.viewselector.test.abstrakt.AbstractViewSelectorAssertionsTest;
import com.nikhaldimann.viewselector.test.util.ViewFactory;
import org.robolectric.RobolectricTestRunner;

package com.nikhaldimann.viewselector.robolectric2;



@RunWith(RobolectricTestRunner.class)
public class ViewSelectorAssertionsTest extends AbstractViewSelectorAssertionsTest {

    protected ViewFactory createViewFactory() {
        return new Robolectric2ViewFactory();