public class DatastoreEmulator extends DatastoreAn 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.
| Exceptions | |
|---|---|
| Type | Description |
DatastoreEmulatorException |
if the clear fails |
getProjectDirectory()
public synchronized File getProjectDirectory()| Returns | |
|---|---|
| Type | Description |
File |
|
start()
public synchronized void start()| Exceptions | |
|---|---|
| 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.
| Parameters | |
|---|---|
| Name | Description |
emulatorDir |
StringThe path to the emulator directory, e.g. /usr/local/cloud-datastore-emulator |
projectId |
StringThe project ID |
commandLineOptions |
String[]Command line options to pass to the emulator on startup |
| Exceptions | |
|---|---|
| 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.
| Exceptions | |
|---|---|
| Type | Description |
DatastoreEmulatorException |
if the emulator cannot be stopped |
stopEmulatorInternal()
protected void stopEmulatorInternal()| Exceptions | |
|---|---|
| Type | Description |
DatastoreEmulatorException |
|