From 4b04c125db53fe2f8e4caad220b34b3b499848d1 Mon Sep 17 00:00:00 2001 From: Peter McCormick Date: Thu, 1 Mar 2018 10:48:54 -0500 Subject: [PATCH] Lab Completed --- .../phone/PhoneNumberFactory.java | 48 ++++++++++++------- .../PhoneNumberFactoryTest.java | 10 ++-- 2 files changed, 36 insertions(+), 22 deletions(-) diff --git a/src/main/java/com/zipcodewilmington/phone/PhoneNumberFactory.java b/src/main/java/com/zipcodewilmington/phone/PhoneNumberFactory.java index 36d323b..9c0ba67 100644 --- a/src/main/java/com/zipcodewilmington/phone/PhoneNumberFactory.java +++ b/src/main/java/com/zipcodewilmington/phone/PhoneNumberFactory.java @@ -1,6 +1,7 @@ package com.zipcodewilmington.phone; import com.zipcodewilmington.exceptions.InvalidPhoneNumberFormatException; +import com.zipcodewilmington.tools.RandomNumberFactory; import java.util.logging.Logger; @@ -18,16 +19,20 @@ private PhoneNumberFactory() { /** * @param phoneNumberCount - number of PhoneNumber objects to instantiate * @return array of randomly generated PhoneNumber objects - */ //TODO - Implement logic - public static PhoneNumber[] createRandomPhoneNumberArray(int phoneNumberCount) { - return null; + */ + public static PhoneNumber[] createRandomPhoneNumberArray(int phoneNumberCount) throws InvalidPhoneNumberFormatException{ + PhoneNumber[] phoneBook = new PhoneNumber[phoneNumberCount]; + for (int i =0; i < phoneBook.length; i++) { + phoneBook[i] = createRandomPhoneNumber(); + } + return phoneBook; } /** * @return an instance of PhoneNumber with randomly generated phone number value - */ //TODO - Implement logic - public static PhoneNumber createRandomPhoneNumber() { - return createPhoneNumberSafely(-1, -1, -1); + */ + public static PhoneNumber createRandomPhoneNumber() throws InvalidPhoneNumberFormatException{ + return createPhoneNumberSafely(RandomNumberFactory.createInteger(100, 999), RandomNumberFactory.createInteger(100, 999), RandomNumberFactory.createInteger(1000, 9999)); } @@ -36,17 +41,26 @@ public static PhoneNumber createRandomPhoneNumber() { * @param centralOfficeCode - 3 digit code * @param phoneLineCode - 4 digit code * @return a new phone number object - */ //TODO - if input is valid, return respective PhoneNumber object, else return null - public static PhoneNumber createPhoneNumberSafely(int areaCode, int centralOfficeCode, int phoneLineCode) { - return createPhoneNumber(null); - } + */ + public static PhoneNumber createPhoneNumberSafely(int areaCode, int centralOfficeCode, int phoneLineCode) + throws InvalidPhoneNumberFormatException{ - /** - * @param phoneNumberString - some String corresponding to a phone number whose format is `(###)-###-####` - * @return a new phone number object - * @throws InvalidPhoneNumberFormatException - thrown if phoneNumberString does not match acceptable format - */ // TODO - Add throws statement to method signature - public static PhoneNumber createPhoneNumber(String phoneNumberString) { - return null; + try { + String phoneNumber = "(" + areaCode + ")" + "-" + centralOfficeCode + "-" + phoneLineCode; + return createPhoneNumber(phoneNumber); + + } catch (InvalidPhoneNumberFormatException e) { + return null; + } } + + /** + * @param phoneNumberString - some String corresponding to a phone number whose format is `(###)-###-####` + * @return a new phone number object + * @throws InvalidPhoneNumberFormatException - thrown if phoneNumberString does not match acceptable format + */ + public static PhoneNumber createPhoneNumber (String phoneNumberString) throws InvalidPhoneNumberFormatException { + return new PhoneNumber(phoneNumberString); + } + } diff --git a/src/test/java/com/zipcodewilmington/PhoneNumberFactoryTest.java b/src/test/java/com/zipcodewilmington/PhoneNumberFactoryTest.java index a607c50..3d279a2 100644 --- a/src/test/java/com/zipcodewilmington/PhoneNumberFactoryTest.java +++ b/src/test/java/com/zipcodewilmington/PhoneNumberFactoryTest.java @@ -21,7 +21,7 @@ public void testInvalidPhoneNumberFormatException() throws InvalidPhoneNumberFor } @Test - public void testCreatePhoneNumberSafely() { + public void testCreatePhoneNumberSafely() throws InvalidPhoneNumberFormatException { // : Given int areaCode = 0; int centralOfficeCode = 0; @@ -35,7 +35,7 @@ public void testCreatePhoneNumberSafely() { } @Test - public void testGetAreaCode() { + public void testGetAreaCode() throws InvalidPhoneNumberFormatException{ // : Given Integer areaCode = 302; int centralOfficeCode = 312; @@ -49,7 +49,7 @@ public void testGetAreaCode() { } @Test - public void testGetCentralOfficeCode() { + public void testGetCentralOfficeCode() throws InvalidPhoneNumberFormatException { // : Given int areaCode = 302; Integer centralOfficeCode = 312; @@ -64,7 +64,7 @@ public void testGetCentralOfficeCode() { @Test - public void testPhoneLineCode() { + public void testPhoneLineCode() throws InvalidPhoneNumberFormatException{ // : Given int areaCode = 302; int centralOfficeCode = 312; @@ -78,7 +78,7 @@ public void testPhoneLineCode() { } @Test - public void testCreateRandomPhoneNumber() { + public void testCreateRandomPhoneNumber() throws InvalidPhoneNumberFormatException{ for (int i = 0; i < 999; i++) { // : Given // : When