Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 61 additions & 1 deletion src/main/java/com/dtcc/projects/PhoneBook.java
Original file line number Diff line number Diff line change
@@ -1,4 +1,64 @@
package com.dtcc.projects;

import java.util.*;

public class PhoneBook {
}

//Phone number no hyphens please
public Map<String, List<String> > PhoneBook;

public PhoneBook(){
this(new LinkedHashMap<String, List<String>>());
}

public PhoneBook(Map<String, List<String>> map){
this.PhoneBook = map;
}

public void add(String name, String phoneNumber){
List<String> 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<String> 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<String> getAllContactNames(){
List<String> temp = new ArrayList<>();
//Entries, each entry
for(Map.Entry m: PhoneBook.entrySet()){
temp.add((String)m.getKey());
}
return temp;
}
}

51 changes: 50 additions & 1 deletion src/test/java/com/dtcc/projects/PhoneBookTest.java
Original file line number Diff line number Diff line change
@@ -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<String> temp = lookup("Cedric");
Assert.assertEquals("3023007497", temp.get(0));
}

@Test
public void getAllContactNamesTest(){

}
}
Binary file added target/classes/com/dtcc/projects/PhoneBook.class
Binary file not shown.
Binary file not shown.