From 86ca0ee3eafb1c172e3470697f45fd2be0c98623 Mon Sep 17 00:00:00 2001 From: LoluAlake Date: Sat, 3 Oct 2020 08:11:38 -0400 Subject: [PATCH 1/2] add and remove --- .../java/com/dtcc/projects/PhoneBook.java | 28 ++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/dtcc/projects/PhoneBook.java b/src/main/java/com/dtcc/projects/PhoneBook.java index 37094f3..801be1b 100644 --- a/src/main/java/com/dtcc/projects/PhoneBook.java +++ b/src/main/java/com/dtcc/projects/PhoneBook.java @@ -1,4 +1,30 @@ package com.dtcc.projects; +import java.util.*; + public class PhoneBook { -} + private String name; + private String phoneNumber; + + HashMap PhoneBook = new HashMap<>(); + Scanner input = new Scanner(System.in); + + public PhoneBook(){ + this.name = name; + this.phoneNumber = phoneNumber; + } + + public void add(String name, String phoneNumber){ + PhoneBook.put(name, phoneNumber); + } + + public void addAll(String name, String [] phoneNumbers){ + List phonenumbers = new ArrayList<>(); + + // PhoneBook.putAll(phoneNumbers); + } + + public void remove(String name){ + PhoneBook.remove(name); + } +} \ No newline at end of file From 24655952dba88dfd6bb35b4a0e7c40be5efab145 Mon Sep 17 00:00:00 2001 From: LoluAlake Date: Sat, 3 Oct 2020 13:04:01 -0400 Subject: [PATCH 2/2] update --- .../java/com/dtcc/projects/PhoneBook.java | 47 ++++++-- .../java/com/dtcc/projects/PhoneBookTest.java | 100 ++++++++++++++++++ .../classes/com/dtcc/projects/PhoneBook.class | Bin 0 -> 2806 bytes .../com/dtcc/projects/PhoneBookTest.class | Bin 0 -> 2692 bytes 4 files changed, 137 insertions(+), 10 deletions(-) create mode 100644 target/classes/com/dtcc/projects/PhoneBook.class create mode 100644 target/test-classes/com/dtcc/projects/PhoneBookTest.class diff --git a/src/main/java/com/dtcc/projects/PhoneBook.java b/src/main/java/com/dtcc/projects/PhoneBook.java index 801be1b..3cd17ec 100644 --- a/src/main/java/com/dtcc/projects/PhoneBook.java +++ b/src/main/java/com/dtcc/projects/PhoneBook.java @@ -5,26 +5,53 @@ public class PhoneBook { private String name; private String phoneNumber; + private int numbers; - HashMap PhoneBook = new HashMap<>(); + Map> phoneBookMap; Scanner input = new Scanner(System.in); public PhoneBook(){ - this.name = name; - this.phoneNumber = phoneNumber; + this(new LinkedHashMap>()); } - public void add(String name, String phoneNumber){ - PhoneBook.put(name, phoneNumber); + public PhoneBook(Map> map){ + this.phoneBookMap = map; } - public void addAll(String name, String [] phoneNumbers){ - List phonenumbers = new ArrayList<>(); - - // PhoneBook.putAll(phoneNumbers); + 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){ - PhoneBook.remove(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 0000000000000000000000000000000000000000..e7e56ef46b15a131b5346392f1ec04955dbee687 GIT binary patch literal 2806 zcma)7U31e$6g?{^acs*@a7aiYlmH1BhhSQ0O9_NR_zIXnF(n21r8sJ$U`weaXC{5_ zFX5rQ^r3Xhq$x9r=UWCJ%p}#1~0e0zIx(w*~U$HEY8v)hu_VR0(~@U6~Qctgm{mz0jyH*}g#1 zRWE^nm=`eB-X+g_e9KxF7>Ld{LZ?=ufrnESXT`O`hEMcs?Yrk*4i2JX>s77Veam;` zw>I{Ks}76XU#@!f(sEd>mezf5&8~()>5k+<*2)<9LM*f_RYpqGB?%+tHrUPe9q1b! zXS$RZ1APqvDwegpEO1mq#yb{a#4XZ)Al5|*Eil*-j8#o^n7U*r>CaX|t13ILIqPFC z7i%?vLYH(NbNA*u**8)kyk^-+e0<2*dYm=^IQ@eE^rn}$?n3jm#O2}Ih?BI z*a@U7Uc;~2R~;$oTvMYb_}&d3jmzIxCgZ%{K%4^m7dR`3Ft(6*#%}{hxu*F9a{R#!pdh^>UmQb`UlM1E9uj8_ zJ<4~qxP=~K^*;CkeOpLAM}KkZIZ_fcp)m9G1a@)F@E4kA9YYFxBs#CL!Rn5y{HN(1 z#g&$Wj5ffIZy;UrfX|68I<-09+vNKI`cZQxgA7N&ngZuM1BmZV9gUwV1@gB~Q6~PxO{>F znm)n0OEKtd6FRG!D(k+4ISu(lck1K|D(^U3l%1-v{q|T+EyH_YH(UetWIYo<;*%r3AIU#|hA*@!5NSYn^=rfB*C8PXHO%aeRS%46|{BkXJCL z;EovHZR6u!0{8JCj(I#3qlFm0N+5wnv9hG#Q4Eh2JW=pe!LkS{#Ib@^1b7xNcl z5+q%83ZI`){ELbJ2yrJ2K znEQ*evu9K#Tq~5UN_xjBmC^^cwXc_)YWn$}W$F(t>&?1eb><|*w4EI>l+boi|4PD@ zvmzNKn_9&!zOTL0(q+xuO&1;8Fn9S~!p-ABO6XgwnT}D>H;k%5z)4jbBL3CS!+EiUk_q6Jw>DY(f zu6UWsYX{z>+t%Odc2zGlukGp%>n~WQqm`UhSEano4HDu-t7ez`AmeAo!uQ^6J zT`;PSSS_j80sW6G>}fXBb)9sFr#Z#^xryA&G{>3DOg5L#Pvls6DljawKXPy*u^M2b)y7{L%n zVGJ{y5HaE+j|Rv;F^53T2FM*N(Ld0+6;5^)x8!7ZaVwHc7CjB;#y;YFgZvoqC8h^@ z2z-G67wJbIaV}$qHVfB0*lYls4q!)p*sJKp7|~C{rUTd`ekZE5^f%cvDMG+in9?SkJ0OK7yq7DIKV&4 z>t04oFo(=cS9mHZL{9iW8A$r%OPUS*Z)%y-lH~X3+jKR_^;SBmX^NUM)HF>^Gt`u$ zraVbzsp&3N-RJB7ai`{r>6YuDYiFmYSvlO+WiRm1)-0Rlf#FYPhs1 zyFE5m{Cq=sH(-%!mZ;_t)jXz}r);TZOrhW^@R}+UC>RYC3d- zl6IZ68>HPN?aTj2I~~x@^Hzu0xovfC8^