com.google.common.collect.testing
Class FeatureSpecificTestSuiteBuilder<B extends FeatureSpecificTestSuiteBuilder<B,G>,G>

java.lang.Object
  extended by com.google.common.collect.testing.FeatureSpecificTestSuiteBuilder<B,G>
Type Parameters:
B - The concrete type of this builder (the 'self-type'). All the Builder methods of this class (such as named(java.lang.String)) return this type, so that Builder methods of more derived classes can be chained onto them without casting.
G - The type of the generator to be passed to testers in the generated test suite. An instance of G should somehow provide an instance of the class under test, plus any other information required to parameterize the test.
Direct Known Subclasses:
DerivedIteratorTestSuiteBuilder, IteratorTestSuiteBuilder, PerCollectionSizeTestSuiteBuilder

public abstract class FeatureSpecificTestSuiteBuilder<B extends FeatureSpecificTestSuiteBuilder<B,G>,G>
extends Object

Creates, based on your criteria, a JUnit test suite that exhaustively tests the object generated by a G, selecting appropriate tests by matching them against specified features.

Author:
George van den Driessche

Constructor Summary
FeatureSpecificTestSuiteBuilder()
           
 
Method Summary
protected  void checkCanCreate()
          Throw IllegalStateException if createTestSuite() can't be called yet.
 junit.framework.TestSuite createTestSuite()
          Creates a runnable JUnit test suite based on the criteria already given.
protected static String formatFeatureSet(Set<? extends Feature<?>> features)
           
 Set<Feature<?>> getFeatures()
           
 String getName()
           
protected  Runnable getSetUp()
           
 G getSubjectGenerator()
           
 Set<Method> getSuppressedTests()
           
protected  Runnable getTearDown()
           
protected abstract  List<Class<? extends AbstractTester>> getTesters()
           
protected  junit.framework.TestSuite makeSuiteForTesterClass(Class<? extends AbstractTester<?>> testerClass)
           
 B named(String name)
          Configures this builder produce a TestSuite with the given name.
protected  B self()
           
 B suppressing(Collection<Method> methods)
           
 B suppressing(Method... methods)
          Prevents the given methods from being run as part of the test suite.
protected  B usingGenerator(G subjectGenerator)
           
 B withFeatures(Feature<?>... features)
          Configures this builder to produce tests appropriate for the given features.
 B withFeatures(Iterable<? extends Feature<?>> features)
           
 B withSetUp(Runnable setUp)
           
 B withTearDown(Runnable tearDown)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FeatureSpecificTestSuiteBuilder

public FeatureSpecificTestSuiteBuilder()
Method Detail

self

protected B self()

usingGenerator

protected B usingGenerator(G subjectGenerator)

getSubjectGenerator

public G getSubjectGenerator()

withSetUp

public B withSetUp(Runnable setUp)

getSetUp

protected Runnable getSetUp()

withTearDown

public B withTearDown(Runnable tearDown)

getTearDown

protected Runnable getTearDown()

withFeatures

public B withFeatures(Feature<?>... features)
Configures this builder to produce tests appropriate for the given features.


withFeatures

public B withFeatures(Iterable<? extends Feature<?>> features)

getFeatures

public Set<Feature<?>> getFeatures()

named

public B named(String name)
Configures this builder produce a TestSuite with the given name.


getName

public String getName()

suppressing

public B suppressing(Method... methods)
Prevents the given methods from being run as part of the test suite. Note: in principle this should never need to be used, but it might be useful if the semantics of an implementation disagree in unforeseen ways with the semantics expected by a test, or to keep dependent builds clean in spite of an erroneous test.


suppressing

public B suppressing(Collection<Method> methods)

getSuppressedTests

public Set<Method> getSuppressedTests()

createTestSuite

public junit.framework.TestSuite createTestSuite()
Creates a runnable JUnit test suite based on the criteria already given.


checkCanCreate

protected void checkCanCreate()
Throw IllegalStateException if createTestSuite() can't be called yet.


getTesters

protected abstract List<Class<? extends AbstractTester>> getTesters()

makeSuiteForTesterClass

protected junit.framework.TestSuite makeSuiteForTesterClass(Class<? extends AbstractTester<?>> testerClass)

formatFeatureSet

protected static String formatFeatureSet(Set<? extends Feature<?>> features)


Copyright © 2010-2012. All Rights Reserved.