Commit d4c7405

mokha <mokha@cisco.com>
2019-04-28 19:37:32
implement java comparable interface.
1 parent 8794437
Changed files (2)
assignments
assignment1
src
main
java
ca
mokhan
assignment1
test
java
ca
mokhan
assignments/assignment1/src/main/java/ca/mokhan/assignment1/AddressBook.java
@@ -1,15 +1,15 @@
 package ca.mokhan.assignment1;
 
-public class AddressBook
+public class AddressBook implements Comparable<AddressBook>
 {
   private String businessPhone;
   private String cellPhone;
   private String facebookId;
-  private String firstName;
+  private String firstName = "";
   private String homeAddress;
   private String homePhone;
-  private String lastName;
-  private String middleName;
+  private String lastName = "";
+  private String middleName = "";
   private String personalWebSite;
   private String skypeId;
 
@@ -34,4 +34,16 @@ public class AddressBook
   public void setMiddleName(String name) { this.middleName = name; }
   public void setPersonalWebSite(String value) { this.personalWebSite = value; }
   public void setSkypeId(String value) { this.skypeId = value; }
+
+  public static String compareNames(String name1, String name2)
+  {
+    return Integer.toString(name1.compareTo(name2));
+  }
+
+  public int compareTo(AddressBook other)
+  {
+    return this.firstName.compareTo(other.firstName) +
+      this.middleName.compareTo(other.middleName) +
+      this.lastName.compareTo(other.lastName);
+  }
 }
assignments/assignment1/src/test/java/ca/mokhan/assignment1/AddressBookTest.java
@@ -78,4 +78,27 @@ public class AddressBookTest extends TestCase
     subject.setPersonalWebSite("https://www.mokhan.ca/");
     assertEquals(subject.getPersonalWebSite(), "https://www.mokhan.ca/");
   }
+
+  public void testCompareNames()
+  {
+    assertTrue(Integer.parseInt(AddressBook.compareNames("Tsuyoshi M. Garret", "Takashi Shirogane")) > 0);
+    assertTrue(Integer.parseInt(AddressBook.compareNames("Takashi Shirogane", "Tsuyoshi M. Garret")) < 0);
+    assertTrue(Integer.parseInt(AddressBook.compareNames("Tsuyoshi Garret", "Tsuyoshi Garret")) == 0);
+  }
+
+  public void testCompareTo()
+  {
+    AddressBook hunk = new AddressBook();
+    hunk.setFirstName("Tsuyoshi");
+    hunk.setLastName("Garrett");
+
+    AddressBook shiro = new AddressBook();
+    shiro.setFirstName("Takashi");
+    shiro.setLastName("Shirogane");
+
+    assertTrue(hunk.compareTo(shiro) > 0);
+    assertTrue(shiro.compareTo(hunk) < 0);
+    assertTrue(hunk.compareTo(hunk) == 0);
+    assertTrue(shiro.compareTo(shiro) == 0);
+  }
 }