package siena.base.test;
import static siena.Json.map;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import com.google.appengine.tools.info.SupportInfo;
import siena.Query;
import siena.SienaRestrictedApiException;
import siena.base.test.model.Address;
import siena.base.test.model.AutoInc;
import siena.base.test.model.Contact;
import siena.base.test.model.DataTypes;
import siena.base.test.model.DataTypes.EnumLong;
import siena.base.test.model.Discovery4JoinStringId;
import siena.base.test.model.DiscoveryPrivate;
import siena.base.test.model.DiscoveryStringId;
import siena.base.test.model.MultipleKeys;
import siena.base.test.model.PersonLongAutoID;
import siena.base.test.model.PersonLongManualID;
import siena.base.test.model.PersonStringAutoIncID;
import siena.base.test.model.PersonStringID;
import siena.base.test.model.PersonUUID;
import siena.sdb.SdbPersistenceManager;
public abstract class BaseTestNoAutoInc_1_CRUD extends BaseTestNoAutoInc_BASE {
public void testInsertUUID() {
PersonUUID maxwell = new PersonUUID();
maxwell.firstName = "James Clerk";
maxwell.lastName = "Maxwell";
maxwell.city = "Edinburgh";
maxwell.n = 4;
pm.insert(maxwell);
assertNotNull(maxwell.id);
List<PersonUUID> people = queryPersonUUIDOrderBy("n", 0, false).fetch();
assertEquals(4, people.size());
assertEquals(UUID_TESLA, people.get(0));
assertEquals(UUID_CURIE, people.get(1));
assertEquals(UUID_EINSTEIN, people.get(2));
assertEquals(maxwell, people.get(3));
}
public void testInsertLongAutoID() {
if(supportsAutoincrement()){
PersonLongAutoID maxwell = new PersonLongAutoID();
maxwell.firstName = "James Clerk";
maxwell.lastName = "Maxwell";
maxwell.city = "Edinburgh";
maxwell.n = 4;
pm.insert(maxwell);
assertNotNull(maxwell.id);
List<PersonLongAutoID> people = queryPersonLongAutoIDOrderBy("n", 0, false).fetch();
assertEquals(4, people.size());
assertEquals(LongAutoID_TESLA, people.get(0));
assertEquals(LongAutoID_CURIE, people.get(1));
assertEquals(LongAutoID_EINSTEIN, people.get(2));
assertEquals(maxwell, people.get(3));
}else {
try {
PersonLongAutoID maxwell = new PersonLongAutoID();
maxwell.firstName = "James Clerk";
maxwell.lastName = "Maxwell";
maxwell.city = "Edinburgh";
maxwell.n = 4;
pm.insert(maxwell);
}catch(SienaRestrictedApiException ex){
return;
}
fail();
}
}
public void testInsertLongManualID() {
PersonLongManualID maxwell = new PersonLongManualID();
maxwell.id = 4L;
maxwell.firstName = "James Clerk";
maxwell.lastName = "Maxwell";
maxwell.city = "Edinburgh";
maxwell.n = 4;
pm.insert(maxwell);
assertEquals((Long)4L, maxwell.id);
List<PersonLongManualID> people = queryPersonLongManualIDOrderBy("n", 0, false).fetch();
assertEquals(4, people.size());
assertEquals(LongManualID_TESLA, people.get(0));
assertEquals(LongManualID_CURIE, people.get(1));
assertEquals(LongManualID_EINSTEIN, people.get(2));
assertEquals(maxwell, people.get(3));
}
public void testInsertStringID() {
PersonStringID maxwell = new PersonStringID();
maxwell.id = "MAXWELL";
maxwell.firstName = "James Clerk";
maxwell.lastName = "Maxwell";
maxwell.city = "Edinburgh";
maxwell.n = 4;
pm.insert(maxwell);
assertEquals(maxwell.id, "MAXWELL");
List<PersonStringID> people = queryPersonStringIDOrderBy("n", 0, false).fetch();
assertEquals(4, people.size());
assertEquals(StringID_TESLA, people.get(0));
assertEquals(StringID_CURIE, people.get(1));
assertEquals(StringID_EINSTEIN, people.get(2));
assertEquals(maxwell, people.get(3));
}
public void testGetUUID() {
PersonUUID curie = getPersonUUID(UUID_CURIE.id);
assertEquals(UUID_CURIE, curie);
}
public void testGetLongAutoID() {
if(supportsAutoincrement()){
PersonLongAutoID curie = getPersonLongAutoID(LongAutoID_CURIE.id);
assertEquals(LongAutoID_CURIE, curie);
}else {
try {
PersonLongAutoID curie = getPersonLongAutoID(LongAutoID_CURIE.id);
}catch(SienaRestrictedApiException ex){
return;
}
fail();
}
}
public void testGetLongManualID() {
PersonLongManualID curie = getPersonLongManualID(LongManualID_CURIE.id);
assertEquals(LongManualID_CURIE, curie);
}
public void testGetStringID() {
PersonStringID curie = getPersonStringID(StringID_CURIE.id);
assertEquals(StringID_CURIE, curie);
}
public void testUpdateUUID() {
PersonUUID curie = getPersonUUID(UUID_CURIE.id);
curie.lastName = "Sklodowska–Curie";
pm.update(curie);
PersonUUID curie2 = getPersonUUID(UUID_CURIE.id);
assertEquals(curie2, curie);
}
public void testUpdateLongAutoID() {
if(supportsAutoincrement()){
PersonLongAutoID curie = getPersonLongAutoID(LongAutoID_CURIE.id);
curie.lastName = "Sklodowska–Curie";
pm.update(curie);
PersonLongAutoID curie2 = getPersonLongAutoID(LongAutoID_CURIE.id);
assertEquals(curie2, curie);
}else {
try {
PersonLongAutoID curie = getPersonLongAutoID(LongAutoID_CURIE.id);
}catch(SienaRestrictedApiException ex){
return;
}
fail();
}
}
public void testDeleteUUID() {
PersonUUID curie = getPersonUUID(UUID_CURIE.id);
pm.delete(curie);
List<PersonUUID> people = queryPersonUUIDOrderBy("n", 0, false).fetch();
assertNotNull(people);
assertEquals(2, people.size());
assertEquals(UUID_TESLA, people.get(0));
assertEquals(UUID_EINSTEIN, people.get(1));
}
public void testSaveLongAutoID() {
if(supportsAutoincrement()){
PersonLongAutoID maxwell = new PersonLongAutoID();
maxwell.firstName = "James Clerk";
maxwell.lastName = "Maxwell";
maxwell.city = "Edinburgh";
maxwell.n = 4;
pm.save(maxwell);
assertNotNull(maxwell.id);
List<PersonLongAutoID> people = queryPersonLongAutoIDOrderBy("n", 0, false).fetch();
assertEquals(4, people.size());
assertEquals(LongAutoID_TESLA, people.get(0));
assertEquals(LongAutoID_CURIE, people.get(1));
assertEquals(LongAutoID_EINSTEIN, people.get(2));
assertEquals(maxwell, people.get(3));
maxwell.firstName = "James Clerk UPD";
maxwell.lastName = "Maxwell UPD";
maxwell.city = "Edinburgh UPD";
maxwell.n = 5;
pm.save(maxwell);
assertNotNull(maxwell.id);
people = queryPersonLongAutoIDOrderBy("n", 0, false).fetch();
assertEquals(4, people.size());
assertEquals(LongAutoID_TESLA, people.get(0));
assertEquals(LongAutoID_CURIE, people.get(1));
assertEquals(LongAutoID_EINSTEIN, people.get(2));
assertEquals(maxwell, people.get(3));
}else {
try {
PersonLongAutoID maxwell = new PersonLongAutoID();
maxwell.firstName = "James Clerk";
maxwell.lastName = "Maxwell";
maxwell.city = "Edinburgh";
maxwell.n = 4;
pm.save(maxwell);
}catch(SienaRestrictedApiException ex){
return;
}
fail();
}
}
public void testSaveUUID() {
PersonUUID maxwell = new PersonUUID();
maxwell.firstName = "James Clerk";
maxwell.lastName = "Maxwell";
maxwell.city = "Edinburgh";
maxwell.n = 4;
pm.save(maxwell);
assertNotNull(maxwell.id);
List<PersonUUID> people = queryPersonUUIDOrderBy("n", 0, false).fetch();
assertEquals(4, people.size());
assertEquals(UUID_TESLA, people.get(0));
assertEquals(UUID_CURIE, people.get(1));
assertEquals(UUID_EINSTEIN, people.get(2));
assertEquals(maxwell, people.get(3));
maxwell.firstName = "James Clerk UPD";
maxwell.lastName = "Maxwell UPD";
maxwell.city = "Edinburgh UPD";
maxwell.n = 5;
pm.save(maxwell);
assertNotNull(maxwell.id);
people = queryPersonUUIDOrderBy("n", 0, false).fetch();
assertEquals(4, people.size());
assertEquals(UUID_TESLA, people.get(0));
assertEquals(UUID_CURIE, people.get(1));
assertEquals(UUID_EINSTEIN, people.get(2));
assertEquals(maxwell, people.get(3));
}
public void testSaveLongManualID() {
PersonLongManualID maxwell = new PersonLongManualID();
maxwell.id = 4L;
maxwell.firstName = "James Clerk";
maxwell.lastName = "Maxwell";
maxwell.city = "Edinburgh";
maxwell.n = 4;
pm.save(maxwell);
assertEquals((Long)4L, maxwell.id);
List<PersonLongManualID> people = queryPersonLongManualIDOrderBy("n", 0, false).fetch();
assertEquals(4, people.size());
assertEquals(LongManualID_TESLA, people.get(0));
assertEquals(LongManualID_CURIE, people.get(1));
assertEquals(LongManualID_EINSTEIN, people.get(2));
assertEquals(maxwell, people.get(3));
maxwell.firstName = "James Clerk UPD";
maxwell.lastName = "Maxwell UPD";
maxwell.city = "Edinburgh UPD";
maxwell.n = 5;
pm.save(maxwell);
assertEquals((Long)4L, maxwell.id);
people = queryPersonLongManualIDOrderBy("n", 0, false).fetch();
assertEquals(4, people.size());
assertEquals(LongManualID_TESLA, people.get(0));
assertEquals(LongManualID_CURIE, people.get(1));
assertEquals(LongManualID_EINSTEIN, people.get(2));
assertEquals(maxwell, people.get(3));
}
public void testSaveStringID() {
PersonStringID maxwell = new PersonStringID();
maxwell.id = "MAXWELL";
maxwell.firstName = "James Clerk";
maxwell.lastName = "Maxwell";
maxwell.city = "Edinburgh";
maxwell.n = 4;
pm.save(maxwell);
assertEquals(maxwell.id, "MAXWELL");
List<PersonStringID> people = queryPersonStringIDOrderBy("n", 0, false).fetch();
assertEquals(4, people.size());
assertEquals(StringID_TESLA, people.get(0));
assertEquals(StringID_CURIE, people.get(1));
assertEquals(StringID_EINSTEIN, people.get(2));
assertEquals(maxwell, people.get(3));
maxwell.firstName = "James Clerk UPD";
maxwell.lastName = "Maxwell UPD";
maxwell.city = "Edinburgh UPD";
maxwell.n = 5;
pm.save(maxwell);
assertEquals(maxwell.id, "MAXWELL");
people = queryPersonStringIDOrderBy("n", 0, false).fetch();
assertEquals(4, people.size());
assertEquals(StringID_TESLA, people.get(0));
assertEquals(StringID_CURIE, people.get(1));
assertEquals(StringID_EINSTEIN, people.get(2));
assertEquals(maxwell, people.get(3));
}
}