From 2a0bae86b6ca95ba5cd79945d6f26e731b12e3f1 Mon Sep 17 00:00:00 2001 From: charujamnis Date: Sat, 3 Oct 2020 11:45:27 -0400 Subject: [PATCH 1/2] Assignment complete --- .../java/com/dtcc/projects/PhoneBook.java | 61 +++++++++++++ .../java/com/dtcc/projects/PhoneBookTest.java | 87 +++++++++++++++++++ 2 files changed, 148 insertions(+) diff --git a/src/main/java/com/dtcc/projects/PhoneBook.java b/src/main/java/com/dtcc/projects/PhoneBook.java index 37094f3..2f09d70 100644 --- a/src/main/java/com/dtcc/projects/PhoneBook.java +++ b/src/main/java/com/dtcc/projects/PhoneBook.java @@ -1,4 +1,65 @@ package com.dtcc.projects; +import java.util.*; + public class PhoneBook { + Map> phoneBookMap; + + 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[] pnumbers){ + if(!phoneBookMap.containsKey(name)) { + phoneBookMap.put(name,Arrays.asList(pnumbers)); + } + } + + public void remove(String name){ + if(phoneBookMap.containsKey(name)) + phoneBookMap.remove(name); + } + + public boolean hasEntry(String name){ + return phoneBookMap.containsKey(name); + } + + public List lookup(String name){ + List sendList=new ArrayList<>(); + for(Map.Entry> e: phoneBookMap.entrySet()){ + if(e.getKey().equalsIgnoreCase(name)){ + sendList= e.getValue(); + } + } + return sendList; + } + + public String reverseLookup(String phoneNumber){ + String strName=""; + for(Map.Entry> e: phoneBookMap.entrySet()) { + if(e.getValue().contains(phoneNumber)){ + strName=e.getKey(); + } + } + return strName; + } + + public Set getAllContactNames(){ + return phoneBookMap.keySet(); + } + } diff --git a/src/test/java/com/dtcc/projects/PhoneBookTest.java b/src/test/java/com/dtcc/projects/PhoneBookTest.java index 891889e..91a52bf 100644 --- a/src/test/java/com/dtcc/projects/PhoneBookTest.java +++ b/src/test/java/com/dtcc/projects/PhoneBookTest.java @@ -1,4 +1,91 @@ package com.dtcc.projects; +import org.junit.Assert; +import org.junit.Assert.*; +import org.junit.Before; +import org.junit.Test; + +import java.util.*; + public class PhoneBookTest { + + PhoneBook phoneBook; + @Before + public void setup(){ + phoneBook=new PhoneBook(); + } + + @Test + public void testAdd(){ + String name="Charu"; + String phoneNumber="123-123-1234"; + phoneBook.add(name,phoneNumber); + Assert.assertTrue(phoneBook.phoneBookMap.containsKey(name)); + Assert.assertEquals(phoneNumber,phoneBook.phoneBookMap.get(name).get(0)); + } + + @Test + public void tesAddAll(){ + String[] list= {"123-123-123","456-345-8934"}; + String name="Nitu"; + phoneBook.addAll(name,list); + Assert.assertEquals(2,phoneBook.phoneBookMap.get(name).size()); + Assert.assertEquals(Arrays.asList(list),phoneBook.phoneBookMap.get(name)); + } + + @Test + public void testRemoveKey(){ + String name="Sam"; + String phoneNumber="456-678-0987"; + phoneBook.add(name,phoneNumber); + phoneBook.remove(name); + Assert.assertEquals(false,phoneBook.phoneBookMap.containsKey(name)); + } + + @Test + public void testHasEntry(){ + String[] list={"123-132-127","456-345-8934"}; + String name="Ramona"; + phoneBook.addAll(name,list); + Assert.assertTrue(phoneBook.hasEntry(name)); + } + + @Test + public void testLookup(){ + String[] list={"123-132-127","456-345-8934"}; + String name="Seher"; + phoneBook.addAll(name,list); + List nameList=phoneBook.lookup(name); + Assert.assertEquals(Arrays.asList(list),nameList); + } + + @Test + public void testReverseLookup(){ + String actual="Rakhi"; + String phoneNumber="123-123-4564"; + phoneBook.add(actual,phoneNumber); + String expected=phoneBook.reverseLookup(phoneNumber); + Assert.assertEquals(actual,expected); + } + + @Test + public void testGetAllContactNames(){ + Set expectedSet=new HashSet<>(); + Set actual=new HashSet<>(); + String name1="Seema"; + String phoneNumber="123-123-4564"; + + String name2="Shreya"; + String[] strList={"123-132-127","456-345-8934"}; + + actual.add(name1); + actual.add(name2); + + phoneBook.add(name1,phoneNumber); + phoneBook.addAll(name2,strList); + expectedSet=phoneBook.getAllContactNames(); + Assert.assertEquals(actual,expectedSet); + + } + } From 5e626d4d0b861cfc1b31c6efc08ec9cc75971dde Mon Sep 17 00:00:00 2001 From: charujamnis Date: Sat, 3 Oct 2020 13:03:24 -0400 Subject: [PATCH 2/2] Assignment completed --- src/main/java/com/dtcc/projects/PhoneBook.java | 16 +++++++++++----- .../java/com/dtcc/projects/PhoneBookTest.java | 11 ++++------- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/dtcc/projects/PhoneBook.java b/src/main/java/com/dtcc/projects/PhoneBook.java index 2f09d70..8f22380 100644 --- a/src/main/java/com/dtcc/projects/PhoneBook.java +++ b/src/main/java/com/dtcc/projects/PhoneBook.java @@ -39,13 +39,13 @@ public boolean hasEntry(String name){ } public List lookup(String name){ - List sendList=new ArrayList<>(); + /* List sendList=new ArrayList<>(); for(Map.Entry> e: phoneBookMap.entrySet()){ if(e.getKey().equalsIgnoreCase(name)){ sendList= e.getValue(); } - } - return sendList; + }*/ + return phoneBookMap.get(name); } public String reverseLookup(String phoneNumber){ @@ -58,8 +58,14 @@ public String reverseLookup(String phoneNumber){ return strName; } - public Set getAllContactNames(){ - return phoneBookMap.keySet(); + public List getAllContactNames(){ + List keyList=new ArrayList<>(); + if(phoneBookMap!=null){ + for(String s : phoneBookMap.keySet()){ + keyList.add(s); + } + } + return keyList; } } diff --git a/src/test/java/com/dtcc/projects/PhoneBookTest.java b/src/test/java/com/dtcc/projects/PhoneBookTest.java index 91a52bf..67aee23 100644 --- a/src/test/java/com/dtcc/projects/PhoneBookTest.java +++ b/src/test/java/com/dtcc/projects/PhoneBookTest.java @@ -70,21 +70,18 @@ public void testReverseLookup(){ @Test public void testGetAllContactNames(){ - Set expectedSet=new HashSet<>(); - Set actual=new HashSet<>(); + List expectedList=new ArrayList<>(); + List actual=new ArrayList<>(); String name1="Seema"; String phoneNumber="123-123-4564"; - String name2="Shreya"; String[] strList={"123-132-127","456-345-8934"}; - actual.add(name1); actual.add(name2); - phoneBook.add(name1,phoneNumber); phoneBook.addAll(name2,strList); - expectedSet=phoneBook.getAllContactNames(); - Assert.assertEquals(actual,expectedSet); + expectedList=phoneBook.getAllContactNames(); + Assert.assertEquals(actual,expectedList); }