#25 Exceptions

Open
primeranary wil 1 commits van primeranary/CR-MicroLabs-ExceptionsAndLogging:master samenvoegen met master

+ 21
- 6
src/main/java/com/zipcodewilmington/phone/PhoneNumberFactory.java Bestand weergeven

@@ -2,6 +2,7 @@ package com.zipcodewilmington.phone;
2 2
 
3 3
 import com.zipcodewilmington.exceptions.InvalidPhoneNumberFormatException;
4 4
 
5
+import java.util.ArrayList;
5 6
 import java.util.logging.Logger;
6 7
 
7 8
 /**
@@ -20,14 +21,20 @@ public final class PhoneNumberFactory {
20 21
      * @return array of randomly generated PhoneNumber objects
21 22
      */ //TODO - Implement logic
22 23
     public static PhoneNumber[] createRandomPhoneNumberArray(int phoneNumberCount) {
23
-        return null;
24
+        ArrayList phoneNumber = new ArrayList();
25
+        phoneNumber.add(createRandomPhoneNumber(phoneNumberCount));
26
+
27
+        return (PhoneNumber[]) phoneNumber.toArray();
28
+
24 29
     }
25 30
 
26 31
     /**
27 32
      * @return an instance of PhoneNumber with randomly generated phone number value
28 33
      */ //TODO - Implement logic
29
-    public static PhoneNumber createRandomPhoneNumber() {
30
-        return createPhoneNumberSafely(-1, -1, -1);
34
+    public static PhoneNumber createRandomPhoneNumber(int numbers) {
35
+
36
+
37
+        return createPhoneNumberSafely((int)Math.floor( 239 + Math.random() * 239), (int)Math.floor( 239 + Math.random() * 239), (int)Math.floor( 2394 + Math.random() * 2394));
31 38
     }
32 39
 
33 40
 
@@ -38,7 +45,12 @@ public final class PhoneNumberFactory {
38 45
      * @return a new phone number object
39 46
      */ //TODO - if input is valid, return respective PhoneNumber object, else return null
40 47
     public static PhoneNumber createPhoneNumberSafely(int areaCode, int centralOfficeCode, int phoneLineCode) {
41
-        return createPhoneNumber(null);
48
+        try {
49
+            return createPhoneNumber("(" + areaCode + ")" + "-" + centralOfficeCode + "-" + phoneLineCode);
50
+        } catch (InvalidPhoneNumberFormatException e) {
51
+            logger.warning("(" + areaCode + ")" + "-" + centralOfficeCode + "-" + phoneLineCode + " is not a valid phone number");
52
+            e.printStackTrace();
53
+        }return null;
42 54
     }
43 55
 
44 56
     /**
@@ -46,7 +58,10 @@ public final class PhoneNumberFactory {
46 58
      * @return a new phone number object
47 59
      * @throws InvalidPhoneNumberFormatException - thrown if phoneNumberString does not match acceptable format
48 60
      */ // TODO - Add throws statement to method signature
49
-    public static PhoneNumber createPhoneNumber(String phoneNumberString) {
50
-        return null;
61
+    public static PhoneNumber createPhoneNumber(String phoneNumberString) throws InvalidPhoneNumberFormatException {
62
+        PhoneNumber phoneNumber = new PhoneNumber(phoneNumberString);
63
+        logger.warning("Attempting to create a new PhoneNumber object with a value of " + phoneNumberString);
64
+        return phoneNumber;
51 65
     }
66
+
52 67
 }

+ 2
- 1
src/test/java/com/zipcodewilmington/PhoneNumberFactoryTest.java Bestand weergeven

@@ -81,8 +81,9 @@ public class PhoneNumberFactoryTest {
81 81
     public void testCreateRandomPhoneNumber() {
82 82
         for (int i = 0; i < 999; i++) {
83 83
             // : Given
84
+            int numbers =0;
84 85
             // : When
85
-            PhoneNumber phoneNumber = PhoneNumberFactory.createRandomPhoneNumber();
86
+            PhoneNumber phoneNumber = PhoneNumberFactory.createRandomPhoneNumber( numbers);
86 87
 
87 88
             // : Then
88 89
             Assert.assertTrue(phoneNumber != null);