From bfb5fc75cd59f8f48dd9f941bc444980f1f62979 Mon Sep 17 00:00:00 2001 From: David Trombello Date: Sun, 10 Nov 2019 16:03:30 -0500 Subject: [PATCH 1/2] all but 2 tests pass --- .../InvalidPhoneNumberFormatException.java | 2 ++ .../phone/PhoneNumberFactory.java | 36 ++++++++++++++----- .../PhoneNumberFactoryTest.java | 10 +++--- 3 files changed, 35 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/zipcodewilmington/exceptions/InvalidPhoneNumberFormatException.java b/src/main/java/com/zipcodewilmington/exceptions/InvalidPhoneNumberFormatException.java index 5d3fb58..9c1a95a 100644 --- a/src/main/java/com/zipcodewilmington/exceptions/InvalidPhoneNumberFormatException.java +++ b/src/main/java/com/zipcodewilmington/exceptions/InvalidPhoneNumberFormatException.java @@ -4,4 +4,6 @@ * Created by leon on 5/10/17. */ // Checked Exception public final class InvalidPhoneNumberFormatException extends Exception { + + } diff --git a/src/main/java/com/zipcodewilmington/phone/PhoneNumberFactory.java b/src/main/java/com/zipcodewilmington/phone/PhoneNumberFactory.java index 36d323b..9f5be85 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; @@ -9,6 +10,9 @@ */ public final class PhoneNumberFactory { private static final Logger logger = Logger.getGlobal(); +// private int areaCode; +// private int centralOfficeCode; +// private int phoneLineCode; private PhoneNumberFactory() { /** This constructor is private @@ -19,15 +23,23 @@ 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[] phoneNumbers= new PhoneNumber[phoneNumberCount]; + for (int i = 0; i < phoneNumberCount; i++ ){ + phoneNumbers[i] = createRandomPhoneNumber(); + } + return phoneNumbers; } /** * @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 { + int areaCode = RandomNumberFactory.createInteger(1, 3); + int centralOfficeCode = RandomNumberFactory.createInteger(1, 3); + int phoneLineCode = RandomNumberFactory.createInteger(1 ,4); + + return createPhoneNumberSafely(areaCode, centralOfficeCode, phoneLineCode); } @@ -37,8 +49,15 @@ 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{ + StringBuilder sb = new StringBuilder(); + + try { sb.append("(").append(areaCode).append(")-").append(centralOfficeCode).append("-").append(phoneLineCode);} + catch (Exception InvalidPhoneNumberFormatException) { + //System.out.println("Something went wrong"); + return null; + } + return createPhoneNumber(sb.toString()); } /** @@ -46,7 +65,8 @@ 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 phoneNumber = new PhoneNumber(phoneNumberString); + return phoneNumber; } } 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 9ef75a71e00c9d3db109a671cead2a5e0cbb333d Mon Sep 17 00:00:00 2001 From: David Trombello Date: Sun, 10 Nov 2019 18:53:26 -0500 Subject: [PATCH 2/2] all tests pass --- .../phone/PhoneNumberFactory.java | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/zipcodewilmington/phone/PhoneNumberFactory.java b/src/main/java/com/zipcodewilmington/phone/PhoneNumberFactory.java index 9f5be85..a198a8c 100644 --- a/src/main/java/com/zipcodewilmington/phone/PhoneNumberFactory.java +++ b/src/main/java/com/zipcodewilmington/phone/PhoneNumberFactory.java @@ -3,6 +3,7 @@ import com.zipcodewilmington.exceptions.InvalidPhoneNumberFormatException; import com.zipcodewilmington.tools.RandomNumberFactory; +import java.util.logging.Level; import java.util.logging.Logger; /** @@ -35,9 +36,9 @@ public static PhoneNumber[] createRandomPhoneNumberArray(int phoneNumberCount) t * @return an instance of PhoneNumber with randomly generated phone number value */ //TODO - Implement logic public static PhoneNumber createRandomPhoneNumber() throws InvalidPhoneNumberFormatException { - int areaCode = RandomNumberFactory.createInteger(1, 3); - int centralOfficeCode = RandomNumberFactory.createInteger(1, 3); - int phoneLineCode = RandomNumberFactory.createInteger(1 ,4); + Integer areaCode = RandomNumberFactory.createInteger(100, 999); + Integer centralOfficeCode = RandomNumberFactory.createInteger(100, 999); + Integer phoneLineCode = RandomNumberFactory.createInteger(1000 ,9999); return createPhoneNumberSafely(areaCode, centralOfficeCode, phoneLineCode); } @@ -51,13 +52,13 @@ public static PhoneNumber createRandomPhoneNumber() throws InvalidPhoneNumberFor */ //TODO - if input is valid, return respective PhoneNumber object, else return null public static PhoneNumber createPhoneNumberSafely(int areaCode, int centralOfficeCode, int phoneLineCode) throws InvalidPhoneNumberFormatException{ StringBuilder sb = new StringBuilder(); + String correctPhoneFormat = sb.append("(").append(areaCode).append(")-").append(centralOfficeCode).append("-").append(phoneLineCode).toString(); - try { sb.append("(").append(areaCode).append(")-").append(centralOfficeCode).append("-").append(phoneLineCode);} - catch (Exception InvalidPhoneNumberFormatException) { - //System.out.println("Something went wrong"); + try { return createPhoneNumber(correctPhoneFormat);} + catch (InvalidPhoneNumberFormatException e) { + logger.log(Level.INFO, String.format("%s, is not a valid phone number", correctPhoneFormat)); return null; } - return createPhoneNumber(sb.toString()); } /** @@ -67,6 +68,7 @@ public static PhoneNumber createPhoneNumberSafely(int areaCode, int centralOffic */ // TODO - Add throws statement to method signature public static PhoneNumber createPhoneNumber(String phoneNumberString) throws InvalidPhoneNumberFormatException { PhoneNumber phoneNumber = new PhoneNumber(phoneNumberString); + logger.log(Level.INFO, String.format("Attempting to create a new PhoneNumber object with a value of %s", phoneNumber)); return phoneNumber; } }