@AndroidIncompatible // Android runs ExampleDerivedInterfaceTester directly if it exists public void testBuildDeclaredTesterRequirements() throws Exception { assertEquals( FeatureUtil.buildDeclaredTesterRequirements( ExampleDerivedInterfaceTester.class.getMethod( "testRequiringTwoExplicitDerivedFeatures")), new TesterRequirements( FeatureUtil.addImpliedFeatures( Sets.<Feature<?>>newHashSet( ExampleDerivedFeature.DERIVED_FEATURE_1, ExampleDerivedFeature.DERIVED_FEATURE_2)), Collections.<Feature<?>>emptySet())); } }
@AndroidIncompatible // Android runs ExampleDerivedInterfaceTester directly if it exists public void testBuildTesterRequirements_class() throws Exception { assertEquals( FeatureUtil.buildTesterRequirements(ExampleBaseInterfaceTester.class), new TesterRequirements( Sets.<Feature<?>>newHashSet(ExampleBaseFeature.BASE_FEATURE_1), Collections.<Feature<?>>emptySet())); assertEquals( FeatureUtil.buildTesterRequirements(ExampleDerivedInterfaceTester.class), new TesterRequirements( Sets.<Feature<?>>newHashSet( ExampleBaseFeature.BASE_FEATURE_1, ExampleDerivedFeature.DERIVED_FEATURE_2), Collections.<Feature<?>>emptySet())); }
@AndroidIncompatible // Android attempts to run directly @NonTesterAnnotation @ExampleDerivedFeature.Require({ExampleDerivedFeature.DERIVED_FEATURE_2}) private static class ExampleDerivedInterfaceTester extends ExampleBaseInterfaceTester { // Exists to test that our framework doesn't run it: @SuppressWarnings("unused") @ExampleDerivedFeature.Require({ ExampleDerivedFeature.DERIVED_FEATURE_1, ExampleDerivedFeature.DERIVED_FEATURE_2 }) public void testRequiringTwoExplicitDerivedFeatures() throws Exception { doNotActuallyRunThis(); } // Exists to test that our framework doesn't run it: @SuppressWarnings("unused") @ExampleDerivedFeature.Require({ ExampleDerivedFeature.DERIVED_FEATURE_1, ExampleDerivedFeature.DERIVED_FEATURE_3 }) public void testRequiringAllThreeDerivedFeatures() { doNotActuallyRunThis(); } // Exists to test that our framework doesn't run it: @SuppressWarnings("unused") @ExampleBaseFeature.Require(absent = {ExampleBaseFeature.BASE_FEATURE_1}) public void testRequiringConflictingFeatures() throws Exception { doNotActuallyRunThis(); } }
@AndroidIncompatible // Android runs ExampleDerivedInterfaceTester directly if it exists public void testBuildTesterRequirements_method() throws Exception { assertEquals( FeatureUtil.buildTesterRequirements( ExampleDerivedInterfaceTester.class.getMethod( "testRequiringTwoExplicitDerivedFeatures")), new TesterRequirements( Sets.<Feature<?>>newHashSet( ExampleBaseFeature.BASE_FEATURE_1, ExampleDerivedFeature.DERIVED_FEATURE_1, ExampleDerivedFeature.DERIVED_FEATURE_2), Collections.<Feature<?>>emptySet())); assertEquals( FeatureUtil.buildTesterRequirements( ExampleDerivedInterfaceTester.class.getMethod("testRequiringAllThreeDerivedFeatures")), new TesterRequirements( Sets.<Feature<?>>newHashSet( ExampleBaseFeature.BASE_FEATURE_1, ExampleDerivedFeature.DERIVED_FEATURE_1, ExampleDerivedFeature.DERIVED_FEATURE_2, ExampleDerivedFeature.DERIVED_FEATURE_3), Collections.<Feature<?>>emptySet())); }
@AndroidIncompatible // Android runs ExampleDerivedInterfaceTester directly if it exists public void testBuildTesterRequirements_methodClassConflict() throws Exception { final Method method = ExampleDerivedInterfaceTester.class.getMethod("testRequiringConflictingFeatures"); try { FeatureUtil.buildTesterRequirements(method); fail("Expected ConflictingRequirementsException"); } catch (ConflictingRequirementsException e) { assertThat(e.getConflicts()).contains(ExampleBaseFeature.BASE_FEATURE_1); assertEquals(method, e.getSource()); } }
@AndroidIncompatible // Android runs ExampleDerivedInterfaceTester directly if it exists public void testBuildTesterRequirements_classClassConflict() throws Exception { try { FeatureUtil.buildTesterRequirements( ConflictingRequirementsExampleDerivedInterfaceTester.class); fail("Expected ConflictingRequirementsException"); } catch (ConflictingRequirementsException e) { assertThat(e.getConflicts()).contains(ExampleBaseFeature.BASE_FEATURE_1); assertEquals(ConflictingRequirementsExampleDerivedInterfaceTester.class, e.getSource()); } }
@AndroidIncompatible // Android runs ExampleDerivedInterfaceTester directly if it exists public void testBuildDeclaredTesterRequirements() throws Exception { assertEquals( FeatureUtil.buildDeclaredTesterRequirements( ExampleDerivedInterfaceTester.class.getMethod( "testRequiringTwoExplicitDerivedFeatures")), new TesterRequirements( FeatureUtil.addImpliedFeatures( Sets.<Feature<?>>newHashSet( ExampleDerivedFeature.DERIVED_FEATURE_1, ExampleDerivedFeature.DERIVED_FEATURE_2)), Collections.<Feature<?>>emptySet())); } }
@AndroidIncompatible // Android runs ExampleDerivedInterfaceTester directly if it exists public void testBuildTesterRequirements_class() throws Exception { assertEquals( FeatureUtil.buildTesterRequirements(ExampleBaseInterfaceTester.class), new TesterRequirements( Sets.<Feature<?>>newHashSet(ExampleBaseFeature.BASE_FEATURE_1), Collections.<Feature<?>>emptySet())); assertEquals( FeatureUtil.buildTesterRequirements(ExampleDerivedInterfaceTester.class), new TesterRequirements( Sets.<Feature<?>>newHashSet( ExampleBaseFeature.BASE_FEATURE_1, ExampleDerivedFeature.DERIVED_FEATURE_2), Collections.<Feature<?>>emptySet())); }
@AndroidIncompatible // Android attempts to run directly @NonTesterAnnotation @ExampleDerivedFeature.Require({ExampleDerivedFeature.DERIVED_FEATURE_2}) private static class ExampleDerivedInterfaceTester extends ExampleBaseInterfaceTester { // Exists to test that our framework doesn't run it: @SuppressWarnings("unused") @ExampleDerivedFeature.Require({ ExampleDerivedFeature.DERIVED_FEATURE_1, ExampleDerivedFeature.DERIVED_FEATURE_2 }) public void testRequiringTwoExplicitDerivedFeatures() throws Exception { doNotActuallyRunThis(); } // Exists to test that our framework doesn't run it: @SuppressWarnings("unused") @ExampleDerivedFeature.Require({ ExampleDerivedFeature.DERIVED_FEATURE_1, ExampleDerivedFeature.DERIVED_FEATURE_3 }) public void testRequiringAllThreeDerivedFeatures() { doNotActuallyRunThis(); } // Exists to test that our framework doesn't run it: @SuppressWarnings("unused") @ExampleBaseFeature.Require(absent = {ExampleBaseFeature.BASE_FEATURE_1}) public void testRequiringConflictingFeatures() throws Exception { doNotActuallyRunThis(); } }
@AndroidIncompatible // Android runs ExampleDerivedInterfaceTester directly if it exists public void testBuildTesterRequirements_method() throws Exception { assertEquals( FeatureUtil.buildTesterRequirements( ExampleDerivedInterfaceTester.class.getMethod( "testRequiringTwoExplicitDerivedFeatures")), new TesterRequirements( Sets.<Feature<?>>newHashSet( ExampleBaseFeature.BASE_FEATURE_1, ExampleDerivedFeature.DERIVED_FEATURE_1, ExampleDerivedFeature.DERIVED_FEATURE_2), Collections.<Feature<?>>emptySet())); assertEquals( FeatureUtil.buildTesterRequirements( ExampleDerivedInterfaceTester.class.getMethod("testRequiringAllThreeDerivedFeatures")), new TesterRequirements( Sets.<Feature<?>>newHashSet( ExampleBaseFeature.BASE_FEATURE_1, ExampleDerivedFeature.DERIVED_FEATURE_1, ExampleDerivedFeature.DERIVED_FEATURE_2, ExampleDerivedFeature.DERIVED_FEATURE_3), Collections.<Feature<?>>emptySet())); }
@AndroidIncompatible // Android runs ExampleDerivedInterfaceTester directly if it exists public void testBuildTesterRequirements_methodClassConflict() throws Exception { final Method method = ExampleDerivedInterfaceTester.class.getMethod("testRequiringConflictingFeatures"); try { FeatureUtil.buildTesterRequirements(method); fail("Expected ConflictingRequirementsException"); } catch (ConflictingRequirementsException e) { assertThat(e.getConflicts()).contains(ExampleBaseFeature.BASE_FEATURE_1); assertEquals(method, e.getSource()); } }
@AndroidIncompatible // Android runs ExampleDerivedInterfaceTester directly if it exists public void testBuildTesterRequirements_classClassConflict() throws Exception { try { FeatureUtil.buildTesterRequirements( ConflictingRequirementsExampleDerivedInterfaceTester.class); fail("Expected ConflictingRequirementsException"); } catch (ConflictingRequirementsException e) { assertThat(e.getConflicts()).contains(ExampleBaseFeature.BASE_FEATURE_1); assertEquals(ConflictingRequirementsExampleDerivedInterfaceTester.class, e.getSource()); } }