package carpool.test.dao;
import static org.junit.Assert.fail;
import java.sql.Date;
import java.util.ArrayList;
import java.util.Calendar;
import org.json.JSONObject;
import org.junit.Test;
import carpool.carpoolDAO.CarpoolDaoBasic;
import carpool.carpoolDAO.CarpoolDaoMessage;
import carpool.carpoolDAO.CarpoolDaoTransaction;
import carpool.carpoolDAO.CarpoolDaoUser;
import carpool.cleanRoutineTask.TransactionCleaner;
import carpool.common.DateUtility;
import carpool.configurations.EnumConfig;
import carpool.configurations.EnumConfig.DayTimeSlot;
import carpool.configurations.EnumConfig.Gender;
import carpool.configurations.EnumConfig.MessageState;
import carpool.configurations.EnumConfig.MessageType;
import carpool.configurations.EnumConfig.PaymentMethod;
import carpool.configurations.EnumConfig.TransactionState;
import carpool.configurations.EnumConfig.TransactionType;
import carpool.dbservice.TransactionDaoService;
import carpool.exception.location.LocationNotFoundException;
import carpool.exception.validation.ValidationException;
import carpool.model.Location;
import carpool.model.Message;
import carpool.model.Transaction;
import carpool.model.User;
public class CarpoolTransactionTest {
@Test
public void testAddTransaction() throws LocationNotFoundException{
CarpoolDaoBasic.clearBothDatabase();
long departure_Id = 1;
long arrival_Id = 2;
String province = "Ontario";
String city1 = "Toronto";
String city2 = "Waterloo";
String region1 = "Downtown";
String region2 = "Downtown UW";
Double lat1 = 32.123212;
Double lat2 = 23.132123;
Double lng1 = 34.341232;
Double lng2 = 34.123112;
Location departureLocation= new Location(province,city1,region1,"Test1","Test11",lat1,lng1,arrival_Id);
Location arrivalLocation = new Location(province,city2,region2,"Test2","Test22",lat2,lng2,departure_Id);
//Users
User provider = new User("xch93318yeah", "c2xiong@uwaterloo.ca",departureLocation, Gender.both);
try {
CarpoolDaoUser.addUserToDatabase(provider);
} catch (ValidationException e) {
e.printStackTrace();
}
User customer = new User("fangyuan", "fangyuanlucky", arrivalLocation, Gender.both);
try {
CarpoolDaoUser.addUserToDatabase(customer);
} catch (ValidationException e) {
e.printStackTrace();
}
Calendar time = DateUtility.DateToCalendar(new Date(0));
ArrayList<Integer> priceList = new ArrayList<Integer>();
priceList.add(1);
PaymentMethod paymentMethod =null;
paymentMethod = paymentMethod.fromInt(0);
MessageType type = MessageType.fromInt(0);
Gender genderRequirement = Gender.fromInt(0);
DayTimeSlot timeSlot = DayTimeSlot.fromInt(0);
TransactionType transactiontype = TransactionType.fromInt(0);
//Messages
Message message=new Message(provider.getUserId(),false
, new Location(departureLocation),time,timeSlot,1 , priceList,new Location(arrivalLocation),
time,timeSlot, 1,priceList,paymentMethod,
"test", type, genderRequirement);
CarpoolDaoMessage.addMessageToDatabase(message);
Transaction transaction = new Transaction(provider.getUserId(),customer.getUserId(),message.getMessageId(),paymentMethod,"cNote","pNote",time,timeSlot,1,transactiontype);
//Test
try{
CarpoolDaoTransaction.addTransactionToDatabase(transaction);
}catch(Exception e){
e.printStackTrace();
}
}
@Test
public void testReadTransaction() throws LocationNotFoundException{
CarpoolDaoBasic.clearBothDatabase();
long departure_Id = 1;
long arrival_Id = 2;
String province = "Ontario";
String city1 = "Toronto";
String city2 = "Waterloo";
String region1 = "Downtown";
String region2 = "Downtown UW";
Double lat1 = 32.123212;
Double lat2 = 23.132123;
Double lng1 = 34.341232;
Double lng2 = 34.123112;
Location departureLocation= new Location(province,city1,region1,"Test1","Test11",lat1,lng1,arrival_Id);
Location arrivalLocation = new Location(province,city2,region2,"Test2","Test22",lat2,lng2,departure_Id);
//Users
User provider = new User("xch93318yeah", "c2xiong@uwaterloo.ca", new Location(departureLocation), Gender.both);
try {
CarpoolDaoUser.addUserToDatabase(provider);
} catch (ValidationException e) {
e.printStackTrace();
}
User customer = new User("fangyuan", "fangyuanlucky", new Location(arrivalLocation), Gender.both);
try {
CarpoolDaoUser.addUserToDatabase(customer);
} catch (ValidationException e) {
e.printStackTrace();
}
Calendar dt = DateUtility.getCurTimeInstance();
Calendar at = DateUtility.getCurTimeInstance();
at.add(Calendar.DAY_OF_YEAR, 1);
ArrayList<Integer> priceList = new ArrayList<Integer>();
priceList.add(1);
PaymentMethod p =EnumConfig.PaymentMethod.fromInt(0);
MessageType type = MessageType.fromInt(0);
Gender genderRequirement = Gender.fromInt(0);
DayTimeSlot timeSlot = DayTimeSlot.fromInt(0);
int dseats = 4;
int aseats = 4;
//Messages
Message message=new Message(provider.getUserId(),false
, new Location(departureLocation),dt,timeSlot,dseats , priceList,new Location(arrivalLocation),
at,timeSlot, aseats,priceList,p,
"test", type, genderRequirement);
message = CarpoolDaoMessage.addMessageToDatabase(message);
TransactionType ttype = TransactionType.fromInt(0);
Transaction transaction = new Transaction(provider.getUserId(),customer.getUserId(),message.getMessageId(),p,"cNote","pNote",dt,timeSlot,dseats,ttype);
// Test
try{
CarpoolDaoTransaction.addTransactionToDatabase(transaction);
transaction = CarpoolDaoTransaction.getTransactionById(transaction.getTransactionId());
if(transaction.getProvider().equals(provider)&&transaction.getCustomer().equals(customer)&&transaction.getDeparture_location().equals(message.getDeparture_Location())&&transaction.getArrival_location().equals(message.getArrival_Location())&&transaction.getCustomerNote().equals("cNote")&&transaction.getProviderNote().equals("pNote")&&transaction.getPaymentMethod().equals(p)&&transaction.getTotalPrice()==1){
//Passed;
}else{
fail();
}
}catch(Exception e){
e.printStackTrace();
fail();
}
Transaction t2 = new Transaction(provider.getUserId(),customer.getUserId(),message.getMessageId(),p,"cNote","pNote",dt,timeSlot,dseats,ttype);
try{
CarpoolDaoTransaction.addTransactionToDatabase(t2);
t2 = CarpoolDaoTransaction.getTransactionById(t2.getTransactionId());
ArrayList<Transaction> tlist = new ArrayList<Transaction>();
tlist = CarpoolDaoTransaction.getAllTranscations();
if(tlist !=null && tlist.size()==2&& tlist.get(0).equals(transaction)&&tlist.get(1).equals(t2)){
//Passed;
}else{
fail();
}
}catch(Exception e){
e.printStackTrace();
fail();
}
try{
ArrayList<Transaction> tlist = new ArrayList<Transaction>();
tlist = CarpoolDaoTransaction.getAllTransactionByMessageId(message.getMessageId());
if(tlist !=null && tlist.size()==2&& tlist.get(0).equals(transaction)&&tlist.get(1).equals(t2)){
//Passed;
}else{
fail();
}
}catch(Exception e){
e.printStackTrace();
fail();
}
try{
ArrayList<Transaction> tlist = new ArrayList<Transaction>();
tlist = CarpoolDaoTransaction.getAllTransactionByUserId(provider.getUserId());
if(tlist !=null && tlist.size()==2&& tlist.get(0).equals(transaction)&&tlist.get(1).equals(t2)){
//Passed;
}else{
fail();
}
}catch(Exception e){
e.printStackTrace();
fail();
}
try{
ArrayList<Transaction> tlist = new ArrayList<Transaction>();
tlist = CarpoolDaoTransaction.getAllTransactionByUserId(customer.getUserId());
if(tlist !=null && tlist.size()==2&& tlist.get(0).equals(transaction)&&tlist.get(1).equals(t2)){
//Passed;
}else{
fail();
}
}catch(Exception e){
e.printStackTrace();
fail();
}
ArrayList<Integer> alist = new ArrayList<Integer>();
alist.add(10);
Message message2=new Message(provider.getUserId(),true
, new Location(departureLocation),dt,timeSlot,dseats , priceList,new Location(arrivalLocation),
at,timeSlot, aseats,alist,p,
"test", type, genderRequirement);
message2 = CarpoolDaoMessage.addMessageToDatabase(message2);
ttype = TransactionType.fromInt(1);
transaction = new Transaction(provider.getUserId(),customer.getUserId(),message2.getMessageId(),p,"cNote","pNote",dt,timeSlot,dseats,ttype);
try{
transaction = CarpoolDaoTransaction.addTransactionToDatabase(transaction);
if(transaction.getProvider().equals(provider)&& transaction.getCustomer().equals(customer)&&transaction.getMessage().equals(message2)&&transaction.getTotalPrice()==10){
//Passed;
}else{
}
}catch(Exception e){
e.printStackTrace();
fail();
}
}
@Test
public void testUpdateTransaction() throws LocationNotFoundException{
CarpoolDaoBasic.clearBothDatabase();
long departure_Id = 1;
long arrival_Id = 2;
String province = "Ontario";
String city1 = "Toronto";
String city2 = "Waterloo";
String region1 = "Downtown";
String region2 = "Downtown UW";
Double lat1 = 32.123212;
Double lat2 = 23.132123;
Double lng1 = 34.341232;
Double lng2 = 34.123112;
Location departureLocation= new Location(province,city1,region1,"Test1","Test11",lat1,lng1,arrival_Id);
Location arrivalLocation = new Location(province,city2,region2,"Test2","Test22",lat2,lng2,departure_Id);
//Users
User provider = new User("xch93318yeah", "c2xiong@uwaterloo.ca", departureLocation, Gender.both);
try {
CarpoolDaoUser.addUserToDatabase(provider);
} catch (ValidationException e) {
e.printStackTrace();
}
User customer = new User("fangyuan", "fangyuanlucky", arrivalLocation, Gender.both);
try {
CarpoolDaoUser.addUserToDatabase(customer);
} catch (ValidationException e) {
e.printStackTrace();
}
Calendar dt = DateUtility.getCurTimeInstance();
Calendar at = DateUtility.getCurTimeInstance();
at.add(Calendar.DAY_OF_YEAR, 1);
ArrayList<Integer> priceList = new ArrayList<Integer>();
priceList.add(1);
PaymentMethod p =EnumConfig.PaymentMethod.fromInt(0);
MessageType type = MessageType.fromInt(0);
Gender genderRequirement = Gender.fromInt(0);
DayTimeSlot timeSlot = DayTimeSlot.fromInt(0);
ArrayList<Integer> alist = new ArrayList<Integer>();
alist.add(10);
int dseats = 4;
int aseats = 4;
//Messages
Message message=new Message(provider.getUserId(),true
, new Location(departureLocation),dt,timeSlot,dseats , priceList,new Location(arrivalLocation),
at,timeSlot, aseats,alist,p,
"test", type, genderRequirement);
message = CarpoolDaoMessage.addMessageToDatabase(message);
TransactionType ttype = TransactionType.fromInt(0);
Transaction transaction = new Transaction(provider.getUserId(),customer.getUserId(),message.getMessageId(),p,"cNote","pNote",dt,timeSlot,dseats,ttype);
try{
CarpoolDaoTransaction.addTransactionToDatabase(transaction);
transaction = CarpoolDaoTransaction.getTransactionById(transaction.getTransactionId());
}catch(Exception e){
e.printStackTrace();
fail();
}
transaction.setCustomerEvaluation(100);
transaction.setType(TransactionType.fromInt(1));
transaction.setCustomerNote("Good");
//Test
try{
CarpoolDaoTransaction.updateTransactionInDatabase(transaction);
transaction = CarpoolDaoTransaction.getTransactionById(transaction.getTransactionId());
if(transaction.getCustomerEvaluation()==100&&transaction.getType().equals(TransactionType.fromInt(1))&&transaction.getProvider().equals(provider)&&transaction.getCustomer().equals(customer)&&transaction.getDeparture_location().equals(message.getDeparture_Location())&&transaction.getArrival_location().equals(message.getArrival_Location())&&transaction.getCustomerNote().equals("Good")&&transaction.getProviderNote().equals("pNote")&&transaction.getPaymentMethod().equals(p)&&transaction.getTotalPrice()==10){
}else{
fail();
}
}catch(Exception e){
e.printStackTrace();
fail();
}
}
@Test
public void testTransactionCleaner() throws LocationNotFoundException{
CarpoolDaoBasic.clearBothDatabase();
long departure_Id = 1;
long arrival_Id = 2;
String province = "Ontario";
String city1 = "Toronto";
String city2 = "Waterloo";
String region1 = "Downtown";
String region2 = "Downtown UW";
Double lat1 = 32.123212;
Double lat2 = 23.132123;
Double lng1 = 34.341232;
Double lng2 = 34.123112;
Location departureLocation= new Location(province,city1,region1,"Test1","Test11",lat1,lng1,arrival_Id);
Location arrivalLocation = new Location(province,city2,region2,"Test2","Test22",lat2,lng2,departure_Id);
//Users
User provider = new User("xch93318yeah", "c2xiong@uwaterloo.ca", departureLocation, Gender.both);
try {
CarpoolDaoUser.addUserToDatabase(provider);
} catch (ValidationException e) {
e.printStackTrace();
}
User customer = new User("fangyuan", "fangyuanlucky", arrivalLocation, Gender.both);
try {
CarpoolDaoUser.addUserToDatabase(customer);
} catch (ValidationException e) {
e.printStackTrace();
}
Calendar dt = DateUtility.getCurTimeInstance();
dt.set(Calendar.HOUR_OF_DAY, dt.get(Calendar.HOUR_OF_DAY)+1);
Calendar at = DateUtility.getCurTimeInstance();
at.add(Calendar.DAY_OF_YEAR, 1);
Calendar dt2 = DateUtility.getCurTimeInstance();
dt2.add(Calendar.DAY_OF_YEAR, -1);
dt2.add(Calendar.SECOND, 5);
Calendar at2 = DateUtility.getCurTimeInstance();
at2.add(Calendar.DAY_OF_YEAR, 0);
Calendar dt3 = DateUtility.getCurTimeInstance();
dt3.add(Calendar.DAY_OF_YEAR, 1);
Calendar at3 = DateUtility.getCurTimeInstance();
at3.add(Calendar.DAY_OF_YEAR, 3);
ArrayList<Integer> priceList = new ArrayList<Integer>();
priceList.add(1);
PaymentMethod p =EnumConfig.PaymentMethod.fromInt(0);
MessageType type = MessageType.fromInt(0);
Gender genderRequirement = Gender.fromInt(0);
DayTimeSlot timeSlot = DayTimeSlot.fromInt(0);
ArrayList<Integer> alist = new ArrayList<Integer>();
alist.add(10);
int dseats = 4;
int aseats = 4;
//Messages
Message message=new Message(provider.getUserId(),true
, new Location(departureLocation),dt,timeSlot,dseats , priceList,new Location(arrivalLocation),
at,timeSlot, aseats,alist,p,
"test", type, genderRequirement);
message = CarpoolDaoMessage.addMessageToDatabase(message);
Message message2=new Message(provider.getUserId(),true
, new Location(departureLocation),dt2,timeSlot,dseats , priceList,new Location(arrivalLocation),
at2,timeSlot, aseats,alist,p,
"test", type, genderRequirement);
message2 = CarpoolDaoMessage.addMessageToDatabase(message2);
Message message3=new Message(provider.getUserId(),true
, new Location(departureLocation),dt3,timeSlot,dseats , priceList,new Location(arrivalLocation),
at3,timeSlot, aseats,alist,p,
"test", type, genderRequirement);
message3 = CarpoolDaoMessage.addMessageToDatabase(message3);
TransactionType ttype = TransactionType.departure;
Transaction transaction = new Transaction(provider.getUserId(),customer.getUserId(),message.getMessageId(),p,"cNote","pNote",null,timeSlot,dseats,ttype);
transaction.setState(TransactionState.init);// This should pass the test(aboutToStart)
Transaction transaction2 = new Transaction(provider.getUserId(),customer.getUserId(),message2.getMessageId(),p,"cNote","pNote",null,timeSlot,dseats,ttype);
transaction2.setState(TransactionState.init);
Transaction transaction3 = new Transaction(provider.getUserId(),customer.getUserId(),message3.getMessageId(),p,"cNote","pNote",null,timeSlot,dseats,ttype);
transaction3.setState(TransactionState.finished);
Transaction transaction4 = new Transaction(provider.getUserId(),customer.getUserId(),message2.getMessageId(),p,"cNote","pNote",null,timeSlot,dseats,ttype);
transaction4.setState(TransactionState.aboutToStart);// This should pass the test(finished)
Transaction transaction5 = new Transaction(provider.getUserId(),customer.getUserId(),message3.getMessageId(),p,"cNote","pNote",null,timeSlot,dseats,ttype);
transaction5.setState(TransactionState.init);
Transaction transaction6 = new Transaction(provider.getUserId(),customer.getUserId(),message3.getMessageId(),p,"cNote","pNote",null,timeSlot,dseats,ttype);
transaction6.setState(TransactionState.aboutToStart);// This should pass the test(finished)
Transaction transaction7 = new Transaction(provider.getUserId(),customer.getUserId(),message.getMessageId(),p,"cNote","pNote", null,timeSlot,dseats,ttype);
transaction7.setState(TransactionState.aboutToStart);// This should pass the test(finished)
Transaction transaction8 = new Transaction(provider.getUserId(),customer.getUserId(),message.getMessageId(),p,"cNote","pNote",null,timeSlot,dseats,ttype);
transaction8.setState(TransactionState.finished);
Transaction transaction9 = new Transaction(provider.getUserId(),customer.getUserId(),message2.getMessageId(),p,"cNote","pNote",null,timeSlot,dseats,ttype);
transaction9.setState(TransactionState.init);
Transaction transaction10 = new Transaction(provider.getUserId(),customer.getUserId(),message2.getMessageId(),p,"cNote","pNote",null,timeSlot,dseats,ttype);
transaction10.setState(TransactionState.finished);
try{
CarpoolDaoTransaction.addTransactionToDatabase(transaction);
CarpoolDaoTransaction.addTransactionToDatabase(transaction2);
CarpoolDaoTransaction.addTransactionToDatabase(transaction3);
CarpoolDaoTransaction.addTransactionToDatabase(transaction4);
CarpoolDaoTransaction.addTransactionToDatabase(transaction5);
CarpoolDaoTransaction.addTransactionToDatabase(transaction6);
CarpoolDaoTransaction.addTransactionToDatabase(transaction7);
CarpoolDaoTransaction.addTransactionToDatabase(transaction8);
CarpoolDaoTransaction.addTransactionToDatabase(transaction9);
CarpoolDaoTransaction.addTransactionToDatabase(transaction10);
//Test
TransactionCleaner.Clean();
ArrayList<TransactionState> list = new ArrayList<TransactionState>();
list.add(CarpoolDaoTransaction.getTransactionById(transaction.getTransactionId()).getState());
list.add(CarpoolDaoTransaction.getTransactionById(transaction2.getTransactionId()).getState());
list.add(CarpoolDaoTransaction.getTransactionById(transaction3.getTransactionId()).getState());
list.add(CarpoolDaoTransaction.getTransactionById(transaction4.getTransactionId()).getState());
list.add(CarpoolDaoTransaction.getTransactionById(transaction5.getTransactionId()).getState());
list.add(CarpoolDaoTransaction.getTransactionById(transaction6.getTransactionId()).getState());
list.add(CarpoolDaoTransaction.getTransactionById(transaction7.getTransactionId()).getState());
list.add(CarpoolDaoTransaction.getTransactionById(transaction8.getTransactionId()).getState());
list.add(CarpoolDaoTransaction.getTransactionById(transaction9.getTransactionId()).getState());
list.add(CarpoolDaoTransaction.getTransactionById(transaction10.getTransactionId()).getState());
if(list !=null && list.size()==10 && list.get(0)==TransactionState.aboutToStart && list.get(1)==TransactionState.init &&list.get(2)==TransactionState.finished && list.get(3)==TransactionState.finished && list.get(4)==TransactionState.init && list.get(5)==TransactionState.finished && list.get(6)==TransactionState.finished&& list.get(7)==TransactionState.finished && list.get(8)==TransactionState.init&&list.get(9)==TransactionState.finished){
//Passed;
}else{
fail();
}
}catch(Exception e){
e.printStackTrace();
fail();
}
}
@Test
public void testSortTransactions() throws LocationNotFoundException{
CarpoolDaoBasic.clearBothDatabase();
long departure_Id = 1;
long arrival_Id = 2;
String province = "Ontario";
String city1 = "Toronto";
String city2 = "Waterloo";
String region1 = "Downtown";
String region2 = "Downtown UW";
Double lat1 = 32.123212;
Double lat2 = 23.132123;
Double lng1 = 34.341232;
Double lng2 = 34.123112;
Location departureLocation= new Location(province,city1,region1,"Test1","Test11",lat1,lng1,arrival_Id);
Location arrivalLocation = new Location(province,city2,region2,"Test2","Test22",lat2,lng2,departure_Id);
//Users
User provider = new User("xch93318yeah", "c2xiong@uwaterloo.ca", departureLocation, Gender.both);
try {
CarpoolDaoUser.addUserToDatabase(provider);
} catch (ValidationException e) {
e.printStackTrace();
}
User customer = new User("fangyuan", "fangyuanlucky", arrivalLocation, Gender.both);
try {
CarpoolDaoUser.addUserToDatabase(customer);
} catch (ValidationException e) {
e.printStackTrace();
}
Calendar dt = DateUtility.getCurTimeInstance();
dt.set(Calendar.HOUR_OF_DAY, dt.get(Calendar.HOUR_OF_DAY)+1);
Calendar at = DateUtility.getCurTimeInstance();
at.add(Calendar.DAY_OF_YEAR, 1);
Calendar dt2 = DateUtility.getCurTimeInstance();
dt2.add(Calendar.DAY_OF_YEAR, -1);
Calendar at2 = DateUtility.getCurTimeInstance();
Calendar dt3 = DateUtility.getCurTimeInstance();
dt3.add(Calendar.DAY_OF_YEAR, 3);
Calendar at3 = DateUtility.getCurTimeInstance();
at3.add(Calendar.DAY_OF_YEAR, -3);
ArrayList<Integer> priceList = new ArrayList<Integer>();
priceList.add(1);
PaymentMethod p =EnumConfig.PaymentMethod.fromInt(0);
MessageType type = MessageType.fromInt(0);
Gender genderRequirement = Gender.fromInt(0);
DayTimeSlot timeSlot = DayTimeSlot.fromInt(0);
ArrayList<Integer> alist = new ArrayList<Integer>();
alist.add(10);
int dseats = 4;
int aseats = 4;
//Messages
Message message=new Message(provider.getUserId(),true
, new Location(departureLocation),dt,timeSlot,dseats , priceList,new Location(arrivalLocation),
at,timeSlot, aseats,alist,p,
"test", type, genderRequirement);
message = CarpoolDaoMessage.addMessageToDatabase(message);
Message message2=new Message(provider.getUserId(),true
, new Location(departureLocation),dt2,timeSlot,dseats , priceList,new Location(arrivalLocation),
at2,timeSlot, aseats,alist,p,
"test", type, genderRequirement);
message2 = CarpoolDaoMessage.addMessageToDatabase(message2);
Message message3=new Message(provider.getUserId(),true
, new Location(departureLocation),dt3,timeSlot,dseats , priceList,new Location(arrivalLocation),
at3,timeSlot, aseats,alist,p,
"test", type, genderRequirement);
message3 = CarpoolDaoMessage.addMessageToDatabase(message3);
TransactionType ttype = TransactionType.departure;
Transaction transaction = new Transaction(provider.getUserId(),customer.getUserId(),message.getMessageId(),p,"cNote","pNote",null,timeSlot,dseats,ttype);
transaction.setState(TransactionState.init);
Transaction transaction2 = new Transaction(provider.getUserId(),customer.getUserId(),message2.getMessageId(),p,"cNote","pNote",null,timeSlot,dseats,ttype);
transaction2.setState(TransactionState.init);
Transaction transaction3 = new Transaction(provider.getUserId(),customer.getUserId(),message3.getMessageId(),p,"cNote","pNote",null,timeSlot,dseats,ttype);
transaction3.setState(TransactionState.finished);
Transaction transaction4 = new Transaction(provider.getUserId(),customer.getUserId(),message2.getMessageId(),p,"cNote","pNote",null,timeSlot,dseats,ttype);
transaction4.setState(TransactionState.aboutToStart);
Transaction transaction5 = new Transaction(provider.getUserId(),customer.getUserId(),message3.getMessageId(),p,"cNote","pNote",null,timeSlot,dseats,ttype);
transaction5.setState(TransactionState.init);
Transaction transaction6 = new Transaction(provider.getUserId(),customer.getUserId(),message3.getMessageId(),p,"cNote","pNote",null,timeSlot,dseats,ttype);
transaction6.setState(TransactionState.aboutToStart);
Transaction transaction7 = new Transaction(provider.getUserId(),customer.getUserId(),message.getMessageId(),p,"cNote","pNote", null,timeSlot,dseats,ttype);
transaction7.setState(TransactionState.aboutToStart);
Transaction transaction8 = new Transaction(provider.getUserId(),customer.getUserId(),message.getMessageId(),p,"cNote","pNote",null,timeSlot,dseats,ttype);
transaction8.setState(TransactionState.finished);
Transaction transaction9 = new Transaction(provider.getUserId(),customer.getUserId(),message2.getMessageId(),p,"cNote","pNote",null,timeSlot,dseats,ttype);
transaction9.setState(TransactionState.init);
Transaction transaction10 = new Transaction(provider.getUserId(),customer.getUserId(),message2.getMessageId(),p,"cNote","pNote",null,timeSlot,dseats,ttype);
transaction10.setState(TransactionState.finished);
ArrayList<Transaction> testResult = new ArrayList<Transaction>();
ArrayList<Transaction> tlist = new ArrayList<Transaction>();
try{
CarpoolDaoTransaction.addTransactionToDatabase(transaction);
tlist.add(transaction);
CarpoolDaoTransaction.addTransactionToDatabase(transaction2);
tlist.add(transaction2);
CarpoolDaoTransaction.addTransactionToDatabase(transaction3);
tlist.add(transaction3);
CarpoolDaoTransaction.addTransactionToDatabase(transaction4);
tlist.add(transaction4);
CarpoolDaoTransaction.addTransactionToDatabase(transaction5);
tlist.add(transaction5);
CarpoolDaoTransaction.addTransactionToDatabase(transaction6);
tlist.add(transaction6);
CarpoolDaoTransaction.addTransactionToDatabase(transaction7);
tlist.add(transaction7);
CarpoolDaoTransaction.addTransactionToDatabase(transaction8);
tlist.add(transaction8);
CarpoolDaoTransaction.addTransactionToDatabase(transaction9);
tlist.add(transaction9);
CarpoolDaoTransaction.addTransactionToDatabase(transaction10);
tlist.add(transaction10);
}catch(Exception e){
e.printStackTrace();
fail();
}
testResult = TransactionDaoService.sortTransactions(tlist);
if(testResult.size()==tlist.size() && testResult.get(0).equals(transaction2)
&& testResult.get(1).equals(transaction4)&&testResult.get(2).equals(transaction9)
&& testResult.get(3).equals(transaction10)&&testResult.get(4).equals(transaction)
&& testResult.get(5).equals(transaction7)&&testResult.get(6).equals(transaction8)
&& testResult.get(7).equals(transaction3)&&testResult.get(8).equals(transaction5)
&& testResult.get(9).equals(transaction6)){
//Passed;
}else{
fail();
}
}
}