From 8a523a92d883437078b238e46f6b777e4b499981 Mon Sep 17 00:00:00 2001 From: Apoorvashukla88 Date: Sat, 3 Oct 2020 13:01:30 -0400 Subject: [PATCH] Done --- .../java/com/dtcc/projects/PhoneBook.java | 48 ++++++++++-- .../java/com/dtcc/projects/PhoneBookTest.java | 70 ++++++++++++++++++ .../classes/com/dtcc/projects/PhoneBook.class | Bin 0 -> 3367 bytes .../com/dtcc/projects/PhoneBookTest.class | Bin 0 -> 3139 bytes 4 files changed, 113 insertions(+), 5 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 51400b3..c6b5aaa 100644 --- a/src/main/java/com/dtcc/projects/PhoneBook.java +++ b/src/main/java/com/dtcc/projects/PhoneBook.java @@ -1,14 +1,11 @@ package com.dtcc.projects; -import java.util.Collections; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; +import java.util.*; public class PhoneBook { - Map> phoneBookMap; + static Map> phoneBookMap; public PhoneBook(){ this(new LinkedHashMap>()); @@ -27,6 +24,47 @@ public void add (String name, String phoneNumber) { phoneBookMap.put(name, Collections.singletonList(phoneNumber)); } } + void addAll(String name, String[] phoneNumbers){ + phoneBookMap.put(name, Arrays.asList(phoneNumbers)); + + } + public static void remove(String name){ + phoneBookMap.remove(name); + + } + + public static boolean hasEntry(String name){ + return phoneBookMap.containsKey(name); + } + + public List lookup(String name){ + List lookupList = new ArrayList<>(); + for(Map.Entry> entry : phoneBookMap.entrySet()){ + if(entry.getKey().equalsIgnoreCase(name)){ + lookupList = entry.getValue(); + } + } + return lookupList; + } + + public String reverseLookup(String phoneNumber){ + String reversekey = ""; + for(Map.Entry> entry : phoneBookMap.entrySet()){ + if(entry.getValue().contains(phoneNumber)){ + reversekey = entry.getKey(); + } + } + return reversekey; + } + public List getAllContactNames(){ + List allnamelist = new ArrayList<>(); + for(Map.Entry> entry : phoneBookMap.entrySet()){ + allnamelist.add(entry.getKey()); + + + } + return allnamelist; + } } diff --git a/src/test/java/com/dtcc/projects/PhoneBookTest.java b/src/test/java/com/dtcc/projects/PhoneBookTest.java index 63277e2..37d5eac 100644 --- a/src/test/java/com/dtcc/projects/PhoneBookTest.java +++ b/src/test/java/com/dtcc/projects/PhoneBookTest.java @@ -3,6 +3,9 @@ import org.junit.Assert; import org.junit.Test; +import java.util.Arrays; +import java.util.List; + public class PhoneBookTest { @Test @@ -14,4 +17,71 @@ public void addTest(){ Assert.assertTrue(phoneBook.phoneBookMap.containsKey(name)); Assert.assertEquals(phoneNumber,phoneBook.phoneBookMap.get(name).get(0)); } + + @Test + public void addAllTest(){ + PhoneBook phoneBook = new PhoneBook(); + String name = "Zan Again"; + String[] phoneNumbers = {"1122", "34567", "134789"}; + phoneBook.addAll(name, phoneNumbers); + Assert.assertEquals(Arrays.asList(phoneNumbers), phoneBook.phoneBookMap.get(name)); + } + + @Test + public void removeTest(){ + PhoneBook phoneBook = new PhoneBook(); + String name = "Zan"; + String phoneNumber = "33333333333"; + phoneBook.add(name, phoneNumber); + String name1 = "Zan1"; + String phoneNumber1 = "333333333331"; + phoneBook.add(name1, phoneNumber1); + phoneBook.remove(name); + Assert.assertFalse(phoneBook.phoneBookMap.containsKey("Zan")); + } + + @Test + public void hasEntryTest(){ + PhoneBook phoneBook1 = new PhoneBook(); + String name = "Zan"; + String phoneNumber = "33333333333"; + phoneBook1.add(name, phoneNumber); + Assert.assertTrue(phoneBook1.phoneBookMap.containsKey("Zan")); + } + + @Test + public void lookupTest(){ + PhoneBook phoneBook1 = new PhoneBook(); + String name = "Zan"; + String[] phoneNumberList = {"33333333333", "1234", "123456"}; + phoneBook1.addAll(name, phoneNumberList); + List names = phoneBook1.lookup(name); + Assert.assertEquals(Arrays.asList(phoneNumberList), names); + + } + @Test + public void reverseLookupTest(){ + PhoneBook phoneBook1 = new PhoneBook(); + String name = "Zan"; + String phoneNumber = "33333333333"; + phoneBook1.add(name, phoneNumber); + Assert.assertEquals(phoneBook1.reverseLookup(phoneNumber), + name); + } + + @Test + public void getAllContactNamesTest(){ + PhoneBook phoneBook1 = new PhoneBook(); + String name1 = "Zan"; + String[] phoneNumber1 = {"33333333333", "123"}; + phoneBook1.addAll(name1, phoneNumber1); + String name2="Zan2"; + String[] phoneNumber2 = {"999999999", "22222222222","44444444444"}; + phoneBook1.addAll(name2, phoneNumber2); + String[] actual={"Zan","Zan2"}; + Assert.assertEquals(Arrays.asList(actual), phoneBook1.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..976e7445a854fc170924c59181b8c5708ea1214c GIT binary patch literal 3367 zcma)8+jA3D9R4;$<zcDhu| zxoHjz8EBr$&3ksS@Kd7DZ-vE$s4A1^V2oHFX4pKp!Ac?Pbr+8Q2>@u1!;T zL}kIV7nNq^L3q|cLiwa~!$gI8Lc&1%Dq7Uvvudc07O|pbs%U4$eU)8S9Ni)D5!W@) zSBLvm4I8E>eWpTZY&hA9LpgQ>sg*~7)Ox!SVw#I9~08q*S|^zvyre} zSE|!h#kOZn$U02pQ~8pgbx!BxEVot<=RPTL1DjUv8Xo-X&fJ(?SfB?M9>#8Y^jX+} zohEz>1+d6l!wU*U3j-*bxM|@PylPa-(D7DEWC|( zOuTF1J-kmlEPQ|uEqsKJYvQZ*VBr&)YFAL9oLcx4CoFs>ld$l)?6>U!w^9wn`B}NM znD7;XXN!(+7xO+(<;oyg@ZO?T25Owv>xTlj6surp)#0fG^6+%6z>el!m;2}P9!+m4 z@b-3{V&2mQUvsu9>(`b=!%~T?YDzf>*0Etyb$RNHs?Uuwhg6#Eg67cM7rsN*Cy~fX z{pP&FxWj8BrjGlRWUHg5OgSXC-AV#fOe|MTd3Q~C#R{%5c_~dguM&}8D<(1Osm{hq zd{`y<(<#NI-MLY+-NM;BO% z=277D5sn-~16!=KeTPPYX@J1A@-5FO+6dXMpt=KS4JDiOE1F40>TP6X7hyH=6k7ur7xT0k zNo-ZLk{UKp$PKU$X>Ka5N7;&S)lTfkVVH zWT7o!l~`dFQLJ>Xw=+#U6_Z^$yvn4l%A^fPaFk4%>E2KPFMVN|Abhe6iy2sL<1XfY zcgV(s0u;i>aUy^@7{J6eOiKh`5mXawQXBM!5aI!XfnhwsC~@Xbz9qfmchSmvYMUTZ z8SMtj=rAxjSVpITTNq?xgF)9e9*b^?meD2c?$r0#bPKIAuvrGoiQD)882FlS+PST0 zV!NL;o#Zb?^#eFf5@+d*)Tg+Yq@Pb>RQWhw&E9yBy%=YnqI(g>fq!7-E%B!qujdYM zOnhuZ!$0Vzk0ws1?{QGq;TdLOj2r4Y{Eg$HcC2&DIzrQ{glb)^*{u<#K}prxDfRa? zQgu=F;t(xAOzKA{_h?mWFH5B&b*w6NOcg5c6^c5iO14s{I$oq!1$LMir@;Lp&_D(g ze2a}`zU6=o1vX}CY@FaBQ#S5kL)$o+qEIRcPT&2%QY*IU19zMWK0)(_sbqvIPAVNz z=KVZWqC?KdP@p4*1DK>yM%5@Cb&64X?f~aRM=K&#qwcZ7wNK|M-~wkOxX7L4Dl>T8 Jr!msh{2x`Y?tB0M literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..084fff82e8f16948861286488612754d7513b441 GIT binary patch literal 3139 zcmaKtS$ES`6ot2J*;Z_2z=41n5(0)eqp>qPKna1A!3hDUp$UananwY?v4e-Sp%b0w zKJ~4?qC7BlwX4tlCH)m$-B*%jIq^bXOS-z!J?A_7?j!&6->bg>jNq3b&frD>H-qrt zhJv($IWe4X;^|fh3%DJ`9c094F@U#12w_Rg+*R;)0Luzi6x>trj#zX*hzEFA!Fvic z1*>8zE8bmGpeuM^+^>t%h5|#urhs^u{&lJ{l z39V@(ug_PuR`uedwwmKiI903qIW*2+d9PrkNvp|~F3tgz6yjT0o!bS`HRsjf(Tz5QOg zLAqd3-zx0r)(W5CN=R_86t^2%>1w`Q+_l~cI+gNSFh?;e+t!m-SH`p? z*~rDk6BgQ0Fa7RzRsN{O>AZV>KleqhKTyjO0LS1 z^_B6~&$lXCj%8#Dm10((HB3`1RJT$r9unj#&Z0-cvDY|)UR%-fG(sXdJTjb2j3!k) zLQzEtpqBjXd3DxTo;0KQQ1CBCAShHD3xFrwJZ+T3tL#n<>o#kY7YLXumA;$?J9 z#dr8##Si$Ab#cmC&y-D*)q@F=wS#vfwL`^E_*p{NYxJ@<##P&`RncQiM-xlviS6I^ z{WGGuEw_rMoYUC)tuFg;f=+3!$!xw6$_jrN`O-~&SHdB8B8y?FcZI6gx@)>r(u*Vu zYUW_ESYh|du@#ZsOUp?(+bD<&*N!W)UGHr)uUet6KB67jFLl-1i}x=R`TbVQONhA< z?9WMqmKSR*(ai>%E*7<2CiH71t7Ff^+>5GuxHPrf*Kd6|_ULEl6-h!?MYF7jYWc12 zgoJ1VOj{AB1f z&msNJfd{=j`_0KF^l_|OFQ6X-ypu4<#U69s^7TjLh|iRK;02DDxMA5=K2lS-4?#vcN#1Vqo}yN#sc@9^ zXGnaOqaJd{Fi8uDjlXDRcKDMHf80@fz*hSR<4sa`nUOlVUkUj3?7);$(-Ye^(MC1Z z(>K-VEwu+pKScUC>Ccfq!5We-wWAL0ah$ik5pifc8hYb`L-v&XK2|>FBD1}5NOo{2_=!{8foMHn_VH6ik-VrO4!#m{g_B-x4 z%smk97~symflH*DCY@+VYvwX%>U}=r)biL?xzkmP3FfXvz+rWRx{q@$iHV-uCZnhuKy4DjCF(n literal 0 HcmV?d00001