#25 Exceptions

Abierta
primeranary desea fusionar 1 commits de primeranary/CR-MicroLabs-ExceptionsAndLogging:master en master

+ 21
- 6
src/main/java/com/zipcodewilmington/phone/PhoneNumberFactory.java Ver fichero

2
 
2
 
3
 import com.zipcodewilmington.exceptions.InvalidPhoneNumberFormatException;
3
 import com.zipcodewilmington.exceptions.InvalidPhoneNumberFormatException;
4
 
4
 
5
+import java.util.ArrayList;
5
 import java.util.logging.Logger;
6
 import java.util.logging.Logger;
6
 
7
 
7
 /**
8
 /**
20
      * @return array of randomly generated PhoneNumber objects
21
      * @return array of randomly generated PhoneNumber objects
21
      */ //TODO - Implement logic
22
      */ //TODO - Implement logic
22
     public static PhoneNumber[] createRandomPhoneNumberArray(int phoneNumberCount) {
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
      * @return an instance of PhoneNumber with randomly generated phone number value
32
      * @return an instance of PhoneNumber with randomly generated phone number value
28
      */ //TODO - Implement logic
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
      * @return a new phone number object
45
      * @return a new phone number object
39
      */ //TODO - if input is valid, return respective PhoneNumber object, else return null
46
      */ //TODO - if input is valid, return respective PhoneNumber object, else return null
40
     public static PhoneNumber createPhoneNumberSafely(int areaCode, int centralOfficeCode, int phoneLineCode) {
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
      * @return a new phone number object
58
      * @return a new phone number object
47
      * @throws InvalidPhoneNumberFormatException - thrown if phoneNumberString does not match acceptable format
59
      * @throws InvalidPhoneNumberFormatException - thrown if phoneNumberString does not match acceptable format
48
      */ // TODO - Add throws statement to method signature
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 Ver fichero

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