package carpool.common;
import static org.junit.Assert.fail;
import java.util.ArrayList;
import org.json.JSONArray;
import org.json.JSONException;
import org.junit.Test;
public class Parser {
//Pricelist: Numb-numb-
public static String listToString(ArrayList<?> list){
String serializedList = null;
for(int i=0; i <list.size(); i++){
if (serializedList == null){
serializedList = "";
}
serializedList += list.get(i).toString() +"-";
}
return serializedList;
}
public static ArrayList<?> stringToList(String listString, Object optionFlag){
String[] strArray = listString != null ? listString.split("-") : null;
if (optionFlag instanceof Integer){
ArrayList<Integer> intList = new ArrayList<Integer>();
for (int i = 0; strArray != null && i < strArray.length; i++){
intList.add(new Integer(strArray[i]));
}
return intList;
}
else if (optionFlag instanceof String){
ArrayList<String> strList = new ArrayList<String>();
for (int i = 0; strArray != null && i < strArray.length; i++){
strList.add(strArray[i]);
}
return strList;
}
return null;
}
public static ArrayList<Integer> parseIntegerList(JSONArray jsonList){
ArrayList<Integer> list = new ArrayList<Integer>();
try {
if (jsonList != null) {
for (int i = 0; i < jsonList.length(); i++){
list.add(new Integer(jsonList.getInt(i)));
}
}
} catch (JSONException e) {
e.printStackTrace();
}
return list;
}
@Test
public void TestStringToPriceListOne(){
ArrayList<Integer> arrayList = new ArrayList<Integer>();
arrayList.add(1);
arrayList.add(2);
arrayList.add(3);
arrayList.add(4);
arrayList.add(5);
arrayList.add(6);
if(!Parser.stringToList("1-2-3-4-5-6-",new Integer(0)).equals(arrayList)){fail();}
}
@Test
public void TestStringToPriceListTwo(){
ArrayList<Integer> arrayList = new ArrayList<Integer>();
arrayList.add(1);
arrayList.add(22);
arrayList.add(333);
arrayList.add(4444);
arrayList.add(55555);
arrayList.add(666666);
if(!Parser.stringToList("1-22-333-4444-55555-666666-",new Integer(0)).equals(arrayList)){fail();}
}
@Test
public void TestStringToPriceListThree(){
ArrayList<Integer> arrayList = new ArrayList<Integer>();
arrayList.add(1);
arrayList.add(22);
arrayList.add(333);
arrayList.add(4444);
arrayList.add(555);
arrayList.add(66);
if(!Parser.stringToList("1-22-333-4444-555-66-",new Integer(0)).equals(arrayList)){fail();}
}
@Test
public void TestPriceListToStringOne(){
ArrayList<Integer> arrayList = new ArrayList<Integer>();
arrayList.add(2);
if(!Parser.listToString(arrayList).equals("2-")){fail();}
}
@Test
public void TestPriceListToStringTwo(){
ArrayList<Integer> arrayList = new ArrayList<Integer>();
arrayList.add(1);
arrayList.add(22);
arrayList.add(333);
arrayList.add(4444);
arrayList.add(555);
arrayList.add(66);
if(!Parser.listToString(arrayList).equals("1-22-333-4444-555-66-")){fail();}
}
}