diff --git a/src/main/java/com/dtcc/projects/PhoneBook.java b/src/main/java/com/dtcc/projects/PhoneBook.java index 37094f3..3cd17ec 100644 --- a/src/main/java/com/dtcc/projects/PhoneBook.java +++ b/src/main/java/com/dtcc/projects/PhoneBook.java @@ -1,4 +1,57 @@ package com.dtcc.projects; +import java.util.*; + public class PhoneBook { -} + private String name; + private String phoneNumber; + private int numbers; + + Map> phoneBookMap; + Scanner input = new Scanner(System.in); + + public PhoneBook(){ + this(new LinkedHashMap>()); + } + + public PhoneBook(Map> map){ + this.phoneBookMap = map; + } + + public void add(String name, String phoneNumber) { + List phoneNumberList = phoneBookMap.get(name); + if (phoneNumberList != null) { + phoneNumberList.add(phoneNumber); + } else { + phoneBookMap.put(name, Collections.singletonList(phoneNumber)); + } + } + + public void addAll(String name, String[] phoneNumbers){ + phoneBookMap.put(name, Arrays.asList(phoneNumbers)); + } + public void remove(String name){ + phoneBookMap.remove(name); + } + + public boolean hasEntry(String name){ + return phoneBookMap.containsKey(name); + } + + public List lookup(String name){ + return phoneBookMap.get(name); + } + + public String reverseLookup(String phoneNumber){ + phoneBookMap.get(phoneNumber); + return phoneNumber; + } + + public String getAllContactNames(){ + List phoneBook = new ArrayList<>(); + for(int i = 0; i < phoneBook.size(); i++){ + phoneBookMap.get(phoneBook.get(i)); + } + return name; + } +} \ No newline at end of file diff --git a/src/test/java/com/dtcc/projects/PhoneBookTest.java b/src/test/java/com/dtcc/projects/PhoneBookTest.java index 891889e..2dcb067 100644 --- a/src/test/java/com/dtcc/projects/PhoneBookTest.java +++ b/src/test/java/com/dtcc/projects/PhoneBookTest.java @@ -1,4 +1,104 @@ package com.dtcc.projects; +import org.junit.Assert; +import org.junit.Test; + +import java.util.Arrays; + public class PhoneBookTest { + @Test + public void addTest(){ + PhoneBook phoneBook = new PhoneBook(); + String name = "Lolu"; + String phoneNumber = "2405793527"; + phoneBook.add(name, phoneNumber); + Assert.assertTrue(phoneBook.phoneBookMap.containsKey(name)); + Assert.assertEquals(phoneNumber, phoneBook.phoneBookMap.get(name).get(0)); + } + @Test + public void addAllTest(){ + //Given + PhoneBook phoneBook = new PhoneBook(); + String name = "Charu"; + String[] strNum = {"357980865", "446789908", "3456677878"}; + //When + phoneBook.addAll(name, strNum); + //Then + Assert.assertEquals(Arrays.asList(strNum), phoneBook.phoneBookMap.get(name)); + } + + @Test + public void removeTest(){ + //Given + PhoneBook phoneBook = new PhoneBook(); + String name = "Lolu"; + String phoneNumber = "2405793527"; + phoneBook.add(name, phoneNumber); + + String name1 = "mide"; + String phoneNumber1 = "2405794567"; + phoneBook.add(name1, phoneNumber1); + + //When + phoneBook.remove("mide"); + //Then + Assert.assertFalse(phoneBook.phoneBookMap.containsKey("mide")); + } + + @Test + public void hasEntryTest(){ + //Given + PhoneBook phoneBook = new PhoneBook(); + String name = "Lolu"; + String phoneNumber = "2405793527"; + phoneBook.add(name, phoneNumber); + + String name1 = "mide"; + String phoneNumber1 = "2405794567"; + phoneBook.add(name1, phoneNumber1); + + //When + phoneBook.hasEntry("Lolu"); + //Then + Assert.assertTrue(phoneBook.phoneBookMap.containsKey("Lolu")); + } + + @Test + public void lookupTest(){ + //Given + PhoneBook phoneBook = new PhoneBook(); + String name = "Lolu"; + String phoneNumber ="357980865"; + phoneBook.add(name, phoneNumber); + + phoneBook.lookup("Lolu"); + Assert.assertEquals(Arrays.asList(phoneNumber), phoneBook.phoneBookMap.get(name)); + } + + @Test + public void reverseLookupTest(){ + //Given + PhoneBook phoneBook = new PhoneBook(); + String name = "Lolu"; + String phoneNumber ="357980865"; + phoneBook.add(name, phoneNumber); + + phoneBook.lookup("Lolu"); + Assert.assertEquals(Arrays.asList(phoneNumber), phoneBook.phoneBookMap.get(name)); + } + + @Test + public void getAllContactName(){ + PhoneBook book = new PhoneBook(); + String name = "Lolu"; + String phoneNumber = "2405793527"; + book.add(name, phoneNumber); + + String name1 = "mide"; + String phoneNumber1 = "2405794567"; + book.add(name1, phoneNumber1); + book.getAllContactNames(); + + + } } diff --git a/target/classes/com/dtcc/projects/PhoneBook.class b/target/classes/com/dtcc/projects/PhoneBook.class new file mode 100644 index 0000000..e7e56ef 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..5f739c0 Binary files /dev/null and b/target/test-classes/com/dtcc/projects/PhoneBookTest.class differ