From 6d2dff02cf9bcc62ec843e399b98ef841aec3381 Mon Sep 17 00:00:00 2001 From: Dan Zygmund-Felt Date: Fri, 19 May 2017 14:44:29 -0400 Subject: [PATCH 1/7] Tossing around ideas of how to abstract this to other DriversLicense classes. Meantime, starting to implement basic methods. --- .gitignore | 11 +++ pom.xml | 25 ++++++ .../dan/mesolabstrings/Address.java | 52 ++++++++++++ .../zygmundfelt/dan/mesolabstrings/App.java | 13 +++ .../dan/mesolabstrings/DriversLicense.java | 18 ++++ .../zygmundfelt/dan/mesolabstrings/Name.java | 43 ++++++++++ .../dan/mesolabstrings/PADriversLicense.java | 84 +++++++++++++++++++ .../dan/mesolabstrings/AppTest.java | 38 +++++++++ .../dan/mesolabstrings/TestAddress.java | 26 ++++++ .../dan/mesolabstrings/TestName.java | 36 ++++++++ .../mesolabstrings/TestPADriversLicense.java | 18 ++++ 11 files changed, 364 insertions(+) create mode 100644 .gitignore create mode 100644 pom.xml create mode 100644 src/main/java/zygmundfelt/dan/mesolabstrings/Address.java create mode 100644 src/main/java/zygmundfelt/dan/mesolabstrings/App.java create mode 100644 src/main/java/zygmundfelt/dan/mesolabstrings/DriversLicense.java create mode 100644 src/main/java/zygmundfelt/dan/mesolabstrings/Name.java create mode 100644 src/main/java/zygmundfelt/dan/mesolabstrings/PADriversLicense.java create mode 100644 src/test/java/zygmundfelt/dan/mesolabstrings/AppTest.java create mode 100644 src/test/java/zygmundfelt/dan/mesolabstrings/TestAddress.java create mode 100644 src/test/java/zygmundfelt/dan/mesolabstrings/TestName.java create mode 100644 src/test/java/zygmundfelt/dan/mesolabstrings/TestPADriversLicense.java diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e66dbc4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,11 @@ +# Intellij +.idea/ +*.iml +*.iws + +# Mac +.DS_Store + +# Maven +log/ +target/ diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..12c87ac --- /dev/null +++ b/pom.xml @@ -0,0 +1,25 @@ + + 4.0.0 + + zygmundfelt.dan.mesolabstrings + mesolabstrings + 1.0-SNAPSHOT + jar + + mesolabstrings + http://maven.apache.org + + + UTF-8 + + + + + + junit + junit + 4.12 + + + diff --git a/src/main/java/zygmundfelt/dan/mesolabstrings/Address.java b/src/main/java/zygmundfelt/dan/mesolabstrings/Address.java new file mode 100644 index 0000000..e191096 --- /dev/null +++ b/src/main/java/zygmundfelt/dan/mesolabstrings/Address.java @@ -0,0 +1,52 @@ +package zygmundfelt.dan.mesolabstrings; + +public class Address { + + private String streetAddress; + private String city; + private String state; + private String zipCode; + + Address(String streetAddress, String city, String state, String zipCode) { + this.streetAddress = streetAddress; + this.city = city; + this.state = state; + this.zipCode = zipCode; + } + + public String toStringForCSV() { + return streetAddress + "," + city + "," + state + "," + zipCode; + } + + public String getStreetAddress() { + return streetAddress; + } + + public void setStreetAddress(String streetAddress) { + this.streetAddress = streetAddress; + } + + public String getCity() { + return city; + } + + public void setCity(String city) { + this.city = city; + } + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public String getZipCode() { + return zipCode; + } + + public void setZipCode(String zipCode) { + this.zipCode = zipCode; + } +} diff --git a/src/main/java/zygmundfelt/dan/mesolabstrings/App.java b/src/main/java/zygmundfelt/dan/mesolabstrings/App.java new file mode 100644 index 0000000..9c8842d --- /dev/null +++ b/src/main/java/zygmundfelt/dan/mesolabstrings/App.java @@ -0,0 +1,13 @@ +package zygmundfelt.dan.mesolabstrings; + +/** + * Hello world! + * + */ +public class App +{ + public static void main( String[] args ) + { + System.out.println( "Hello World!" ); + } +} diff --git a/src/main/java/zygmundfelt/dan/mesolabstrings/DriversLicense.java b/src/main/java/zygmundfelt/dan/mesolabstrings/DriversLicense.java new file mode 100644 index 0000000..599bd96 --- /dev/null +++ b/src/main/java/zygmundfelt/dan/mesolabstrings/DriversLicense.java @@ -0,0 +1,18 @@ +package zygmundfelt.dan.mesolabstrings; + + +import java.lang.reflect.Field; + +public abstract class DriversLicense { +//this would be problematic because the order is indeterminate. + public String getHeaders() { + StringBuilder sb = new StringBuilder(); + for(Field field : this.getClass().getFields()) { + sb.append(field.getName()); + sb.append(","); + } + sb.deleteCharAt(sb.length() - 1); + return sb.toString(); + } + +} diff --git a/src/main/java/zygmundfelt/dan/mesolabstrings/Name.java b/src/main/java/zygmundfelt/dan/mesolabstrings/Name.java new file mode 100644 index 0000000..fe68ee1 --- /dev/null +++ b/src/main/java/zygmundfelt/dan/mesolabstrings/Name.java @@ -0,0 +1,43 @@ +package zygmundfelt.dan.mesolabstrings; + + +public class Name { + + private String firstName; + private String lastName; + private String middleName; + + Name(String last, String first, String middle) { + lastName = last; + firstName = first; + middleName = middle; + } + + public String toStringForCSV() { + return lastName + "," + firstName + "," + middleName; + } + + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + public String getMiddleName() { + return middleName; + } + + public void setMiddleName(String middleName) { + this.middleName = middleName; + } +} diff --git a/src/main/java/zygmundfelt/dan/mesolabstrings/PADriversLicense.java b/src/main/java/zygmundfelt/dan/mesolabstrings/PADriversLicense.java new file mode 100644 index 0000000..88105f1 --- /dev/null +++ b/src/main/java/zygmundfelt/dan/mesolabstrings/PADriversLicense.java @@ -0,0 +1,84 @@ +package zygmundfelt.dan.mesolabstrings; + +import java.util.List; + +public class PADriversLicense { + + private String licenseNumber; + private String lastName; + private String firstName; + private String middleName; + private String address; + private String city; + private String state; + private String zipCode; + private String dateOfBirth; + private String sex; + private String licenseClass; + private String eyes; + private String height; + private String issued; + private String expires; + private String organDonor; + + public PADriversLicense(String licenseNumber, String lastName, String firstName, String middleName, String address, String city, String state, String zipCode, String dateOfBirth, String sex, String licenseClass, String eyes, String height, String issued, String expires, String organDonor) { + this.licenseNumber = licenseNumber; + this.lastName = lastName; + this.firstName = firstName; + this.middleName = middleName; + this.address = address; + this.city = city; + this.state = state; + this.zipCode = zipCode; + this.dateOfBirth = dateOfBirth; + this.sex = sex; + this.licenseClass = licenseClass; + this.eyes = eyes; + this.height = height; + this.issued = issued; + this.expires = expires; + this.organDonor = organDonor; + } + + //TODO + public static List deserialize(String input) { + return null; + } + + //TODO + public static String getCSVHeader() { + return "licenseNumber,lastName,firstName,middleName,address,city,state,zipCode,dateOfBirth,issued,expires,sex,eyes,height,organDonor,licenseClass"; + } + + //TODO + public String serializeToCSV(List list) { + StringBuilder sb = new StringBuilder(); + sb.append(getCSVHeader()); + for(PADriversLicense license : list) { + sb.append(license.toStringForCSV()); + sb.append(","); + } + sb.deleteCharAt(sb.length() - 1); + return sb.toString(); + } + + public String toStringForCSV() { + return licenseNumber + "," + + lastName + "," + + firstName + "," + + middleName + "," + + address + "," + + city + "," + + state + "," + + zipCode + "," + + dateOfBirth + "," + + issued + "," + + expires + "," + + sex + "," + + eyes + "," + + height + "," + + organDonor + "," + + licenseClass; + } + +} diff --git a/src/test/java/zygmundfelt/dan/mesolabstrings/AppTest.java b/src/test/java/zygmundfelt/dan/mesolabstrings/AppTest.java new file mode 100644 index 0000000..ec14c69 --- /dev/null +++ b/src/test/java/zygmundfelt/dan/mesolabstrings/AppTest.java @@ -0,0 +1,38 @@ +package zygmundfelt.dan.mesolabstrings; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +/** + * Unit test for simple App. + */ +public class AppTest + extends TestCase +{ + /** + * Create the test case + * + * @param testName name of the test case + */ + public AppTest( String testName ) + { + super( testName ); + } + + /** + * @return the suite of tests being tested + */ + public static Test suite() + { + return new TestSuite( AppTest.class ); + } + + /** + * Rigourous Test :-) + */ + public void testApp() + { + assertTrue( true ); + } +} diff --git a/src/test/java/zygmundfelt/dan/mesolabstrings/TestAddress.java b/src/test/java/zygmundfelt/dan/mesolabstrings/TestAddress.java new file mode 100644 index 0000000..8c02d8e --- /dev/null +++ b/src/test/java/zygmundfelt/dan/mesolabstrings/TestAddress.java @@ -0,0 +1,26 @@ +package zygmundfelt.dan.mesolabstrings; + +import org.junit.*; + +public class TestAddress { + + @Test + public void toStringForCSVTest() { + Address address = new Address("100 Emoji Blvd", "Philadelphia", "PA", "19100"); + String expected = "100 Emoji Blvd,Philadelphia,PA,19100"; + + String actual = address.toStringForCSV(); + + Assert.assertEquals(expected, actual); + } + + @Test + public void toStringForCSVEmptyTest() { + Address address = new Address("", "", "", ""); + String expected = ",,,"; + + String actual = address.toStringForCSV(); + + Assert.assertEquals(expected, actual); + } +} diff --git a/src/test/java/zygmundfelt/dan/mesolabstrings/TestName.java b/src/test/java/zygmundfelt/dan/mesolabstrings/TestName.java new file mode 100644 index 0000000..b923401 --- /dev/null +++ b/src/test/java/zygmundfelt/dan/mesolabstrings/TestName.java @@ -0,0 +1,36 @@ +package zygmundfelt.dan.mesolabstrings; + +import org.junit.*; + +public class TestName { + + @Test + public void toStringForCSVTest() { + Name name = new Name("Zygmund-Felt", "Daniel", "C"); + String expected = "Zygmund-Felt,Daniel,C"; + + String actual = name.toStringForCSV(); + + Assert.assertEquals(expected, actual); + } + + @Test + public void toStringForCSVNoMiddleTest() { + Name name = new Name("Zygmund-Felt", "Daniel", ""); + String expected = "Zygmund-Felt,Daniel,"; + + String actual = name.toStringForCSV(); + + Assert.assertEquals(expected, actual); + } + + @Test + public void toStringForCSVEmptyTest() { + Name name = new Name("", "", ""); + String expected = ",,"; + + String actual = name.toStringForCSV(); + + Assert.assertEquals(expected, actual); + } +} diff --git a/src/test/java/zygmundfelt/dan/mesolabstrings/TestPADriversLicense.java b/src/test/java/zygmundfelt/dan/mesolabstrings/TestPADriversLicense.java new file mode 100644 index 0000000..8b5a0be --- /dev/null +++ b/src/test/java/zygmundfelt/dan/mesolabstrings/TestPADriversLicense.java @@ -0,0 +1,18 @@ +package zygmundfelt.dan.mesolabstrings; + +import org.junit.*; + +public class TestPADriversLicense { + + @Test + public void getCSVHeaderTest() { + String expected = "licenseNumber,lastName,firstName,middleName,address,city,state,zipCode,dateOfBirth,issued,expires,sex,eyes,height,organDonor,licenseClass"; + + String actual = PADriversLicense.getCSVHeader(); + + Assert.assertEquals(expected, actual); + } + + + +} From ea7dde80c37408edeacc9be4a89ac01e9b2235f2 Mon Sep 17 00:00:00 2001 From: Dan Zygmund-Felt Date: Fri, 19 May 2017 15:09:34 -0400 Subject: [PATCH 2/7] Getting closer with implementations for part1 --- .../dan/mesolabstrings/PADriversLicense.java | 30 +++++++++++-------- .../mesolabstrings/TestPADriversLicense.java | 20 +++++++++++-- 2 files changed, 35 insertions(+), 15 deletions(-) diff --git a/src/main/java/zygmundfelt/dan/mesolabstrings/PADriversLicense.java b/src/main/java/zygmundfelt/dan/mesolabstrings/PADriversLicense.java index 88105f1..b355557 100644 --- a/src/main/java/zygmundfelt/dan/mesolabstrings/PADriversLicense.java +++ b/src/main/java/zygmundfelt/dan/mesolabstrings/PADriversLicense.java @@ -1,5 +1,6 @@ package zygmundfelt.dan.mesolabstrings; +import java.util.ArrayList; import java.util.List; public class PADriversLicense { @@ -13,15 +14,15 @@ public class PADriversLicense { private String state; private String zipCode; private String dateOfBirth; + private String issued; + private String expires; private String sex; - private String licenseClass; private String eyes; private String height; - private String issued; - private String expires; private String organDonor; + private String licenseClass; - public PADriversLicense(String licenseNumber, String lastName, String firstName, String middleName, String address, String city, String state, String zipCode, String dateOfBirth, String sex, String licenseClass, String eyes, String height, String issued, String expires, String organDonor) { + public PADriversLicense(String licenseNumber, String lastName, String firstName, String middleName, String address, String city, String state, String zipCode, String dateOfBirth, String issued, String expires, String sex, String eyes, String height, String organDonor, String licenseClass) { this.licenseNumber = licenseNumber; this.lastName = lastName; this.firstName = firstName; @@ -31,27 +32,30 @@ public PADriversLicense(String licenseNumber, String lastName, String firstName, this.state = state; this.zipCode = zipCode; this.dateOfBirth = dateOfBirth; + this.issued = issued; + this.expires = expires; this.sex = sex; - this.licenseClass = licenseClass; this.eyes = eyes; this.height = height; - this.issued = issued; - this.expires = expires; this.organDonor = organDonor; + this.licenseClass = licenseClass; } - //TODO + //TODO - check input to ensure valid header public static List deserialize(String input) { - return null; + String[] arr = input.split(","); + List list = new ArrayList(); + for(int i = 1; i < arr.length / 16; i++) { + list.add(new PADriversLicense(arr[i*16],arr[i*16 + 1],arr[i*16 + 2],arr[i*16+3],arr[i*16+4],arr[i*16+5],arr[i*16 + 6],arr[i*16 + 7],arr[i*16 + 8],arr[i*16 + 9],arr[i*16 + 10],arr[i*16 + 11],arr[i*16 + 12],arr[i*16 + 13],arr[i*16 + 14],arr[i*16 + 15])); + } + return list; } - //TODO public static String getCSVHeader() { - return "licenseNumber,lastName,firstName,middleName,address,city,state,zipCode,dateOfBirth,issued,expires,sex,eyes,height,organDonor,licenseClass"; + return "licenseNumber,lastName,firstName,middleName,address,city,state,zipCode,dateOfBirth,issued,expires,sex,eyes,height,organDonor,licenseClass,"; } - //TODO - public String serializeToCSV(List list) { + public static String serializeToCSV(List list) { StringBuilder sb = new StringBuilder(); sb.append(getCSVHeader()); for(PADriversLicense license : list) { diff --git a/src/test/java/zygmundfelt/dan/mesolabstrings/TestPADriversLicense.java b/src/test/java/zygmundfelt/dan/mesolabstrings/TestPADriversLicense.java index 8b5a0be..7db0067 100644 --- a/src/test/java/zygmundfelt/dan/mesolabstrings/TestPADriversLicense.java +++ b/src/test/java/zygmundfelt/dan/mesolabstrings/TestPADriversLicense.java @@ -2,17 +2,33 @@ import org.junit.*; +import java.util.ArrayList; +import java.util.List; + public class TestPADriversLicense { @Test public void getCSVHeaderTest() { - String expected = "licenseNumber,lastName,firstName,middleName,address,city,state,zipCode,dateOfBirth,issued,expires,sex,eyes,height,organDonor,licenseClass"; + String expected = "licenseNumber,lastName,firstName,middleName,address,city,state,zipCode,dateOfBirth,issued,expires,sex,eyes,height,organDonor,licenseClass,"; String actual = PADriversLicense.getCSVHeader(); Assert.assertEquals(expected, actual); } - + @Test + public void serializeToCSVSingleRecordTest() { + List list = new ArrayList(); + list.add(new PADriversLicense("001","Zygmund-Felt","Dan","C","123 Skidoo Ln","philadelphia","PA","19020","09/09/2009","12/12/2012", "12/12/2018","M","Brown","5'8","Yes", "D")); + String expected = "licenseNumber,lastName,firstName,middleName,address,city,state,zipCode,dateOfBirth,issued,expires,sex,eyes,height,organDonor,licenseClass,001,Zygmund-Felt,Dan,C,123 Skidoo Ln,philadelphia,PA,19020,09/09/2009,12/12/2012,12/12/2018,M,Brown,5'8,Yes,D"; + + String actual = PADriversLicense.serializeToCSV(list); + Assert.assertEquals(expected, actual); + } + + @Test + public void deserializeTest() { + + } } From eeeb104175d7a90c75f46c8a30a091aa809b6da2 Mon Sep 17 00:00:00 2001 From: Dan Zygmund-Felt Date: Fri, 19 May 2017 17:01:24 -0400 Subject: [PATCH 3/7] More or less finished with Part1, ready to move on to JSON. --- .../zygmundfelt/dan/mesolabstrings/App.java | 11 +++++---- .../dan/mesolabstrings/DriversLicense.java | 18 -------------- .../dan/mesolabstrings/PADriversLicense.java | 24 ++++++++++++------- .../mesolabstrings/TestPADriversLicense.java | 24 +++++++++++++++++-- src/test/resources/sample.csv | 14 +++++++++++ 5 files changed, 58 insertions(+), 33 deletions(-) delete mode 100644 src/main/java/zygmundfelt/dan/mesolabstrings/DriversLicense.java create mode 100644 src/test/resources/sample.csv diff --git a/src/main/java/zygmundfelt/dan/mesolabstrings/App.java b/src/main/java/zygmundfelt/dan/mesolabstrings/App.java index 9c8842d..e2df612 100644 --- a/src/main/java/zygmundfelt/dan/mesolabstrings/App.java +++ b/src/main/java/zygmundfelt/dan/mesolabstrings/App.java @@ -1,13 +1,14 @@ package zygmundfelt.dan.mesolabstrings; + /** * Hello world! * */ -public class App -{ - public static void main( String[] args ) - { - System.out.println( "Hello World!" ); +public class App { + + + public static void main(String[] args) { + } } diff --git a/src/main/java/zygmundfelt/dan/mesolabstrings/DriversLicense.java b/src/main/java/zygmundfelt/dan/mesolabstrings/DriversLicense.java deleted file mode 100644 index 599bd96..0000000 --- a/src/main/java/zygmundfelt/dan/mesolabstrings/DriversLicense.java +++ /dev/null @@ -1,18 +0,0 @@ -package zygmundfelt.dan.mesolabstrings; - - -import java.lang.reflect.Field; - -public abstract class DriversLicense { -//this would be problematic because the order is indeterminate. - public String getHeaders() { - StringBuilder sb = new StringBuilder(); - for(Field field : this.getClass().getFields()) { - sb.append(field.getName()); - sb.append(","); - } - sb.deleteCharAt(sb.length() - 1); - return sb.toString(); - } - -} diff --git a/src/main/java/zygmundfelt/dan/mesolabstrings/PADriversLicense.java b/src/main/java/zygmundfelt/dan/mesolabstrings/PADriversLicense.java index b355557..1f819ae 100644 --- a/src/main/java/zygmundfelt/dan/mesolabstrings/PADriversLicense.java +++ b/src/main/java/zygmundfelt/dan/mesolabstrings/PADriversLicense.java @@ -1,5 +1,6 @@ package zygmundfelt.dan.mesolabstrings; +import java.io.*; import java.util.ArrayList; import java.util.List; @@ -41,18 +42,27 @@ public PADriversLicense(String licenseNumber, String lastName, String firstName, this.licenseClass = licenseClass; } + public static String fileToString(File file) throws IOException { + FileReader fReader = new FileReader(file); + BufferedReader bReader = new BufferedReader(fReader); + String output = ""; + for (String line; (line = bReader.readLine()) != null; output += line + "\n"); + return output; + } + //TODO - check input to ensure valid header - public static List deserialize(String input) { - String[] arr = input.split(","); + public static List deserializeFromCSV(String string) { List list = new ArrayList(); - for(int i = 1; i < arr.length / 16; i++) { - list.add(new PADriversLicense(arr[i*16],arr[i*16 + 1],arr[i*16 + 2],arr[i*16+3],arr[i*16+4],arr[i*16+5],arr[i*16 + 6],arr[i*16 + 7],arr[i*16 + 8],arr[i*16 + 9],arr[i*16 + 10],arr[i*16 + 11],arr[i*16 + 12],arr[i*16 + 13],arr[i*16 + 14],arr[i*16 + 15])); + String[] lineBreaks = string.split("\n"); + for(int i = 1; i < lineBreaks.length; i++) { + String[] arr = lineBreaks[i].split(","); + list.add(new PADriversLicense(arr[0],arr[1],arr[2],arr[3],arr[4],arr[5],arr[6],arr[7],arr[8],arr[9],arr[10],arr[11],arr[12],arr[13],arr[14],arr[15])); } return list; } public static String getCSVHeader() { - return "licenseNumber,lastName,firstName,middleName,address,city,state,zipCode,dateOfBirth,issued,expires,sex,eyes,height,organDonor,licenseClass,"; + return "licenseNumber,lastName,firstName,middleName,address,city,state,zipCode,dateOfBirth,issued,expires,sex,eyes,height,organDonor,licenseClass\n"; } public static String serializeToCSV(List list) { @@ -60,9 +70,7 @@ public static String serializeToCSV(List list) { sb.append(getCSVHeader()); for(PADriversLicense license : list) { sb.append(license.toStringForCSV()); - sb.append(","); } - sb.deleteCharAt(sb.length() - 1); return sb.toString(); } @@ -82,7 +90,7 @@ public String toStringForCSV() { + eyes + "," + height + "," + organDonor + "," - + licenseClass; + + licenseClass + "\n"; } } diff --git a/src/test/java/zygmundfelt/dan/mesolabstrings/TestPADriversLicense.java b/src/test/java/zygmundfelt/dan/mesolabstrings/TestPADriversLicense.java index 7db0067..6c0e7d1 100644 --- a/src/test/java/zygmundfelt/dan/mesolabstrings/TestPADriversLicense.java +++ b/src/test/java/zygmundfelt/dan/mesolabstrings/TestPADriversLicense.java @@ -9,18 +9,25 @@ public class TestPADriversLicense { @Test public void getCSVHeaderTest() { - String expected = "licenseNumber,lastName,firstName,middleName,address,city,state,zipCode,dateOfBirth,issued,expires,sex,eyes,height,organDonor,licenseClass,"; + String expected = "licenseNumber,lastName,firstName,middleName,address,city,state,zipCode,dateOfBirth,issued,expires,sex,eyes,height,organDonor,licenseClass\n"; String actual = PADriversLicense.getCSVHeader(); Assert.assertEquals(expected, actual); } + @Test + public void toStringForCSVTest() { + PADriversLicense dan = new PADriversLicense("001","Zygmund-Felt","Dan","C","123 Skidoo Ln","philadelphia","PA","19020","09/09/2009","12/12/2012", "12/12/2018","M","Brown","5'8","Yes", "D"); + String expected = "001,Zygmund-Felt,Dan,C,123 Skidoo Ln,philadelphia,PA,19020,09/09/2009,12/12/2012,12/12/2018,M,Brown,5'8,Yes,D\n"; + } + @Test public void serializeToCSVSingleRecordTest() { List list = new ArrayList(); list.add(new PADriversLicense("001","Zygmund-Felt","Dan","C","123 Skidoo Ln","philadelphia","PA","19020","09/09/2009","12/12/2012", "12/12/2018","M","Brown","5'8","Yes", "D")); - String expected = "licenseNumber,lastName,firstName,middleName,address,city,state,zipCode,dateOfBirth,issued,expires,sex,eyes,height,organDonor,licenseClass,001,Zygmund-Felt,Dan,C,123 Skidoo Ln,philadelphia,PA,19020,09/09/2009,12/12/2012,12/12/2018,M,Brown,5'8,Yes,D"; + String expected = "licenseNumber,lastName,firstName,middleName,address,city,state,zipCode,dateOfBirth,issued,expires,sex,eyes,height,organDonor,licenseClass\n" + + "001,Zygmund-Felt,Dan,C,123 Skidoo Ln,philadelphia,PA,19020,09/09/2009,12/12/2012,12/12/2018,M,Brown,5'8,Yes,D\n"; String actual = PADriversLicense.serializeToCSV(list); @@ -29,6 +36,19 @@ public void serializeToCSVSingleRecordTest() { @Test public void deserializeTest() { + String string = "licenseNumber,lastName,firstName,middleName,address,city,state,zipCode,dateOfBirth,issued,expires,sex,eyes,height,organDonor,licenseClass\n" + + "L098886498494,Lomax,Kevin,,9234 High St,Wilmington,MI,11111,9/3/1940,8/8/2008,8/8/2018,M,BRO,6'0'',YES,D\n" + + "L234234598495,Wick,John,Dogshead,2190 Badass Alley,Brooklyn,NY ,12321,6/6/1977,3/3/2000,1/1/2010,M,GRN,6'0'',YES,D\n" + + "L234235236253,Wyler,Alex,,234 Lake House St,Oswego,NY,32123,7/8/2000,4/8/2017,4/8/2027,M,BRO,5'11,YES,D\n" + + "L223523438497,Utah,Johnny,Salt,932 PointBreak Rd,Encino,CA,65456,2/5/1988,4/4/2000,4/4/2010,M,BRO,5'11,NO,D\n" + + "L101234101010,Starr,Patrick,,101 UnderTheSea Ct,Wilmington,HI,77777,10/07/1987,02-30-2010,02/30/2010,M,BRO,6'1,NO,D\n" + + "L101234107890,Zach,Leon,L,1234 BadAtSmash Ln,Wilmington,DE,99909,1/2/3456,3/3/2000,5/19/2107,M,BRO,4'3,NO,D"; + int expected = 6; + + List list = PADriversLicense.deserializeFromCSV(string); + int actual = list.size(); + Assert.assertEquals(expected, actual); } + } diff --git a/src/test/resources/sample.csv b/src/test/resources/sample.csv new file mode 100644 index 0000000..bdadfdb --- /dev/null +++ b/src/test/resources/sample.csv @@ -0,0 +1,14 @@ +licenseNumber,lastName,firstName,middleName,address,city,state,zipCode,dateOfBirth,issued,expires,sex,eyes,height,organDonor,licenseClass +L364856498487,Long,Aaron,C,456 Street Dr,Wilmington,NJ,12345,06/17/1993,06/17/2014,06/30/2018,M,GRN,6'2,YES,D +L364856423452,Kim,Chris,,820 District Dr,Wilmington,DE,54321,12/11/1980,08/12/2013,12/11/2018,M,BRO,"6'5""",NO,D +L363345398489,Stamatelos,Jarryd,,123 Main St ,Wilmington,NJ,21334,3/17/1988,3/17/2016,3/20/2020,M,BRO,7'0'',YES,D +L809239899490,Cage,Nick,Treasure,362 Fancy St,Los Angeles,CA,55555,02/02/1970,02/02/2000,02/02/2006,M,BRO,6'0'',YES,D +L234252352391,Reeves,Keanu,,876 Zion Dr,White Plains,NY,44444,6/6/1955,6/9/2005,6/9/2010,M,GRN,5'11,YES,D +L364235898492,Anderson,John,Neo,2959 57th St,Manhattan,NY,33333,8/6/1980,7/7/1999,7/7/2009,M,BRO,5'11,NO,D +L323523423193,Traven,Jack,V,25 Speed Ln,Hollywood,CA,22222,2/20/1994,2/20/217,2/20/2027,M,BRO,5'11,YES,D +L098886498494,Lomax,Kevin,,9234 High St,Wilmington,MI,11111,9/3/1940,8/8/2008,8/8/2018,M,BRO,6'0'',YES,D +L234234598495,Wick,John,Dogshead,2190 Badass Alley,Brooklyn,NY ,12321,6/6/1977,3/3/2000,1/1/2010,M,GRN,6'0'',YES,D +L234235236253,Wyler,Alex,,234 Lake House St,Oswego,NY,32123,7/8/2000,4/8/2017,4/8/2027,M,BRO,5'11,YES,D +L223523438497,Utah,Johnny,Salt,932 PointBreak Rd,Encino,CA,65456,2/5/1988,4/4/2000,4/4/2010,M,BRO,5'11,NO,D +L101234101010,Starr,Patrick,,101 UnderTheSea Ct,Wilmington,HI,77777,10/07/1987,02-30-2010,02/30/2010,M,BRO,6'1,NO,D +L101234107890,Zach,Leon,L,1234 BadAtSmash Ln,Wilmington,DE,99909,1/2/3456,3/3/2000,5/19/2107,M,BRO,4'3,NO,D \ No newline at end of file From c600fe9facac03699790ca12a112054efbfa5282 Mon Sep 17 00:00:00 2001 From: Dan Zygmund-Felt Date: Fri, 19 May 2017 20:06:19 -0400 Subject: [PATCH 4/7] Making some headway with regex. --- .../dan/mesolabstrings/PADriversLicense.java | 156 +++++++++++++++++- 1 file changed, 155 insertions(+), 1 deletion(-) diff --git a/src/main/java/zygmundfelt/dan/mesolabstrings/PADriversLicense.java b/src/main/java/zygmundfelt/dan/mesolabstrings/PADriversLicense.java index 1f819ae..87ffc42 100644 --- a/src/main/java/zygmundfelt/dan/mesolabstrings/PADriversLicense.java +++ b/src/main/java/zygmundfelt/dan/mesolabstrings/PADriversLicense.java @@ -3,6 +3,8 @@ import java.io.*; import java.util.ArrayList; import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; public class PADriversLicense { @@ -42,7 +44,26 @@ public PADriversLicense(String licenseNumber, String lastName, String firstName, this.licenseClass = licenseClass; } - public static String fileToString(File file) throws IOException { + private PADriversLicense(String[] arr) { + licenseNumber = arr[0]; + lastName = arr[1]; + firstName = arr[2]; + middleName = arr[3]; + address = arr[4]; + city = arr[5]; + state = arr[6]; + zipCode = arr[7]; + dateOfBirth = arr[8]; + issued = arr[9]; + expires = arr[10]; + sex = arr[11]; + eyes = arr[12]; + height = arr[13]; + organDonor = arr[14]; + licenseNumber = arr[15]; + } + + public static String CSVToString(File file) throws IOException { FileReader fReader = new FileReader(file); BufferedReader bReader = new BufferedReader(fReader); String output = ""; @@ -93,4 +114,137 @@ public String toStringForCSV() { + licenseClass + "\n"; } + /* + Split into individual records. + */ + private static List splitToIndividualRecords(String string) { + List list = new ArrayList(); + Pattern pattern = Pattern.compile("\\{(\\s)+(\"[a-zA-Z0-9]+\": (\"([a-zA-Z0-9/' ]+)\"|\"\"),?\\s+)+}"); + Matcher m = pattern.matcher(string); + ArrayList matches = new ArrayList(); + while(m.find()) { + matches.add(m.group()); + } + for(String s : matches) System.out.println(s); + return list; + } + + /* + Put every field of an individual record into an array. + */ + private static String[] individualRecordToArray(String string) { + Pattern pattern = Pattern.compile(": (\"([a-zA-Z0-9/' ]+)\"|\"\")"); + Matcher m = pattern.matcher(string); + String[] individualRecord = new String[16]; + int i = 0; + while(m.find()) { + individualRecord[i++] = m.group().substring(3); + } + return individualRecord; + } + + + public static List deserializeFromJSON(String string) { + List list = new ArrayList(); + List stringList = splitToIndividualRecords(string); + for(String record : stringList) { + String[] fieldArray = individualRecordToArray(record); + list.add(new PADriversLicense(fieldArray)); + } + return list; + } + + public static void main(String[] args) { + deserializeFromJSON("{\n" + + " \"licenseNumber\": \"L364856498487\",\n" + + " \"lastName\": \"Long\",\n" + + " \"firstName\": \"Aaron\",\n" + + " \"middleName\": \"C\",\n" + + " \"address\": \"456 Street Dr\",\n" + + " \"city\": \"Wilmington\",\n" + + " \"state\": \"NJ\",\n" + + " \"zipCode\": \"12345\",\n" + + " \"dateOfBirth\": \"06/17/1993\",\n" + + " \"issued\": \"06/17/2014\",\n" + + " \"expires\": \"06/30/2018\",\n" + + " \"sex\": \"M\",\n" + + " \"eyes\": \"GRN\",\n" + + " \"height\": \"6'2\",\n" + + " \"organDonor\": \"YES\",\n" + + " \"licenseClass\": \"D\"\n" + + " },\n" + + " {\n" + + " \"licenseNumber\": \"L364856423452\",\n" + + " \"lastName\": \"Kim\",\n" + + " \"firstName\": \"Chris\",\n" + + " \"middleName\": \"\",\n" + + " \"address\": \"820 District Dr\",\n" + + " \"city\": \"Wilmington\",\n" + + " \"state\": \"DE\",\n" + + " \"zipCode\": \"54321\",\n" + + " \"dateOfBirth\": \"12/11/1980\",\n" + + " \"issued\": \"08/12/2013\",\n" + + " \"expires\": \"12/11/2018\",\n" + + " \"sex\": \"M\",\n" + + " \"eyes\": \"BRO\",\n" + + " \"height\": \"6'5\",\n" + + " \"organDonor\": \"NO\",\n" + + " \"licenseClass\": \"D\"\n" + + " },\n" + + " {\n" + + " \"licenseNumber\": \"L363345398489\",\n" + + " \"lastName\": \"Stamatelos\",\n" + + " \"firstName\": \"Jarryd\",\n" + + " \"middleName\": \"\",\n" + + " \"address\": \"123 Main St\",\n" + + " \"city\": \"Wilmington\",\n" + + " \"state\": \"NJ\",\n" + + " \"zipCode\": \"21334\",\n" + + " \"dateOfBirth\": \"3/17/1988\",\n" + + " \"issued\": \"3/17/2016\",\n" + + " \"expires\": \"3/20/2020\",\n" + + " \"sex\": \"M\",\n" + + " \"eyes\": \"BRO\",\n" + + " \"height\": \"7'0''\",\n" + + " \"organDonor\": \"YES\",\n" + + " \"licenseClass\": \"D\"\n" + + " },\n" + + " {\n" + + " \"licenseNumber\": \"L809239899490\",\n" + + " \"lastName\": \"Cage\",\n" + + " \"firstName\": \"Nick\",\n" + + " \"middleName\": \"Treasure\",\n" + + " \"address\": \"362 Fancy St\",\n" + + " \"city\": \"Los Angeles\",\n" + + " \"state\": \"CA\",\n" + + " \"zipCode\": \"55555\",\n" + + " \"dateOfBirth\": \"02/02/1970\",\n" + + " \"issued\": \"02/02/2000\",\n" + + " \"expires\": \"02/02/2006\",\n" + + " \"sex\": \"M\",\n" + + " \"eyes\": \"BRO\",\n" + + " \"height\": \"6'0''\",\n" + + " \"organDonor\": \"YES\",\n" + + " \"licenseClass\": \"D\"\n" + + " },\n" + + " {\n" + + " \"licenseNumber\": \"L234252352391\",\n" + + " \"lastName\": \"Reeves\",\n" + + " \"firstName\": \"Keanu\",\n" + + " \"middleName\": \"\",\n" + + " \"address\": \"876 Zion Dr\",\n" + + " \"city\": \"White Plains\",\n" + + " \"state\": \"NY\",\n" + + " \"zipCode\": \"44444\",\n" + + " \"dateOfBirth\": \"6/6/1955\",\n" + + " \"issued\": \"6/9/2005\",\n" + + " \"expires\": \"6/9/2010\",\n" + + " \"sex\": \"M\",\n" + + " \"eyes\": \"GRN\",\n" + + " \"height\": \"5'11\",\n" + + " \"organDonor\": \"YES\",\n" + + " \"licenseClass\": \"D\"\n" + + " }"); + } + } From 999f359547d5016501b1b06773b648eab04475b2 Mon Sep 17 00:00:00 2001 From: Dan Zygmund-Felt Date: Sat, 20 May 2017 11:36:03 -0400 Subject: [PATCH 5/7] I think the deserializing methods for JSON are working. Plus I added a sample.json for testing. --- .../dan/mesolabstrings/PADriversLicense.java | 44 +++- .../mesolabstrings/TestPADriversLicense.java | 31 ++- src/test/resources/sample.json | 236 ++++++++++++++++++ 3 files changed, 303 insertions(+), 8 deletions(-) create mode 100644 src/test/resources/sample.json diff --git a/src/main/java/zygmundfelt/dan/mesolabstrings/PADriversLicense.java b/src/main/java/zygmundfelt/dan/mesolabstrings/PADriversLicense.java index 87ffc42..0919838 100644 --- a/src/main/java/zygmundfelt/dan/mesolabstrings/PADriversLicense.java +++ b/src/main/java/zygmundfelt/dan/mesolabstrings/PADriversLicense.java @@ -63,7 +63,10 @@ private PADriversLicense(String[] arr) { licenseNumber = arr[15]; } - public static String CSVToString(File file) throws IOException { + /* + Can be used for CSV or JSON. + */ + public static String fileToString(File file) throws IOException { FileReader fReader = new FileReader(file); BufferedReader bReader = new BufferedReader(fReader); String output = ""; @@ -118,27 +121,28 @@ public String toStringForCSV() { Split into individual records. */ private static List splitToIndividualRecords(String string) { - List list = new ArrayList(); Pattern pattern = Pattern.compile("\\{(\\s)+(\"[a-zA-Z0-9]+\": (\"([a-zA-Z0-9/' ]+)\"|\"\"),?\\s+)+}"); Matcher m = pattern.matcher(string); ArrayList matches = new ArrayList(); while(m.find()) { matches.add(m.group()); } - for(String s : matches) System.out.println(s); - return list; + //for(String s : matches) System.out.println(s); + return matches; } /* Put every field of an individual record into an array. */ - private static String[] individualRecordToArray(String string) { - Pattern pattern = Pattern.compile(": (\"([a-zA-Z0-9/' ]+)\"|\"\")"); + public static String[] individualRecordToArray(String string) { + Pattern pattern = Pattern.compile("\"([a-zA-Z0-9/' ]*)\""); Matcher m = pattern.matcher(string); String[] individualRecord = new String[16]; int i = 0; while(m.find()) { - individualRecord[i++] = m.group().substring(3); + m.find(); + individualRecord[i] = m.group().replaceAll("\"",""); + i++; } return individualRecord; } @@ -154,6 +158,32 @@ public static List deserializeFromJSON(String string) { return list; } + public static String serializeToJSON(List list) { + + return null; + } + + public static String toStringForJSON(PADriversLicense license) { + return "{\n" + + " \"licenseNumber\": \"" + license.licenseNumber + "\",\n" + + " \"lastName\": \"" + license.lastName + "\",\n" + + " \"firstName\": \"" + license.firstName + "\",\n" + + " \"middleName\": \"" + license.middleName + "\",\n" + + " \"address\": \"" + license.address + "\",\n" + + " \"city\": \"" + license.city + "\",\n" + + " \"state\": \"" + license.state + "\",\n" + + " \"zipCode\": \"" + license.zipCode + "\",\n" + + " \"dateOfBirth\": \"" + license.dateOfBirth + "\",\n" + + " \"issued\": \"" + license.issued + "\",\n" + + " \"expires\": \"" + license.expires + "\",\n" + + " \"sex\": \"" + license.sex + "\",\n" + + " \"eyes\": \"" + license.eyes + "\",\n" + + " \"height\": \"" + license.height + "\",\n" + + " \"organDonor\": \"" + license.organDonor + "\",\n" + + " \"licenseClass\": \"" + license.licenseClass + "\"\n" + + " }"; + } + public static void main(String[] args) { deserializeFromJSON("{\n" + " \"licenseNumber\": \"L364856498487\",\n" + diff --git a/src/test/java/zygmundfelt/dan/mesolabstrings/TestPADriversLicense.java b/src/test/java/zygmundfelt/dan/mesolabstrings/TestPADriversLicense.java index 6c0e7d1..b3d12bc 100644 --- a/src/test/java/zygmundfelt/dan/mesolabstrings/TestPADriversLicense.java +++ b/src/test/java/zygmundfelt/dan/mesolabstrings/TestPADriversLicense.java @@ -35,7 +35,7 @@ public void serializeToCSVSingleRecordTest() { } @Test - public void deserializeTest() { + public void deserializeFromCSVTest() { String string = "licenseNumber,lastName,firstName,middleName,address,city,state,zipCode,dateOfBirth,issued,expires,sex,eyes,height,organDonor,licenseClass\n" + "L098886498494,Lomax,Kevin,,9234 High St,Wilmington,MI,11111,9/3/1940,8/8/2008,8/8/2018,M,BRO,6'0'',YES,D\n" + "L234234598495,Wick,John,Dogshead,2190 Badass Alley,Brooklyn,NY ,12321,6/6/1977,3/3/2000,1/1/2010,M,GRN,6'0'',YES,D\n" + @@ -51,4 +51,33 @@ public void deserializeTest() { Assert.assertEquals(expected, actual); } + @Test + public void individualRecordToArrayForJSONTest() { + String string = "{\n" + + " \"licenseNumber\": \"L234252352391\",\n" + + " \"lastName\": \"Reeves\",\n" + + " \"firstName\": \"Keanu\",\n" + + " \"middleName\": \"\",\n" + + " \"address\": \"876 Zion Dr\",\n" + + " \"city\": \"White Plains\",\n" + + " \"state\": \"NY\",\n" + + " \"zipCode\": \"44444\",\n" + + " \"dateOfBirth\": \"6/6/1955\",\n" + + " \"issued\": \"6/9/2005\",\n" + + " \"expires\": \"6/9/2010\",\n" + + " \"sex\": \"M\",\n" + + " \"eyes\": \"GRN\",\n" + + " \"height\": \"5'11\",\n" + + " \"organDonor\": \"YES\",\n" + + " \"licenseClass\": \"D\"\n" + + " }"; + String[] expected = {"L234252352391","Reeves","Keanu","","876 Zion Dr","White Plains","NY","44444","6/6/1955","6/9/2005","6/9/2010","M","GRN","5'11","YES","D"}; + + String[] actual = PADriversLicense.individualRecordToArray(string); + + for(int i = 0; i < 16; i++) { + Assert.assertEquals(expected[i], actual[i]); + } + } + } diff --git a/src/test/resources/sample.json b/src/test/resources/sample.json new file mode 100644 index 0000000..bb31453 --- /dev/null +++ b/src/test/resources/sample.json @@ -0,0 +1,236 @@ +[ + { + "licenseNumber": "L364856498487", + "lastName": "Long", + "firstName": "Aaron", + "middleName": "C", + "address": "456 Street Dr", + "city": "Wilmington", + "state": "NJ", + "zipCode": "12345", + "dateOfBirth": "06/17/1993", + "issued": "06/17/2014", + "expires": "06/30/2018", + "sex": "M", + "eyes": "GRN", + "height": "6'2", + "organDonor": "YES", + "licenseClass": "D" + }, + { + "licenseNumber": "L364856423452", + "lastName": "Kim", + "firstName": "Chris", + "middleName": "", + "address": "820 District Dr", + "city": "Wilmington", + "state": "DE", + "zipCode": "54321", + "dateOfBirth": "12/11/1980", + "issued": "08/12/2013", + "expires": "12/11/2018", + "sex": "M", + "eyes": "BRO", + "height": "6'5", + "organDonor": "NO", + "licenseClass": "D" + }, + { + "licenseNumber": "L363345398489", + "lastName": "Stamatelos", + "firstName": "Jarryd", + "middleName": "", + "address": "123 Main St", + "city": "Wilmington", + "state": "NJ", + "zipCode": "21334", + "dateOfBirth": "3/17/1988", + "issued": "3/17/2016", + "expires": "3/20/2020", + "sex": "M", + "eyes": "BRO", + "height": "7'0''", + "organDonor": "YES", + "licenseClass": "D" + }, + { + "licenseNumber": "L809239899490", + "lastName": "Cage", + "firstName": "Nick", + "middleName": "Treasure", + "address": "362 Fancy St", + "city": "Los Angeles", + "state": "CA", + "zipCode": "55555", + "dateOfBirth": "02/02/1970", + "issued": "02/02/2000", + "expires": "02/02/2006", + "sex": "M", + "eyes": "BRO", + "height": "6'0''", + "organDonor": "YES", + "licenseClass": "D" + }, + { + "licenseNumber": "L234252352391", + "lastName": "Reeves", + "firstName": "Keanu", + "middleName": "", + "address": "876 Zion Dr", + "city": "White Plains", + "state": "NY", + "zipCode": "44444", + "dateOfBirth": "6/6/1955", + "issued": "6/9/2005", + "expires": "6/9/2010", + "sex": "M", + "eyes": "GRN", + "height": "5'11", + "organDonor": "YES", + "licenseClass": "D" + }, + { + "licenseNumber": "L364235898492", + "lastName": "Anderson", + "firstName": "John", + "middleName": "Neo", + "address": "2959 57th St", + "city": "Manhattan", + "state": "NY", + "zipCode": "33333", + "dateOfBirth": "8/6/1980", + "issued": "7/7/1999", + "expires": "7/7/2009", + "sex": "M", + "eyes": "BRO", + "height": "5'11", + "organDonor": "NO", + "licenseClass": "D" + }, + { + "licenseNumber": "L323523423193", + "lastName": "Traven", + "firstName": "Jack", + "middleName": "V", + "address": "25 Speed Ln", + "city": "Hollywood", + "state": "CA", + "zipCode": "22222", + "dateOfBirth": "2/20/1994", + "issued": "2/20/217", + "expires": "2/20/2027", + "sex": "M", + "eyes": "BRO", + "height": "5'11", + "organDonor": "YES", + "licenseClass": "D" + }, + { + "licenseNumber": "L098886498494", + "lastName": "Lomax", + "firstName": "Kevin", + "middleName": "", + "address": "9234 High St", + "city": "Wilmington", + "state": "MI", + "zipCode": "11111", + "dateOfBirth": "9/3/1940", + "issued": "8/8/2008", + "expires": "8/8/2018", + "sex": "M", + "eyes": "BRO", + "height": "6'0''", + "organDonor": "YES", + "licenseClass": "D" + }, + { + "licenseNumber": "L234234598495", + "lastName": "Wick", + "firstName": "John", + "middleName": "Dogshead", + "address": "2190 Badass Alley", + "city": "Brooklyn", + "state": "NY", + "zipCode": "12321", + "dateOfBirth": "6/6/1977", + "issued": "3/3/2000", + "expires": "1/1/2010", + "sex": "M", + "eyes": "GRN", + "height": "6'0''", + "organDonor": "YES", + "licenseClass": "D" + }, + { + "licenseNumber": "L234235236253", + "lastName": "Wyler", + "firstName": "Alex", + "middleName": "", + "address": "234 Lake House St", + "city": "Oswego", + "state": "NY", + "zipCode": "32123", + "dateOfBirth": "7/8/2000", + "issued": "4/8/2017", + "expires": "4/8/2027", + "sex": "M", + "eyes": "BRO", + "height": "5'11", + "organDonor": "YES", + "licenseClass": "D" + }, + { + "licenseNumber": "L223523438497", + "lastName": "Utah", + "firstName": "Johnny", + "middleName": "Salt", + "address": "932 PointBreak Rd", + "city": "Encino", + "state": "CA", + "zipCode": "65456", + "dateOfBirth": "2/5/1988", + "issued": "4/4/2000", + "expires": "4/4/2010", + "sex": "M", + "eyes": "BRO", + "height": "5'11", + "organDonor": "NO", + "licenseClass": "D" + }, + { + "licenseNumber": "L101234101010", + "lastName": "Starr", + "firstName": "Patrick", + "middleName": "", + "address": "101 UnderTheSea Ct", + "city": "Wilmington", + "state": "HI", + "zipCode": "77777", + "dateOfBirth": "10/07/1987", + "issued": "02-30-2010", + "expires": "02/30/2010", + "sex": "M", + "eyes": "BRO", + "height": "6'1", + "organDonor": "NO", + "licenseClass": "D" + }, + { + "licenseNumber": "L101234107890", + "lastName": "Zach", + "firstName": "Leon", + "middleName": "L", + "address": "1234 BadAtSmash Ln", + "city": "Wilmington", + "state": "DE", + "zipCode": "99909", + "dateOfBirth": "1/2/3456", + "issued": "3/3/2000", + "expires": "5/19/2107", + "sex": "M", + "eyes": "BRO", + "height": "4'3", + "organDonor": "NO", + "licenseClass": "D" + } +] From f60e28b97ef5f5bd7b877e38ef093a36ec4ef845 Mon Sep 17 00:00:00 2001 From: Dan Zygmund-Felt Date: Sat, 20 May 2017 16:46:07 -0400 Subject: [PATCH 6/7] TODO: set this up to have an App interface that accepts files from user. Other than that, looks good. --- .../FormatNotAcceptedException.java | 6 + .../dan/mesolabstrings/PADriversLicense.java | 117 ++----- .../mesolabstrings/TestPADriversLicense.java | 327 ++++++++++++++++++ 3 files changed, 355 insertions(+), 95 deletions(-) create mode 100644 src/main/java/zygmundfelt/dan/mesolabstrings/FormatNotAcceptedException.java diff --git a/src/main/java/zygmundfelt/dan/mesolabstrings/FormatNotAcceptedException.java b/src/main/java/zygmundfelt/dan/mesolabstrings/FormatNotAcceptedException.java new file mode 100644 index 0000000..9cdf99a --- /dev/null +++ b/src/main/java/zygmundfelt/dan/mesolabstrings/FormatNotAcceptedException.java @@ -0,0 +1,6 @@ +package zygmundfelt.dan.mesolabstrings; + +import java.io.IOException; + +public final class FormatNotAcceptedException extends IOException { +} diff --git a/src/main/java/zygmundfelt/dan/mesolabstrings/PADriversLicense.java b/src/main/java/zygmundfelt/dan/mesolabstrings/PADriversLicense.java index 0919838..e97f953 100644 --- a/src/main/java/zygmundfelt/dan/mesolabstrings/PADriversLicense.java +++ b/src/main/java/zygmundfelt/dan/mesolabstrings/PADriversLicense.java @@ -60,7 +60,7 @@ private PADriversLicense(String[] arr) { eyes = arr[12]; height = arr[13]; organDonor = arr[14]; - licenseNumber = arr[15]; + licenseClass = arr[15]; } /* @@ -159,12 +159,18 @@ public static List deserializeFromJSON(String string) { } public static String serializeToJSON(List list) { - - return null; + StringBuilder sb = new StringBuilder(); + sb.append("[\n"); + for(PADriversLicense license : list) { + sb.append(toStringForJSON(license)); + } + sb.replace(sb.length() - 2, sb.length(),""); + sb.append("\n]"); + return sb.toString(); } public static String toStringForJSON(PADriversLicense license) { - return "{\n" + + return " {\n" + " \"licenseNumber\": \"" + license.licenseNumber + "\",\n" + " \"lastName\": \"" + license.lastName + "\",\n" + " \"firstName\": \"" + license.firstName + "\",\n" + @@ -181,100 +187,21 @@ public static String toStringForJSON(PADriversLicense license) { " \"height\": \"" + license.height + "\",\n" + " \"organDonor\": \"" + license.organDonor + "\",\n" + " \"licenseClass\": \"" + license.licenseClass + "\"\n" + - " }"; + " },\n"; + } + + public static List deserialize(String fileText, String desiredFormat) throws FormatNotAcceptedException { + if(desiredFormat.equalsIgnoreCase("CSV")) { + return deserializeFromCSV(fileText); + } else if(desiredFormat.equalsIgnoreCase("JSON")) { + return deserializeFromJSON(fileText); + } else { + throw new FormatNotAcceptedException(); + } } public static void main(String[] args) { - deserializeFromJSON("{\n" + - " \"licenseNumber\": \"L364856498487\",\n" + - " \"lastName\": \"Long\",\n" + - " \"firstName\": \"Aaron\",\n" + - " \"middleName\": \"C\",\n" + - " \"address\": \"456 Street Dr\",\n" + - " \"city\": \"Wilmington\",\n" + - " \"state\": \"NJ\",\n" + - " \"zipCode\": \"12345\",\n" + - " \"dateOfBirth\": \"06/17/1993\",\n" + - " \"issued\": \"06/17/2014\",\n" + - " \"expires\": \"06/30/2018\",\n" + - " \"sex\": \"M\",\n" + - " \"eyes\": \"GRN\",\n" + - " \"height\": \"6'2\",\n" + - " \"organDonor\": \"YES\",\n" + - " \"licenseClass\": \"D\"\n" + - " },\n" + - " {\n" + - " \"licenseNumber\": \"L364856423452\",\n" + - " \"lastName\": \"Kim\",\n" + - " \"firstName\": \"Chris\",\n" + - " \"middleName\": \"\",\n" + - " \"address\": \"820 District Dr\",\n" + - " \"city\": \"Wilmington\",\n" + - " \"state\": \"DE\",\n" + - " \"zipCode\": \"54321\",\n" + - " \"dateOfBirth\": \"12/11/1980\",\n" + - " \"issued\": \"08/12/2013\",\n" + - " \"expires\": \"12/11/2018\",\n" + - " \"sex\": \"M\",\n" + - " \"eyes\": \"BRO\",\n" + - " \"height\": \"6'5\",\n" + - " \"organDonor\": \"NO\",\n" + - " \"licenseClass\": \"D\"\n" + - " },\n" + - " {\n" + - " \"licenseNumber\": \"L363345398489\",\n" + - " \"lastName\": \"Stamatelos\",\n" + - " \"firstName\": \"Jarryd\",\n" + - " \"middleName\": \"\",\n" + - " \"address\": \"123 Main St\",\n" + - " \"city\": \"Wilmington\",\n" + - " \"state\": \"NJ\",\n" + - " \"zipCode\": \"21334\",\n" + - " \"dateOfBirth\": \"3/17/1988\",\n" + - " \"issued\": \"3/17/2016\",\n" + - " \"expires\": \"3/20/2020\",\n" + - " \"sex\": \"M\",\n" + - " \"eyes\": \"BRO\",\n" + - " \"height\": \"7'0''\",\n" + - " \"organDonor\": \"YES\",\n" + - " \"licenseClass\": \"D\"\n" + - " },\n" + - " {\n" + - " \"licenseNumber\": \"L809239899490\",\n" + - " \"lastName\": \"Cage\",\n" + - " \"firstName\": \"Nick\",\n" + - " \"middleName\": \"Treasure\",\n" + - " \"address\": \"362 Fancy St\",\n" + - " \"city\": \"Los Angeles\",\n" + - " \"state\": \"CA\",\n" + - " \"zipCode\": \"55555\",\n" + - " \"dateOfBirth\": \"02/02/1970\",\n" + - " \"issued\": \"02/02/2000\",\n" + - " \"expires\": \"02/02/2006\",\n" + - " \"sex\": \"M\",\n" + - " \"eyes\": \"BRO\",\n" + - " \"height\": \"6'0''\",\n" + - " \"organDonor\": \"YES\",\n" + - " \"licenseClass\": \"D\"\n" + - " },\n" + - " {\n" + - " \"licenseNumber\": \"L234252352391\",\n" + - " \"lastName\": \"Reeves\",\n" + - " \"firstName\": \"Keanu\",\n" + - " \"middleName\": \"\",\n" + - " \"address\": \"876 Zion Dr\",\n" + - " \"city\": \"White Plains\",\n" + - " \"state\": \"NY\",\n" + - " \"zipCode\": \"44444\",\n" + - " \"dateOfBirth\": \"6/6/1955\",\n" + - " \"issued\": \"6/9/2005\",\n" + - " \"expires\": \"6/9/2010\",\n" + - " \"sex\": \"M\",\n" + - " \"eyes\": \"GRN\",\n" + - " \"height\": \"5'11\",\n" + - " \"organDonor\": \"YES\",\n" + - " \"licenseClass\": \"D\"\n" + - " }"); + } } diff --git a/src/test/java/zygmundfelt/dan/mesolabstrings/TestPADriversLicense.java b/src/test/java/zygmundfelt/dan/mesolabstrings/TestPADriversLicense.java index b3d12bc..159c883 100644 --- a/src/test/java/zygmundfelt/dan/mesolabstrings/TestPADriversLicense.java +++ b/src/test/java/zygmundfelt/dan/mesolabstrings/TestPADriversLicense.java @@ -2,6 +2,7 @@ import org.junit.*; +import java.io.File; import java.util.ArrayList; import java.util.List; @@ -80,4 +81,330 @@ public void individualRecordToArrayForJSONTest() { } } + @Test + public void toStringForJSONTest() { + PADriversLicense dan = new PADriversLicense("001","Zygmund-Felt","Dan","C","123 Skidoo Ln","philadelphia","PA","19020","09/09/2009","12/12/2012", "12/12/2018","M","Brown","5'8","Yes", "D"); + String expected = " {\n" + + " \"licenseNumber\": \"001\",\n" + + " \"lastName\": \"Zygmund-Felt\",\n" + + " \"firstName\": \"Dan\",\n" + + " \"middleName\": \"C\",\n" + + " \"address\": \"123 Skidoo Ln\",\n" + + " \"city\": \"philadelphia\",\n" + + " \"state\": \"PA\",\n" + + " \"zipCode\": \"19020\",\n" + + " \"dateOfBirth\": \"09/09/2009\",\n" + + " \"issued\": \"12/12/2012\",\n" + + " \"expires\": \"12/12/2018\",\n" + + " \"sex\": \"M\",\n" + + " \"eyes\": \"Brown\",\n" + + " \"height\": \"5'8\",\n" + + " \"organDonor\": \"Yes\",\n" + + " \"licenseClass\": \"D\"\n" + + " },\n"; + + String actual = PADriversLicense.toStringForJSON(dan); + + Assert.assertEquals(expected, actual); + } + + @Test + public void deserializeFromJSONTest() { + List list = PADriversLicense.deserializeFromJSON("{\n" + + " \"licenseNumber\": \"L364856498487\",\n" + + " \"lastName\": \"Long\",\n" + + " \"firstName\": \"Aaron\",\n" + + " \"middleName\": \"C\",\n" + + " \"address\": \"456 Street Dr\",\n" + + " \"city\": \"Wilmington\",\n" + + " \"state\": \"NJ\",\n" + + " \"zipCode\": \"12345\",\n" + + " \"dateOfBirth\": \"06/17/1993\",\n" + + " \"issued\": \"06/17/2014\",\n" + + " \"expires\": \"06/30/2018\",\n" + + " \"sex\": \"M\",\n" + + " \"eyes\": \"GRN\",\n" + + " \"height\": \"6'2\",\n" + + " \"organDonor\": \"YES\",\n" + + " \"licenseClass\": \"D\"\n" + + " },\n" + + " {\n" + + " \"licenseNumber\": \"L364856423452\",\n" + + " \"lastName\": \"Kim\",\n" + + " \"firstName\": \"Chris\",\n" + + " \"middleName\": \"\",\n" + + " \"address\": \"820 District Dr\",\n" + + " \"city\": \"Wilmington\",\n" + + " \"state\": \"DE\",\n" + + " \"zipCode\": \"54321\",\n" + + " \"dateOfBirth\": \"12/11/1980\",\n" + + " \"issued\": \"08/12/2013\",\n" + + " \"expires\": \"12/11/2018\",\n" + + " \"sex\": \"M\",\n" + + " \"eyes\": \"BRO\",\n" + + " \"height\": \"6'5\",\n" + + " \"organDonor\": \"NO\",\n" + + " \"licenseClass\": \"D\"\n" + + " },\n" + + " {\n" + + " \"licenseNumber\": \"L363345398489\",\n" + + " \"lastName\": \"Stamatelos\",\n" + + " \"firstName\": \"Jarryd\",\n" + + " \"middleName\": \"\",\n" + + " \"address\": \"123 Main St\",\n" + + " \"city\": \"Wilmington\",\n" + + " \"state\": \"NJ\",\n" + + " \"zipCode\": \"21334\",\n" + + " \"dateOfBirth\": \"3/17/1988\",\n" + + " \"issued\": \"3/17/2016\",\n" + + " \"expires\": \"3/20/2020\",\n" + + " \"sex\": \"M\",\n" + + " \"eyes\": \"BRO\",\n" + + " \"height\": \"7'0''\",\n" + + " \"organDonor\": \"YES\",\n" + + " \"licenseClass\": \"D\"\n" + + " },\n" + + " {\n" + + " \"licenseNumber\": \"L809239899490\",\n" + + " \"lastName\": \"Cage\",\n" + + " \"firstName\": \"Nick\",\n" + + " \"middleName\": \"Treasure\",\n" + + " \"address\": \"362 Fancy St\",\n" + + " \"city\": \"Los Angeles\",\n" + + " \"state\": \"CA\",\n" + + " \"zipCode\": \"55555\",\n" + + " \"dateOfBirth\": \"02/02/1970\",\n" + + " \"issued\": \"02/02/2000\",\n" + + " \"expires\": \"02/02/2006\",\n" + + " \"sex\": \"M\",\n" + + " \"eyes\": \"BRO\",\n" + + " \"height\": \"6'0''\",\n" + + " \"organDonor\": \"YES\",\n" + + " \"licenseClass\": \"D\"\n" + + " },\n" + + " {\n" + + " \"licenseNumber\": \"L234252352391\",\n" + + " \"lastName\": \"Reeves\",\n" + + " \"firstName\": \"Keanu\",\n" + + " \"middleName\": \"\",\n" + + " \"address\": \"876 Zion Dr\",\n" + + " \"city\": \"White Plains\",\n" + + " \"state\": \"NY\",\n" + + " \"zipCode\": \"44444\",\n" + + " \"dateOfBirth\": \"6/6/1955\",\n" + + " \"issued\": \"6/9/2005\",\n" + + " \"expires\": \"6/9/2010\",\n" + + " \"sex\": \"M\",\n" + + " \"eyes\": \"GRN\",\n" + + " \"height\": \"5'11\",\n" + + " \"organDonor\": \"YES\",\n" + + " \"licenseClass\": \"D\"\n" + + " }"); + int expected = 5; + + int actual = list.size(); + + Assert.assertEquals(expected, actual); + } + + @Test + public void serializeToJSONTest() { + List list = PADriversLicense.deserializeFromJSON("{\n" + + " \"licenseNumber\": \"L364856498487\",\n" + + " \"lastName\": \"Long\",\n" + + " \"firstName\": \"Aaron\",\n" + + " \"middleName\": \"C\",\n" + + " \"address\": \"456 Street Dr\",\n" + + " \"city\": \"Wilmington\",\n" + + " \"state\": \"NJ\",\n" + + " \"zipCode\": \"12345\",\n" + + " \"dateOfBirth\": \"06/17/1993\",\n" + + " \"issued\": \"06/17/2014\",\n" + + " \"expires\": \"06/30/2018\",\n" + + " \"sex\": \"M\",\n" + + " \"eyes\": \"GRN\",\n" + + " \"height\": \"6'2\",\n" + + " \"organDonor\": \"YES\",\n" + + " \"licenseClass\": \"D\"\n" + + " },\n" + + " {\n" + + " \"licenseNumber\": \"L364856423452\",\n" + + " \"lastName\": \"Kim\",\n" + + " \"firstName\": \"Chris\",\n" + + " \"middleName\": \"\",\n" + + " \"address\": \"820 District Dr\",\n" + + " \"city\": \"Wilmington\",\n" + + " \"state\": \"DE\",\n" + + " \"zipCode\": \"54321\",\n" + + " \"dateOfBirth\": \"12/11/1980\",\n" + + " \"issued\": \"08/12/2013\",\n" + + " \"expires\": \"12/11/2018\",\n" + + " \"sex\": \"M\",\n" + + " \"eyes\": \"BRO\",\n" + + " \"height\": \"6'5\",\n" + + " \"organDonor\": \"NO\",\n" + + " \"licenseClass\": \"D\"\n" + + " },\n" + + " {\n" + + " \"licenseNumber\": \"L363345398489\",\n" + + " \"lastName\": \"Stamatelos\",\n" + + " \"firstName\": \"Jarryd\",\n" + + " \"middleName\": \"\",\n" + + " \"address\": \"123 Main St\",\n" + + " \"city\": \"Wilmington\",\n" + + " \"state\": \"NJ\",\n" + + " \"zipCode\": \"21334\",\n" + + " \"dateOfBirth\": \"3/17/1988\",\n" + + " \"issued\": \"3/17/2016\",\n" + + " \"expires\": \"3/20/2020\",\n" + + " \"sex\": \"M\",\n" + + " \"eyes\": \"BRO\",\n" + + " \"height\": \"7'0''\",\n" + + " \"organDonor\": \"YES\",\n" + + " \"licenseClass\": \"D\"\n" + + " },\n" + + " {\n" + + " \"licenseNumber\": \"L809239899490\",\n" + + " \"lastName\": \"Cage\",\n" + + " \"firstName\": \"Nick\",\n" + + " \"middleName\": \"Treasure\",\n" + + " \"address\": \"362 Fancy St\",\n" + + " \"city\": \"Los Angeles\",\n" + + " \"state\": \"CA\",\n" + + " \"zipCode\": \"55555\",\n" + + " \"dateOfBirth\": \"02/02/1970\",\n" + + " \"issued\": \"02/02/2000\",\n" + + " \"expires\": \"02/02/2006\",\n" + + " \"sex\": \"M\",\n" + + " \"eyes\": \"BRO\",\n" + + " \"height\": \"6'0''\",\n" + + " \"organDonor\": \"YES\",\n" + + " \"licenseClass\": \"D\"\n" + + " },\n" + + " {\n" + + " \"licenseNumber\": \"L234252352391\",\n" + + " \"lastName\": \"Reeves\",\n" + + " \"firstName\": \"Keanu\",\n" + + " \"middleName\": \"\",\n" + + " \"address\": \"876 Zion Dr\",\n" + + " \"city\": \"White Plains\",\n" + + " \"state\": \"NY\",\n" + + " \"zipCode\": \"44444\",\n" + + " \"dateOfBirth\": \"6/6/1955\",\n" + + " \"issued\": \"6/9/2005\",\n" + + " \"expires\": \"6/9/2010\",\n" + + " \"sex\": \"M\",\n" + + " \"eyes\": \"GRN\",\n" + + " \"height\": \"5'11\",\n" + + " \"organDonor\": \"YES\",\n" + + " \"licenseClass\": \"D\"\n" + + " }"); + String expected = "[\n" + + " {\n" + + " \"licenseNumber\": \"L364856498487\",\n" + + " \"lastName\": \"Long\",\n" + + " \"firstName\": \"Aaron\",\n" + + " \"middleName\": \"C\",\n" + + " \"address\": \"456 Street Dr\",\n" + + " \"city\": \"Wilmington\",\n" + + " \"state\": \"NJ\",\n" + + " \"zipCode\": \"12345\",\n" + + " \"dateOfBirth\": \"06/17/1993\",\n" + + " \"issued\": \"06/17/2014\",\n" + + " \"expires\": \"06/30/2018\",\n" + + " \"sex\": \"M\",\n" + + " \"eyes\": \"GRN\",\n" + + " \"height\": \"6'2\",\n" + + " \"organDonor\": \"YES\",\n" + + " \"licenseClass\": \"D\"\n" + + " },\n" + + " {\n" + + " \"licenseNumber\": \"L364856423452\",\n" + + " \"lastName\": \"Kim\",\n" + + " \"firstName\": \"Chris\",\n" + + " \"middleName\": \"\",\n" + + " \"address\": \"820 District Dr\",\n" + + " \"city\": \"Wilmington\",\n" + + " \"state\": \"DE\",\n" + + " \"zipCode\": \"54321\",\n" + + " \"dateOfBirth\": \"12/11/1980\",\n" + + " \"issued\": \"08/12/2013\",\n" + + " \"expires\": \"12/11/2018\",\n" + + " \"sex\": \"M\",\n" + + " \"eyes\": \"BRO\",\n" + + " \"height\": \"6'5\",\n" + + " \"organDonor\": \"NO\",\n" + + " \"licenseClass\": \"D\"\n" + + " },\n" + + " {\n" + + " \"licenseNumber\": \"L363345398489\",\n" + + " \"lastName\": \"Stamatelos\",\n" + + " \"firstName\": \"Jarryd\",\n" + + " \"middleName\": \"\",\n" + + " \"address\": \"123 Main St\",\n" + + " \"city\": \"Wilmington\",\n" + + " \"state\": \"NJ\",\n" + + " \"zipCode\": \"21334\",\n" + + " \"dateOfBirth\": \"3/17/1988\",\n" + + " \"issued\": \"3/17/2016\",\n" + + " \"expires\": \"3/20/2020\",\n" + + " \"sex\": \"M\",\n" + + " \"eyes\": \"BRO\",\n" + + " \"height\": \"7'0''\",\n" + + " \"organDonor\": \"YES\",\n" + + " \"licenseClass\": \"D\"\n" + + " },\n" + + " {\n" + + " \"licenseNumber\": \"L809239899490\",\n" + + " \"lastName\": \"Cage\",\n" + + " \"firstName\": \"Nick\",\n" + + " \"middleName\": \"Treasure\",\n" + + " \"address\": \"362 Fancy St\",\n" + + " \"city\": \"Los Angeles\",\n" + + " \"state\": \"CA\",\n" + + " \"zipCode\": \"55555\",\n" + + " \"dateOfBirth\": \"02/02/1970\",\n" + + " \"issued\": \"02/02/2000\",\n" + + " \"expires\": \"02/02/2006\",\n" + + " \"sex\": \"M\",\n" + + " \"eyes\": \"BRO\",\n" + + " \"height\": \"6'0''\",\n" + + " \"organDonor\": \"YES\",\n" + + " \"licenseClass\": \"D\"\n" + + " },\n" + + " {\n" + + " \"licenseNumber\": \"L234252352391\",\n" + + " \"lastName\": \"Reeves\",\n" + + " \"firstName\": \"Keanu\",\n" + + " \"middleName\": \"\",\n" + + " \"address\": \"876 Zion Dr\",\n" + + " \"city\": \"White Plains\",\n" + + " \"state\": \"NY\",\n" + + " \"zipCode\": \"44444\",\n" + + " \"dateOfBirth\": \"6/6/1955\",\n" + + " \"issued\": \"6/9/2005\",\n" + + " \"expires\": \"6/9/2010\",\n" + + " \"sex\": \"M\",\n" + + " \"eyes\": \"GRN\",\n" + + " \"height\": \"5'11\",\n" + + " \"organDonor\": \"YES\",\n" + + " \"licenseClass\": \"D\"\n" + + " }\n" + + "]"; + + String actual = PADriversLicense.serializeToJSON(list); + + Assert.assertEquals(expected, actual); + } + + @Test (expected = FormatNotAcceptedException.class) + public void deserializeNotAcceptedPDFTest() throws FormatNotAcceptedException { + PADriversLicense.deserialize("thisisthetextfromafile","PDF"); + } + + @Test (expected = FormatNotAcceptedException.class) + public void deserializeNotAcceptedCVSTest() throws FormatNotAcceptedException { + PADriversLicense.deserialize("heyitssomemorefiletext","CVS"); + } + } From e8b3acc5e73a6a6ff0c2fb71a46e8534482ed548 Mon Sep 17 00:00:00 2001 From: Dan Zygmund-Felt Date: Sun, 21 May 2017 20:52:19 -0400 Subject: [PATCH 7/7] Removed App and AppTest. --- .../zygmundfelt/dan/mesolabstrings/App.java | 14 ------- .../dan/mesolabstrings/PADriversLicense.java | 4 -- .../dan/mesolabstrings/AppTest.java | 38 ------------------- 3 files changed, 56 deletions(-) delete mode 100644 src/main/java/zygmundfelt/dan/mesolabstrings/App.java delete mode 100644 src/test/java/zygmundfelt/dan/mesolabstrings/AppTest.java diff --git a/src/main/java/zygmundfelt/dan/mesolabstrings/App.java b/src/main/java/zygmundfelt/dan/mesolabstrings/App.java deleted file mode 100644 index e2df612..0000000 --- a/src/main/java/zygmundfelt/dan/mesolabstrings/App.java +++ /dev/null @@ -1,14 +0,0 @@ -package zygmundfelt.dan.mesolabstrings; - - -/** - * Hello world! - * - */ -public class App { - - - public static void main(String[] args) { - - } -} diff --git a/src/main/java/zygmundfelt/dan/mesolabstrings/PADriversLicense.java b/src/main/java/zygmundfelt/dan/mesolabstrings/PADriversLicense.java index e97f953..fa9746e 100644 --- a/src/main/java/zygmundfelt/dan/mesolabstrings/PADriversLicense.java +++ b/src/main/java/zygmundfelt/dan/mesolabstrings/PADriversLicense.java @@ -200,8 +200,4 @@ public static List deserialize(String fileText, String desired } } - public static void main(String[] args) { - - } - } diff --git a/src/test/java/zygmundfelt/dan/mesolabstrings/AppTest.java b/src/test/java/zygmundfelt/dan/mesolabstrings/AppTest.java deleted file mode 100644 index ec14c69..0000000 --- a/src/test/java/zygmundfelt/dan/mesolabstrings/AppTest.java +++ /dev/null @@ -1,38 +0,0 @@ -package zygmundfelt.dan.mesolabstrings; - -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; - -/** - * Unit test for simple App. - */ -public class AppTest - extends TestCase -{ - /** - * Create the test case - * - * @param testName name of the test case - */ - public AppTest( String testName ) - { - super( testName ); - } - - /** - * @return the suite of tests being tested - */ - public static Test suite() - { - return new TestSuite( AppTest.class ); - } - - /** - * Rigourous Test :-) - */ - public void testApp() - { - assertTrue( true ); - } -}