public class DatastoreEmulator extends Datastore
An extension to Datastore that provides lifecycle management for a datastore emulator.
In order to use the emulator for a JUnit 4 test you might do something like this:
public class MyTest {
static DatastoreEmulator datastore;
@BeforeClass public static void startEmulator() throws DatastoreEmulatorException { DatastoreOptions options = new DatastoreOptions.Builder() .localHost("localhost:8080") .projectId("my-project-id") .build(); datastore = DatastoreEmulatorFactory.get().create(options); datastore.start("/usr/local/cloud-datastore-emulator", "my-project-id"); }
@Before public void setUp() throws DatastoreEmulatorException { datastore.clear(); }
@AfterClass public static void stopEmulator() throws DatastoreEmulatorException { datastore.stop(); }
@Test public void testFoo1() { }
@Test public void testFoo2() { }
}
Methods
clear()
public void clear()
Clears all data in the emulator.
Type | Description |
DatastoreEmulatorException | if the clear fails |
getProjectDirectory()
public synchronized File getProjectDirectory()
Type | Description |
File |
start()
public synchronized void start()
Type | Description |
DatastoreEmulatorException |
start(String emulatorDir, String projectId, String[] commandLineOptions) (deprecated)
public synchronized void start(String emulatorDir, String projectId, String[] commandLineOptions)
Deprecated. prefer setting options in the emulator options and calling {#start()}.
Starts the emulator. It is the caller's responsibility to call #stop. Note that receiving an exception does not indicate that the server did not start. We recommend calling #stop to ensure the server is not running regardless of the result of this method.
Name | Description |
emulatorDir | String The path to the emulator directory, e.g. /usr/local/cloud-datastore-emulator |
projectId | String The project ID |
commandLineOptions | String[] Command line options to pass to the emulator on startup |
Type | Description |
DatastoreEmulatorException | If #start has already been called or the server does not start successfully. |
stop()
public synchronized void stop()
Stops the emulator. Multiple calls are allowed.
Type | Description |
DatastoreEmulatorException | if the emulator cannot be stopped |
stopEmulatorInternal()
protected void stopEmulatorInternal()
Type | Description |
DatastoreEmulatorException |