package crmdna.counter;
import com.google.appengine.tools.development.testing.LocalDatastoreServiceTestConfig;
import com.google.appengine.tools.development.testing.LocalServiceTestHelper;
import com.googlecode.objectify.ObjectifyFilter;
import crmdna.client.Client;
import crmdna.common.api.APIException;
import crmdna.common.api.APIResponse.Status;
import crmdna.counter.Counter.CounterType;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
public class CounterTest {
private final LocalServiceTestHelper datastoreHelper = new LocalServiceTestHelper(
new LocalDatastoreServiceTestConfig().setApplyAllHighRepJobPolicy());
String client;
String invalidClient = "invalid";
@Before
public void setUp() {
datastoreHelper.setUp();
ObjectifyFilter.complete();
client = "isha";
Client.create(client);
}
@After
public void tearDown() {
ObjectifyFilter.complete();
datastoreHelper.tearDown();
}
@Test
public void incrementTest() {
String key = "5_3";
assertEquals(0, Counter.getCount(client, CounterType.CHECKIN, key));
Counter.increment(client, CounterType.CHECKIN, key, 5);
Counter.increment(client, CounterType.CHECKIN, key, -4);
ObjectifyFilter.complete();
assertEquals(1, Counter.getCount(client, CounterType.CHECKIN, key));
try {
Counter.increment(invalidClient, CounterType.CHECKIN, key, 5);
assertTrue(false);
} catch (APIException ex) {
assertEquals(Status.ERROR_RESOURCE_NOT_FOUND, ex.statusCode);
}
}
@Test
public void incrementAndGetCurrentCountTest() {
String key = "5_3";
long count = Counter.incrementAndGetCurrentCount(client, CounterType.CHECKIN, key, 5);
assertEquals(5, count);
count = Counter.incrementAndGetCurrentCount(client, CounterType.CHECKIN, key, 6);
assertEquals(11, count);
}
@Test
public void getCountTest() {
// same as increment test
}
}