package crmdna.sequence; 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 org.junit.After; import org.junit.Before; import org.junit.Test; import java.util.List; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; public class SequenceCoreTest { private final LocalServiceTestHelper datastoreHelper = new LocalServiceTestHelper( new LocalDatastoreServiceTestConfig().setApplyAllHighRepJobPolicy()); @Before public void setUp() { datastoreHelper.setUp(); ObjectifyFilter.complete(); } @After public void tearDown() { ObjectifyFilter.complete(); datastoreHelper.tearDown(); } @Test public void getNextTest() { // client cannot be invalid try { SequenceCore.getNext("isha", "seq1", 5); assertTrue(false); } catch (APIException ex) { assertEquals(Status.ERROR_RESOURCE_NOT_FOUND, ex.statusCode); } Client.create("Isha"); // error if incorrect input try { SequenceCore.getNext("isha", "seq1", 0); assertTrue(false); } catch (APIException ex) { assertEquals(Status.ERROR_RESOURCE_INCORRECT, ex.statusCode); } // error if incorrect input try { SequenceCore.getNext("isha", "seq1", -1); assertTrue(false); } catch (APIException ex) { assertEquals(Status.ERROR_RESOURCE_INCORRECT, ex.statusCode); } List<Long> ids = SequenceCore.getNext("isha", "sEQ1", 5); assertEquals(5, ids.size()); assertEquals(1, ids.get(0).longValue()); assertEquals(2, ids.get(1).longValue()); assertEquals(3, ids.get(2).longValue()); assertEquals(4, ids.get(3).longValue()); assertEquals(5, ids.get(4).longValue()); // ensure it works for 1 ids = SequenceCore.getNext("isha", "seq1", 1); assertEquals(1, ids.size()); assertEquals(6, ids.get(0).longValue()); assertEquals(7, SequenceCore.getNext("isha", "seq1", 1).iterator() .next().longValue()); // for some other sequence types ids = SequenceCore.getNext("isha", "seq2", 2); assertEquals(2, ids.size()); assertEquals(1, ids.get(0).longValue()); assertEquals(2, ids.get(1).longValue()); } }