/** * Get the full set of requirements for a tester class. * * @param testerClass a tester class * @return all the constraints implicitly or explicitly required by the class or any of its * superclasses. * @throws ConflictingRequirementsException if the requirements are mutually inconsistent. */ public static TesterRequirements getTesterRequirements(Class<?> testerClass) throws ConflictingRequirementsException { synchronized (classTesterRequirementsCache) { TesterRequirements requirements = classTesterRequirementsCache.get(testerClass); if (requirements == null) { requirements = buildTesterRequirements(testerClass); classTesterRequirementsCache.put(testerClass, requirements); } return requirements; } }
/** * Get the full set of requirements for a tester class. * * @param testerMethod a test method of a tester class * @return all the constraints implicitly or explicitly required by the method, its declaring * class, or any of its superclasses. * @throws ConflictingRequirementsException if the requirements are mutually inconsistent. */ public static TesterRequirements getTesterRequirements(Method testerMethod) throws ConflictingRequirementsException { synchronized (methodTesterRequirementsCache) { TesterRequirements requirements = methodTesterRequirementsCache.get(testerMethod); if (requirements == null) { requirements = buildTesterRequirements(testerMethod); methodTesterRequirementsCache.put(testerMethod, requirements); } return requirements; } }
/** * Construct the set of requirements specified by annotations directly on a tester class or * method. * * @param classOrMethod a tester class or a test method thereof * @return all the constraints implicitly or explicitly required by annotations on the class or * method. * @throws ConflictingRequirementsException if the requirements are mutually inconsistent. */ public static TesterRequirements buildDeclaredTesterRequirements(AnnotatedElement classOrMethod) throws ConflictingRequirementsException { TesterRequirements requirements = new TesterRequirements(); Iterable<Annotation> testerAnnotations = getTesterAnnotations(classOrMethod); for (Annotation testerAnnotation : testerAnnotations) { TesterRequirements moreRequirements = buildTesterRequirements(testerAnnotation); incorporateRequirements(requirements, moreRequirements, testerAnnotation); } return requirements; }
@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 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()); } }
/** * Get the full set of requirements for a tester class. * @param testerMethod a test method of a tester class * @return all the constraints implicitly or explicitly required by the * method, its declaring class, or any of its superclasses. * @throws ConflictingRequirementsException if the requirements are * mutually inconsistent. */ public static TesterRequirements getTesterRequirements(Method testerMethod) throws ConflictingRequirementsException { return buildTesterRequirements(testerMethod); }
/** * Get the full set of requirements for a tester class. * * @param testerClass a tester class * @return all the constraints implicitly or explicitly required by the class or any of its * superclasses. * @throws ConflictingRequirementsException if the requirements are mutually inconsistent. */ public static TesterRequirements getTesterRequirements(Class<?> testerClass) throws ConflictingRequirementsException { synchronized (classTesterRequirementsCache) { TesterRequirements requirements = classTesterRequirementsCache.get(testerClass); if (requirements == null) { requirements = buildTesterRequirements(testerClass); classTesterRequirementsCache.put(testerClass, requirements); } return requirements; } }
/** * Get the full set of requirements for a tester class. * * @param testerMethod a test method of a tester class * @return all the constraints implicitly or explicitly required by the method, its declaring * class, or any of its superclasses. * @throws ConflictingRequirementsException if the requirements are mutually inconsistent. */ public static TesterRequirements getTesterRequirements(Method testerMethod) throws ConflictingRequirementsException { synchronized (methodTesterRequirementsCache) { TesterRequirements requirements = methodTesterRequirementsCache.get(testerMethod); if (requirements == null) { requirements = buildTesterRequirements(testerMethod); methodTesterRequirementsCache.put(testerMethod, requirements); } return requirements; } }
/** * Get the full set of requirements for a tester class. * @param testerClass a tester class * @return all the constraints implicitly or explicitly required by the class * or any of its superclasses. * @throws ConflictingRequirementsException if the requirements are mutually * inconsistent. */ public static TesterRequirements getTesterRequirements(Class<?> testerClass) throws ConflictingRequirementsException { synchronized (classTesterRequirementsCache) { TesterRequirements requirements = classTesterRequirementsCache.get(testerClass); if (requirements == null) { requirements = buildTesterRequirements(testerClass); classTesterRequirementsCache.put(testerClass, requirements); } return requirements; } }
/** * Construct the set of requirements specified by annotations directly on a tester class or * method. * * @param classOrMethod a tester class or a test method thereof * @return all the constraints implicitly or explicitly required by annotations on the class or * method. * @throws ConflictingRequirementsException if the requirements are mutually inconsistent. */ public static TesterRequirements buildDeclaredTesterRequirements(AnnotatedElement classOrMethod) throws ConflictingRequirementsException { TesterRequirements requirements = new TesterRequirements(); Iterable<Annotation> testerAnnotations = getTesterAnnotations(classOrMethod); for (Annotation testerAnnotation : testerAnnotations) { TesterRequirements moreRequirements = buildTesterRequirements(testerAnnotation); incorporateRequirements(requirements, moreRequirements, testerAnnotation); } return requirements; }
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())); }
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_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 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()); } }
public void testBuildTesterRequirements_methodClassConflict() throws Exception { final Method method = ExampleDerivedInterfaceTester.class .getMethod("testRequiringConflictingFeatures"); try { FeatureUtil.buildTesterRequirements(method); fail("Expected ConflictingRequirementsException"); } catch (ConflictingRequirementsException e) { ASSERT.that(e.getConflicts()).has().item( ExampleBaseFeature.BASE_FEATURE_1); assertEquals(method, e.getSource()); } }
public void testBuildTesterRequirements_classClassConflict() throws Exception { try { FeatureUtil.buildTesterRequirements( ExampleDerivedInterfaceTester_Conflict.class); fail("Expected ConflictingRequirementsException"); } catch (ConflictingRequirementsException e) { ASSERT.that(e.getConflicts()).has().item( ExampleBaseFeature.BASE_FEATURE_1); assertEquals(ExampleDerivedInterfaceTester_Conflict.class, e.getSource()); } }