From 6ed9d4fca14ad6f7fb9b9a35e9d7b3d372f86252 Mon Sep 17 00:00:00 2001 From: Maira Botelho Date: Sat, 2 Nov 2019 11:54:34 -0400 Subject: [PATCH] tests passed --- .../phone/PhoneNumberFactory.java | 37 ++++++++++++++++--- 1 file changed, 32 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/zipcodewilmington/phone/PhoneNumberFactory.java b/src/main/java/com/zipcodewilmington/phone/PhoneNumberFactory.java index 36d323b..6e2e966 100644 --- a/src/main/java/com/zipcodewilmington/phone/PhoneNumberFactory.java +++ b/src/main/java/com/zipcodewilmington/phone/PhoneNumberFactory.java @@ -2,6 +2,7 @@ import com.zipcodewilmington.exceptions.InvalidPhoneNumberFormatException; +import java.util.logging.Level; import java.util.logging.Logger; /** @@ -20,14 +21,25 @@ private PhoneNumberFactory() { * @return array of randomly generated PhoneNumber objects */ //TODO - Implement logic public static PhoneNumber[] createRandomPhoneNumberArray(int phoneNumberCount) { - return null; + + PhoneNumber[] newPhoneNumbers = new PhoneNumber[phoneNumberCount]; + for(int i = 0; i < phoneNumberCount; i++){ + newPhoneNumbers[i] = createRandomPhoneNumber(); + } + + return newPhoneNumbers; } /** * @return an instance of PhoneNumber with randomly generated phone number value */ //TODO - Implement logic public static PhoneNumber createRandomPhoneNumber() { - return createPhoneNumberSafely(-1, -1, -1); + + int areaCode = (int) (Math.random() * (( 999 - 100 ) + 1) + 100); + int centralOfficeCode = (int) (Math.random() * (( 999 - 100 ) + 1) + 100); + int phoneLineCode = (int) (Math.random() * (( 9999 - 1000 ) + 1) + 1000); + + return createPhoneNumberSafely(areaCode, centralOfficeCode, phoneLineCode); } @@ -38,7 +50,19 @@ public static PhoneNumber createRandomPhoneNumber() { * @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); + + String newPhoneNumber = String.format("(%s)-%s-%s", areaCode, centralOfficeCode,phoneLineCode); + + try { + + return createPhoneNumber(newPhoneNumber); + + } catch (InvalidPhoneNumberFormatException e) { + + logger.log(Level.INFO, newPhoneNumber + "is not a valid phone number"); + + return null; + } } /** @@ -46,7 +70,10 @@ public static PhoneNumber createPhoneNumberSafely(int areaCode, int centralOffic * @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; + public static PhoneNumber createPhoneNumber(String phoneNumberString) throws InvalidPhoneNumberFormatException { + + logger.log(Level.INFO, "Attempting to create a new PhoneNumber object with a value of " + phoneNumberString); + + return new PhoneNumber(phoneNumberString); } }