diff --git a/src/main/java/com/dtcc/projects/PhoneBook.java b/src/main/java/com/dtcc/projects/PhoneBook.java index 37094f3..f30f82e 100644 --- a/src/main/java/com/dtcc/projects/PhoneBook.java +++ b/src/main/java/com/dtcc/projects/PhoneBook.java @@ -1,4 +1,64 @@ package com.dtcc.projects; +import java.util.*; + public class PhoneBook { -} + + //Phone number no hyphens please + public Map > PhoneBook; + + public PhoneBook(){ + this(new LinkedHashMap>()); + } + + public PhoneBook(Map> map){ + this.PhoneBook = map; + } + + public void add(String name, String phoneNumber){ + List phoneNumberList = PhoneBook.get(name); + if(phoneNumberList != null){ + phoneNumberList.add(phoneNumber); + }else{ + //Singleton -> adds the phone number to names List of numbers + //Doing multiple things at once + PhoneBook.put(name, Collections.singletonList(phoneNumber)); + } + } + + public void addAll(String name, String[] phoneNumbers){ + PhoneBook.put(name, Arrays.asList(phoneNumbers)); + } + + public void remove(String name){ + PhoneBook.remove(name); + } + + public boolean hasEntry(String name){ + return PhoneBook.containsKey(name); + } + + public List lookup(String name){ + return PhoneBook.get(name); + } + + public String reverseLookup(String phoneNumber){ + String tempString =""; + for(Map.Entry m: PhoneBook.entrySet()){ + if((m.getValue().equals(Arrays.asList(phoneNumber)))){ + tempString += (String)m.getKey(); + } + } + return tempString; + } + + public List getAllContactNames(){ + List temp = new ArrayList<>(); + //Entries, each entry + for(Map.Entry m: PhoneBook.entrySet()){ + temp.add((String)m.getKey()); + } + return temp; + } + } + diff --git a/src/test/java/com/dtcc/projects/PhoneBookTest.java b/src/test/java/com/dtcc/projects/PhoneBookTest.java index 891889e..e106159 100644 --- a/src/test/java/com/dtcc/projects/PhoneBookTest.java +++ b/src/test/java/com/dtcc/projects/PhoneBookTest.java @@ -1,4 +1,53 @@ package com.dtcc.projects; -public class PhoneBookTest { +import junit.framework.Assert; +import org.junit.Test; + +import java.util.HashMap; +import java.util.List; + +public class PhoneBookTest extends PhoneBook{ + + @Test + public void addTest(){ + add("Cedric", "3023007497"); + add("Emergency","911"); + + Assert.assertEquals("3023007497", PhoneBook.get("Cedric")); + Assert.assertEquals("911", PhoneBook.get("Emergency")); + } + + @Test + public void addAllTest(){ + String[] temp = {"911", "3023007497"}; + addAll("Cedric", temp); + Assert.assertEquals("3023007497", PhoneBook.get("Cedric")); + } + + @Test + public void removeTest(){ + add("Cedric", "3023007497"); + add("Emergency","911"); + remove("Emergency"); + Assert.assertEquals(false, PhoneBook.containsKey("Emergency")); + Assert.assertEquals(true, PhoneBook.containsKey("Cedric")); + } + + @Test + public void hasEntryTest(){ + add("Cedric", "3023007497"); + Assert.assertEquals(true, hasEntry("Cedric")); + } + + @Test + public void lookupTest(){ + add("Cedric", "3023007497"); + List temp = lookup("Cedric"); + Assert.assertEquals("3023007497", temp.get(0)); + } + + @Test + public void getAllContactNamesTest(){ + + } } diff --git a/target/classes/com/dtcc/projects/PhoneBook.class b/target/classes/com/dtcc/projects/PhoneBook.class new file mode 100644 index 0000000..9aee856 Binary files /dev/null and b/target/classes/com/dtcc/projects/PhoneBook.class differ diff --git a/target/test-classes/com/dtcc/projects/PhoneBookTest.class b/target/test-classes/com/dtcc/projects/PhoneBookTest.class new file mode 100644 index 0000000..dc4710d Binary files /dev/null and b/target/test-classes/com/dtcc/projects/PhoneBookTest.class differ