com.google.appengine.tools.development.testing
Class LocalDatastoreServiceTestConfig

java.lang.Object
  extended by com.google.appengine.tools.development.testing.LocalDatastoreServiceTestConfig
All Implemented Interfaces:
LocalServiceTestConfig

public final class LocalDatastoreServiceTestConfig
extends java.lang.Object
implements LocalServiceTestConfig

Config for accessing the local datastore service in tests. Default behavior is to configure the local datastore to only store data in-memory, to not write anything to disk, and for all jobs to apply on the first attempt (master/slave consistency model). tearDown() wipes out all in-memory state so that the datastore is empty at the end of every test.


Constructor Summary
LocalDatastoreServiceTestConfig()
           
 
Method Summary
 java.lang.Class<? extends HighRepJobPolicy> getAlternateHighRepJobPolicyClass()
           
 java.lang.String getBackingStoreLocation()
           
 java.lang.Long getDefaultHighRepJobPolicyRandomSeed()
           
 java.lang.Float getDefaultHighRepJobPolicyUnappliedJobPercentage()
           
static LocalDatastoreService getLocalDatastoreService()
           
 java.lang.Integer getMaxQueryLifetimeMs()
           
 java.lang.Integer getMaxTxnLifetimeMs()
           
 java.lang.Integer getStoreDelayMs()
           
 boolean isNoIndexAutoGen()
           
 boolean isNoStorage()
           
 LocalDatastoreServiceTestConfig setAlternateHighRepJobPolicyClass(java.lang.Class<? extends HighRepJobPolicy> alternateHighRepJobPolicyClass)
          An alternate HighRepJobPolicy implementation.
 LocalDatastoreServiceTestConfig setBackingStoreLocation(java.lang.String backingStoreLocation)
          Where to read/store the datastore from/to.
 LocalDatastoreServiceTestConfig setDefaultHighRepJobPolicyRandomSeed(long defaultHighRepJobPolicyRandomSeed)
          A seed for a Random used by DefaultHighRepJobPolicy to determine whether or not a job application attempt fails.
 LocalDatastoreServiceTestConfig setDefaultHighRepJobPolicyUnappliedJobPercentage(float defaultHighRepJobPolicyUnappliedJobPercentage)
          The percentage of job application attempts that will fail.
 LocalDatastoreServiceTestConfig setMaxQueryLifetimeMs(int maxQueryLifetimeMs)
          Sets how long a query can stay "live" before we expire it.
 LocalDatastoreServiceTestConfig setMaxTxnLifetimeMs(int maxTxnLifetimeMs)
          Sets how long a txn can stay "live" before we expire it.
 LocalDatastoreServiceTestConfig setNoIndexAutoGen(boolean noIndexAutoGen)
          True to prevent the datastore from writing the auto-generated index file.
 LocalDatastoreServiceTestConfig setNoStorage(boolean noStorage)
          True to put the datastore into "memory-only" mode.
 LocalDatastoreServiceTestConfig setStoreDelayMs(int storeDelayMs)
          Sets how long to wait before updating the persistent store.
 void setUp()
          Set up the local service.
 void tearDown()
          Tear down the local service.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LocalDatastoreServiceTestConfig

public LocalDatastoreServiceTestConfig()
Method Detail

isNoStorage

public boolean isNoStorage()

setNoStorage

public LocalDatastoreServiceTestConfig setNoStorage(boolean noStorage)
True to put the datastore into "memory-only" mode.

Parameters:
noStorage -
Returns:
this (for chaining)

getMaxQueryLifetimeMs

public java.lang.Integer getMaxQueryLifetimeMs()

setMaxQueryLifetimeMs

public LocalDatastoreServiceTestConfig setMaxQueryLifetimeMs(int maxQueryLifetimeMs)
Sets how long a query can stay "live" before we expire it.

Parameters:
maxQueryLifetimeMs -
Returns:
this (for chaining)

getMaxTxnLifetimeMs

public java.lang.Integer getMaxTxnLifetimeMs()

setMaxTxnLifetimeMs

public LocalDatastoreServiceTestConfig setMaxTxnLifetimeMs(int maxTxnLifetimeMs)
Sets how long a txn can stay "live" before we expire it.

Parameters:
maxTxnLifetimeMs -
Returns:
this (for chaining)

getStoreDelayMs

public java.lang.Integer getStoreDelayMs()

setStoreDelayMs

public LocalDatastoreServiceTestConfig setStoreDelayMs(int storeDelayMs)
Sets how long to wait before updating the persistent store. Only useful if isNoStorage() returns false.

Parameters:
storeDelayMs -
Returns:
this (for chaining)

getBackingStoreLocation

public java.lang.String getBackingStoreLocation()

setBackingStoreLocation

public LocalDatastoreServiceTestConfig setBackingStoreLocation(java.lang.String backingStoreLocation)
Where to read/store the datastore from/to.

Parameters:
backingStoreLocation -
Returns:
this (for chaining)

isNoIndexAutoGen

public boolean isNoIndexAutoGen()

setNoIndexAutoGen

public LocalDatastoreServiceTestConfig setNoIndexAutoGen(boolean noIndexAutoGen)
True to prevent the datastore from writing the auto-generated index file.

Parameters:
noIndexAutoGen -
Returns:
this (for chaining)

getDefaultHighRepJobPolicyRandomSeed

public java.lang.Long getDefaultHighRepJobPolicyRandomSeed()

setDefaultHighRepJobPolicyRandomSeed

public LocalDatastoreServiceTestConfig setDefaultHighRepJobPolicyRandomSeed(long defaultHighRepJobPolicyRandomSeed)
A seed for a Random used by DefaultHighRepJobPolicy to determine whether or not a job application attempt fails. This method cannot be used in combination with setAlternateHighRepJobPolicyClass(Class).

Parameters:
defaultHighRepJobPolicyRandomSeed - The random seed.
Returns:
this (for chaining)
Throws:
java.lang.IllegalArgumentException - If setAlternateHighRepJobPolicyClass(Class) has been called.

getDefaultHighRepJobPolicyUnappliedJobPercentage

public java.lang.Float getDefaultHighRepJobPolicyUnappliedJobPercentage()

setDefaultHighRepJobPolicyUnappliedJobPercentage

public LocalDatastoreServiceTestConfig setDefaultHighRepJobPolicyUnappliedJobPercentage(float defaultHighRepJobPolicyUnappliedJobPercentage)
The percentage of job application attempts that will fail. Must be >= 0 and <= 100. This validation is performed during the initialization of LocalDatastoreService, not in the setter, so it will not fail fast. In addition, any portion of the value beyond two decimal places will be truncated. This method cannot be used in combination with setAlternateHighRepJobPolicyClass(Class).

Parameters:
defaultHighRepJobPolicyUnappliedJobPercentage - The percentage of job application attempts that should fail.
Returns:
this (for chaining)
Throws:
java.lang.IllegalArgumentException - If setAlternateHighRepJobPolicyClass(Class) has been called.

getAlternateHighRepJobPolicyClass

public java.lang.Class<? extends HighRepJobPolicy> getAlternateHighRepJobPolicyClass()

setAlternateHighRepJobPolicyClass

public LocalDatastoreServiceTestConfig setAlternateHighRepJobPolicyClass(java.lang.Class<? extends HighRepJobPolicy> alternateHighRepJobPolicyClass)
An alternate HighRepJobPolicy implementation. The class must have a no-arg constructor, but this validation is performed during the iniitialization of LocalDatastoreService, not in the setter, so it will not fail fast. This method cannot be used in combination with setDefaultHighRepJobPolicyRandomSeed(long) or setDefaultHighRepJobPolicyUnappliedJobPercentage(float).

Parameters:
alternateHighRepJobPolicyClass - The HighRepJobPolicy implementation.
Returns:
this (for chaining)
Throws:
java.lang.IllegalArgumentException - If setDefaultHighRepJobPolicyRandomSeed(long) or setDefaultHighRepJobPolicyUnappliedJobPercentage(float) has been called.

setUp

public void setUp()
Description copied from interface: LocalServiceTestConfig
Set up the local service.

Specified by:
setUp in interface LocalServiceTestConfig

tearDown

public void tearDown()
Description copied from interface: LocalServiceTestConfig
Tear down the local service.

Specified by:
tearDown in interface LocalServiceTestConfig

getLocalDatastoreService

public static LocalDatastoreService getLocalDatastoreService()