// -*- mode: java; c-basic-offset: 2; -*-
// Copyright 2009-2011 Google, All Rights reserved
// Copyright 2011-2012 MIT, All rights reserved
// Released under the Apache License, Version 2.0
// http://www.apache.org/licenses/LICENSE-2.0
package com.google.appinventor.server;
import com.google.appinventor.common.testutils.TestUtils;
import com.google.appengine.tools.development.testing.LocalDatastoreServiceTestConfig;
import com.google.appengine.tools.development.testing.LocalServiceTestHelper;
import com.google.apphosting.utils.config.GenerationDirectory;
import junit.framework.TestCase;
/**
* Abstract base class for tests that need local datastore.
*
* @author lizlooney@google.com
*/
public abstract class LocalDatastoreTestCase extends TestCase {
private static final String APPENGINE_GENERATED_DIR = TestUtils.APP_INVENTOR_ROOT_DIR +
"/appengine/build/tests/appengine-generated";
private final LocalServiceTestHelper helper =
new LocalServiceTestHelper(new LocalDatastoreServiceTestConfig());
@Override
protected void setUp() throws Exception {
super.setUp();
System.setProperty(GenerationDirectory.GENERATED_DIR_PROPERTY, APPENGINE_GENERATED_DIR);
helper.setUp();
}
@Override
public void tearDown() throws Exception {
super.tearDown();
helper.tearDown();
}
/**
* Tests that create multiple threads should call <code>setUpThread</code> for each thread.
*/
public void setUpThread() {
helper.setUp();
}
/**
* Tests that cannot extend <code>LocalDatastoreTestCase</code> can call
* <code>createHelper</code> to create a <code>LocalDatastoreTestCase</code>.
*/
public static LocalDatastoreTestCase createHelper() {
return new LocalDatastoreTestCase() {};
}
}