From 9f6a8264e8bf36b9fa94a14a69a212c6dd80165b Mon Sep 17 00:00:00 2001 From: jeanvalentin51 Date: Sun, 3 Nov 2019 16:13:33 -0500 Subject: [PATCH 1/5] Add logic for create phone number and create phone number safely --- .../phone/PhoneNumberFactory.java | 22 ++++++++++++++----- .../PhoneNumberFactoryTest.java | 10 ++++----- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/zipcodewilmington/phone/PhoneNumberFactory.java b/src/main/java/com/zipcodewilmington/phone/PhoneNumberFactory.java index 36d323b..69b83b4 100644 --- a/src/main/java/com/zipcodewilmington/phone/PhoneNumberFactory.java +++ b/src/main/java/com/zipcodewilmington/phone/PhoneNumberFactory.java @@ -26,7 +26,7 @@ public static PhoneNumber[] createRandomPhoneNumberArray(int phoneNumberCount) { /** * @return an instance of PhoneNumber with randomly generated phone number value */ //TODO - Implement logic - public static PhoneNumber createRandomPhoneNumber() { + public static PhoneNumber createRandomPhoneNumber() throws InvalidPhoneNumberFormatException { return createPhoneNumberSafely(-1, -1, -1); } @@ -37,8 +37,17 @@ public static PhoneNumber createRandomPhoneNumber() { * @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 { + String newPhoneNumber = ""; + + newPhoneNumber = "(" + areaCode + ")-" + centralOfficeCode + "-" + phoneLineCode; + + try { + return createPhoneNumber(newPhoneNumber); + } catch (InvalidPhoneNumberFormatException e){ + return null; + } + } /** @@ -46,7 +55,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 { + + PhoneNumber newPhoneNumber = new PhoneNumber(phoneNumberString); + + return newPhoneNumber; } } diff --git a/src/test/java/com/zipcodewilmington/PhoneNumberFactoryTest.java b/src/test/java/com/zipcodewilmington/PhoneNumberFactoryTest.java index a607c50..1c3f22f 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 From cd35a1ce8660fb6760373ba9a90ed403020ee0af Mon Sep 17 00:00:00 2001 From: jeanvalentin51 Date: Sun, 3 Nov 2019 16:53:19 -0500 Subject: [PATCH 2/5] Add logic for random number creation --- .../com/zipcodewilmington/phone/PhoneNumberFactory.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/zipcodewilmington/phone/PhoneNumberFactory.java b/src/main/java/com/zipcodewilmington/phone/PhoneNumberFactory.java index 69b83b4..539c1fa 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; @@ -27,7 +28,11 @@ public static PhoneNumber[] createRandomPhoneNumberArray(int phoneNumberCount) { * @return an instance of PhoneNumber with randomly generated phone number value */ //TODO - Implement logic public static PhoneNumber createRandomPhoneNumber() throws InvalidPhoneNumberFormatException { - return createPhoneNumberSafely(-1, -1, -1); + int areaCode = RandomNumberFactory.createInteger(100,999); + int centralOfficeCode = RandomNumberFactory.createInteger(100,999); + int phoneCode = RandomNumberFactory.createInteger(1000,9999); + + return createPhoneNumberSafely(areaCode, centralOfficeCode, phoneCode); } @@ -58,7 +63,7 @@ public static PhoneNumber createPhoneNumberSafely(int areaCode, int centralOffic public static PhoneNumber createPhoneNumber(String phoneNumberString) throws InvalidPhoneNumberFormatException { PhoneNumber newPhoneNumber = new PhoneNumber(phoneNumberString); - return newPhoneNumber; + } } From ff7a97a3b9f56463057c68ee2f7d1f45e6cd55c2 Mon Sep 17 00:00:00 2001 From: jeanvalentin51 Date: Sun, 3 Nov 2019 17:07:10 -0500 Subject: [PATCH 3/5] Add logic for random phone number array --- .../phone/PhoneNumberFactory.java | 14 ++++++++++++-- .../PhoneNumberFactoryTest.java | 17 ++++++++++++++++- 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/zipcodewilmington/phone/PhoneNumberFactory.java b/src/main/java/com/zipcodewilmington/phone/PhoneNumberFactory.java index 539c1fa..62430f5 100644 --- a/src/main/java/com/zipcodewilmington/phone/PhoneNumberFactory.java +++ b/src/main/java/com/zipcodewilmington/phone/PhoneNumberFactory.java @@ -20,8 +20,18 @@ 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 [] arrayOfPhoneNumbers = new PhoneNumber[phoneNumberCount]; + + for (int i = 0; i < phoneNumberCount; i++){ + int areadCode = RandomNumberFactory.createInteger(100,999); + int centralOfficeCode = RandomNumberFactory.createInteger(100,999); + int phoneCOde = RandomNumberFactory.createInteger(1000,9999); + + arrayOfPhoneNumbers[i] = createPhoneNumberSafely(areadCode,centralOfficeCode,phoneCOde); + } + + return arrayOfPhoneNumbers; } /** diff --git a/src/test/java/com/zipcodewilmington/PhoneNumberFactoryTest.java b/src/test/java/com/zipcodewilmington/PhoneNumberFactoryTest.java index 1c3f22f..b2e454a 100644 --- a/src/test/java/com/zipcodewilmington/PhoneNumberFactoryTest.java +++ b/src/test/java/com/zipcodewilmington/PhoneNumberFactoryTest.java @@ -7,6 +7,7 @@ import org.junit.Before; import org.junit.Test; +import java.util.Arrays; import java.util.logging.Level; import java.util.logging.Logger; @@ -78,7 +79,7 @@ public void testPhoneLineCode() throws InvalidPhoneNumberFormatException { } @Test - public void testCreateRandomPhoneNumber() throws InvalidPhoneNumberFormatException { + public void testCreateRandomPhoneNumber() throws InvalidPhoneNumberFormatException { for (int i = 0; i < 999; i++) { // : Given // : When @@ -88,4 +89,18 @@ public void testCreateRandomPhoneNumber() throws InvalidPhoneNumberFormatExcepti Assert.assertTrue(phoneNumber != null); } } + + @Test + public void testCreateRandomPhoneNumberArray() throws InvalidPhoneNumberFormatException { + for (int i = 0; i < 10; i++) { + // : Given + // : When + PhoneNumber [] phoneNumber = PhoneNumberFactory.createRandomPhoneNumberArray(5); + + // : Then + Assert.assertTrue(phoneNumber != null); + String output = Arrays.toString(phoneNumber); + System.out.println(output); + } + } } \ No newline at end of file From c06a9fa6947da88aca91c70c6fa9b090bcb810f4 Mon Sep 17 00:00:00 2001 From: jeanvalentin51 Date: Sun, 3 Nov 2019 17:14:59 -0500 Subject: [PATCH 4/5] Added logger for part1 --- .../java/com/zipcodewilmington/phone/PhoneNumberFactory.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/zipcodewilmington/phone/PhoneNumberFactory.java b/src/main/java/com/zipcodewilmington/phone/PhoneNumberFactory.java index 62430f5..a9b6889 100644 --- a/src/main/java/com/zipcodewilmington/phone/PhoneNumberFactory.java +++ b/src/main/java/com/zipcodewilmington/phone/PhoneNumberFactory.java @@ -9,7 +9,7 @@ * Created by leon on 5/1/17. */ public final class PhoneNumberFactory { - private static final Logger logger = Logger.getGlobal(); + private static final Logger LOGGER = Logger.getLogger("com.zipcodewilmington.phone"); private PhoneNumberFactory() { /** This constructor is private @@ -71,7 +71,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 { - + LOGGER.info("Attempting to create a new PhoneNumber object with a value of " + phoneNumberString); PhoneNumber newPhoneNumber = new PhoneNumber(phoneNumberString); return newPhoneNumber; From e53aa93d9d5f004cab09cd70df9977b283fdd3fe Mon Sep 17 00:00:00 2001 From: jeanvalentin51 Date: Sun, 3 Nov 2019 17:20:29 -0500 Subject: [PATCH 5/5] Add logger for invalid phone number --- .../java/com/zipcodewilmington/phone/PhoneNumberFactory.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/zipcodewilmington/phone/PhoneNumberFactory.java b/src/main/java/com/zipcodewilmington/phone/PhoneNumberFactory.java index a9b6889..2f5d17b 100644 --- a/src/main/java/com/zipcodewilmington/phone/PhoneNumberFactory.java +++ b/src/main/java/com/zipcodewilmington/phone/PhoneNumberFactory.java @@ -60,6 +60,7 @@ public static PhoneNumber createPhoneNumberSafely(int areaCode, int centralOffic try { return createPhoneNumber(newPhoneNumber); } catch (InvalidPhoneNumberFormatException e){ + LOGGER.info(newPhoneNumber + " is not a valid phone number"); return null; }