lots of exercises in java... from https://github.com/exercism/java

PhoneNumberTest.java 4.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. import org.junit.Ignore;
  2. import org.junit.Rule;
  3. import org.junit.Test;
  4. import org.junit.rules.ExpectedException;
  5. import static org.junit.Assert.assertEquals;
  6. public class PhoneNumberTest {
  7. private static String wrongLengthExceptionMessage = "Number must be 10 or 11 digits";
  8. private static String numberIs11DigitsButDoesNotStartWith1ExceptionMessage =
  9. "Can only have 11 digits if number starts with '1'";
  10. private static String illegalCharacterExceptionMessage =
  11. "Illegal character in phone number. Only digits, spaces, parentheses, hyphens or dots accepted.";
  12. private static String illegalAreaOrExchangeCodeMessage =
  13. "Illegal Area Or Exchange Code. Only 2-9 are valid digits";
  14. @Rule
  15. public ExpectedException expectedException = ExpectedException.none();
  16. @Test
  17. public void cleansTheNumber() {
  18. String expectedNumber = "2234567890";
  19. String actualNumber = new PhoneNumber("(223) 456-7890").getNumber();
  20. assertEquals(
  21. expectedNumber, actualNumber
  22. );
  23. }
  24. @Ignore("Remove to run test")
  25. @Test
  26. public void cleansNumbersWithDots() {
  27. String expectedNumber = "2234567890";
  28. String actualNumber = new PhoneNumber("223.456.7890").getNumber();
  29. assertEquals(
  30. expectedNumber, actualNumber
  31. );
  32. }
  33. @Ignore("Remove to run test")
  34. @Test
  35. public void cleansNumbersWithMultipleSpaces() {
  36. String expectedNumber = "2234567890";
  37. String actualNumber = new PhoneNumber("223 456 7890 ").getNumber();
  38. assertEquals(
  39. expectedNumber, actualNumber
  40. );
  41. }
  42. @Ignore("Remove to run test")
  43. @Test
  44. public void invalidWhen9Digits() {
  45. expectedException.expect(IllegalArgumentException.class);
  46. expectedException.expectMessage(wrongLengthExceptionMessage);
  47. new PhoneNumber("123456789");
  48. }
  49. @Ignore("Remove to run test")
  50. @Test
  51. public void invalidWhen11DigitsDoesNotStartWith1() {
  52. expectedException.expect(IllegalArgumentException.class);
  53. expectedException.expectMessage(numberIs11DigitsButDoesNotStartWith1ExceptionMessage);
  54. new PhoneNumber("22234567890");
  55. }
  56. @Ignore("Remove to run test")
  57. @Test
  58. public void validWhen11DigitsAndStartingWith1() {
  59. String expectedNumber = "2234567890";
  60. String actualNumber = new PhoneNumber("12234567890").getNumber();
  61. assertEquals(
  62. expectedNumber, actualNumber
  63. );
  64. }
  65. @Ignore("Remove to run test")
  66. @Test
  67. public void validWhen11DigitsAndStartingWith1EvenWithPunctuation() {
  68. String expectedNumber = "2234567890";
  69. String actualNumber = new PhoneNumber("+1 (223) 456-7890").getNumber();
  70. assertEquals(
  71. expectedNumber, actualNumber
  72. );
  73. }
  74. @Ignore("Remove to run test")
  75. @Test
  76. public void invalidWhenMoreThan11Digits() {
  77. expectedException.expect(IllegalArgumentException.class);
  78. expectedException.expectMessage(wrongLengthExceptionMessage);
  79. new PhoneNumber("321234567890");
  80. }
  81. @Ignore("Remove to run test")
  82. @Test
  83. public void invalidWithLetters() {
  84. expectedException.expect(IllegalArgumentException.class);
  85. expectedException.expectMessage(illegalCharacterExceptionMessage);
  86. new PhoneNumber("123-abc-7890");
  87. }
  88. @Ignore("Remove to run test")
  89. @Test
  90. public void invalidWithPunctuations() {
  91. expectedException.expect(IllegalArgumentException.class);
  92. expectedException.expectMessage(illegalCharacterExceptionMessage);
  93. new PhoneNumber("123-@:!-7890");
  94. }
  95. @Ignore("Remove to run test")
  96. @Test
  97. public void invalidIfAreaCodeStartsWith0() {
  98. expectedException.expect(IllegalArgumentException.class);
  99. expectedException.expectMessage(illegalAreaOrExchangeCodeMessage);
  100. new PhoneNumber("(023) 456-7890");
  101. }
  102. @Ignore("Remove to run test")
  103. @Test
  104. public void invalidIfAreaCodeStartsWith1() {
  105. expectedException.expect(IllegalArgumentException.class);
  106. expectedException.expectMessage(illegalAreaOrExchangeCodeMessage);
  107. new PhoneNumber("(123) 456-7890");
  108. }
  109. @Ignore("Remove to run test")
  110. @Test
  111. public void invalidIfExchangeCodeStartsWith0() {
  112. expectedException.expect(IllegalArgumentException.class);
  113. expectedException.expectMessage(illegalAreaOrExchangeCodeMessage);
  114. new PhoneNumber("(223) 056-7890");
  115. }
  116. @Ignore("Remove to run test")
  117. @Test
  118. public void invalidIfExchangeCodeStartsWith1() {
  119. expectedException.expect(IllegalArgumentException.class);
  120. expectedException.expectMessage(illegalAreaOrExchangeCodeMessage);
  121. new PhoneNumber("(223) 156-7890");
  122. }
  123. }