From 80b1e582990f3fb47574cee74b00d6a09296efe0 Mon Sep 17 00:00:00 2001 From: CWinarski Date: Wed, 28 Feb 2018 22:58:23 -0500 Subject: [PATCH 1/2] Almost finished --- .../phone/PhoneNumberFactory.java | 32 +++++++++++++++---- .../PhoneNumberFactoryTest.java | 2 +- 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/zipcodewilmington/phone/PhoneNumberFactory.java b/src/main/java/com/zipcodewilmington/phone/PhoneNumberFactory.java index 36d323b..cdf5ef8 100644 --- a/src/main/java/com/zipcodewilmington/phone/PhoneNumberFactory.java +++ b/src/main/java/com/zipcodewilmington/phone/PhoneNumberFactory.java @@ -1,7 +1,10 @@ package com.zipcodewilmington.phone; import com.zipcodewilmington.exceptions.InvalidPhoneNumberFormatException; +import com.zipcodewilmington.tools.RandomNumberFactory; +import java.io.IOException; +import java.util.logging.Level; import java.util.logging.Logger; /** @@ -20,14 +23,19 @@ private PhoneNumberFactory() { * @return array of randomly generated PhoneNumber objects */ //TODO - Implement logic public static PhoneNumber[] createRandomPhoneNumberArray(int phoneNumberCount) { - return null; + PhoneNumber[] phoneNumberArray = new PhoneNumber[phoneNumberCount]; + for (int i = 0; i < phoneNumberArray.length; i++){ + phoneNumberArray[i] =createRandomPhoneNumber(); + } + return phoneNumberArray; } /** * @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(){ + return createPhoneNumberSafely(RandomNumberFactory.createInteger(100,999), + RandomNumberFactory.createInteger(100,999), RandomNumberFactory.createInteger(1000, 9999)); } @@ -38,7 +46,13 @@ 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 safePhoneNumberString = String.format("(%d)-%d-%d", areaCode,centralOfficeCode,phoneLineCode); + try{ + return createPhoneNumber(safePhoneNumberString); + } catch (InvalidPhoneNumberFormatException ipfe){ + logger.log(Level.SEVERE, "safePhoneNumberString is not a valid phone number"); + return null; + } } /** @@ -46,7 +60,13 @@ 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{ + String stringRepresentation = "(215)555-5555"; + PhoneNumber newPhoneNumber = new PhoneNumber(stringRepresentation); + String areaCode = newPhoneNumber.getAreaCode(); + String centralOfficeCode = newPhoneNumber.getCentralOfficeCode(); + String phoneLineCode = newPhoneNumber.getPhoneLineCode(); + logger.log(Level.SEVERE,"Attempting to create a phone number object with the value of newPhoneNumber"); + return newPhoneNumber; } } diff --git a/src/test/java/com/zipcodewilmington/PhoneNumberFactoryTest.java b/src/test/java/com/zipcodewilmington/PhoneNumberFactoryTest.java index a607c50..0c5000a 100644 --- a/src/test/java/com/zipcodewilmington/PhoneNumberFactoryTest.java +++ b/src/test/java/com/zipcodewilmington/PhoneNumberFactoryTest.java @@ -78,7 +78,7 @@ public void testPhoneLineCode() { } @Test - public void testCreateRandomPhoneNumber() { + public void testCreateRandomPhoneNumber(){ for (int i = 0; i < 999; i++) { // : Given // : When From 7610968f9ec46d84bfcdd9cc8b2a0760abd7932c Mon Sep 17 00:00:00 2001 From: CWinarski Date: Thu, 1 Mar 2018 11:05:07 -0500 Subject: [PATCH 2/2] Finished Lab --- .../com/zipcodewilmington/phone/PhoneNumberFactory.java | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/zipcodewilmington/phone/PhoneNumberFactory.java b/src/main/java/com/zipcodewilmington/phone/PhoneNumberFactory.java index cdf5ef8..168ae3b 100644 --- a/src/main/java/com/zipcodewilmington/phone/PhoneNumberFactory.java +++ b/src/main/java/com/zipcodewilmington/phone/PhoneNumberFactory.java @@ -46,7 +46,7 @@ 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) { - String safePhoneNumberString = String.format("(%d)-%d-%d", areaCode,centralOfficeCode,phoneLineCode); + String safePhoneNumberString = String.format("(%3d)-%3d-%4d", areaCode,centralOfficeCode,phoneLineCode); try{ return createPhoneNumber(safePhoneNumberString); } catch (InvalidPhoneNumberFormatException ipfe){ @@ -61,11 +61,7 @@ public static PhoneNumber createPhoneNumberSafely(int areaCode, int centralOffic * @throws InvalidPhoneNumberFormatException - thrown if phoneNumberString does not match acceptable format */ // TODO - Add throws statement to method signature public static PhoneNumber createPhoneNumber(String phoneNumberString) throws InvalidPhoneNumberFormatException{ - String stringRepresentation = "(215)555-5555"; - PhoneNumber newPhoneNumber = new PhoneNumber(stringRepresentation); - String areaCode = newPhoneNumber.getAreaCode(); - String centralOfficeCode = newPhoneNumber.getCentralOfficeCode(); - String phoneLineCode = newPhoneNumber.getPhoneLineCode(); + PhoneNumber newPhoneNumber = new PhoneNumber(phoneNumberString); logger.log(Level.SEVERE,"Attempting to create a phone number object with the value of newPhoneNumber"); return newPhoneNumber; }