Skip to content

Commit

Permalink
passing tests for isValidCreditCardNumber, isValidEmail, isValidExpir…
Browse files Browse the repository at this point in the history
…ationData, and isValidPhoneNumber
  • Loading branch information
slackmage committed May 20, 2011
1 parent 65b4c29 commit 04b8b7a
Show file tree
Hide file tree
Showing 5 changed files with 208 additions and 1 deletion.
5 changes: 4 additions & 1 deletion src/utils/validation/isValidCreditCardNumber.as
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,10 @@ package utils.validation
for (var i:Number = 0; i < aNumbers.length; i++)
{
// Type cast each digit to a number.
aNumbers[i] = Number(aNumbers[i]);

var num:uint = uint(aNumbers[i]);

aNumbers[i] = num;

// Compare the parity of the index to the parity of the card number length
// to determine how the value of the current index is handled.
Expand Down
70 changes: 70 additions & 0 deletions test/validation/isValidCreditCardNumberTest.as
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
/**
* Created by IntelliJ IDEA.
* User: Ian McLean
* Date: 5/20/11
* Time: 1:52 PM
*/
package validation {
import org.hamcrest.assertThat;
import org.hamcrest.object.equalTo;

import utils.validation.isValidCreditCardNumber;

public class isValidCreditCardNumberTest {

[Test]
public function ccBelowMinimum13ShouldFail() : void {

assertThat(isValidCreditCardNumber("1234"), equalTo(false));

}

[Test]
public function ccAboveMaximum16ShouldFail() : void {

assertThat(isValidCreditCardNumber("123413123123213421341123412423412412341232314"), equalTo(false));

}

//Even CC length integrity testing
//Each number is examined
//if a number is divisible by 2 with no remainder (even) it gets doubled and added to the first group. If the result is number is greater than 9 then 9 is subtracted.
//if a number is divisible by 2 with a remainder (odd) it gets added to the second group
//The first group plus the second group should be divisible by 10 with no remainder

[Test]
public function ccEvenNumberLengthWithBadIntegrityShouldFail() : void {

assertThat(isValidCreditCardNumber("12345678901234"), equalTo(false));

}

[Test]
public function ccEvenNumberLengthWithGoodIntegrityShouldPass() : void {

assertThat(isValidCreditCardNumber("72345678901234"), equalTo(true));

}

//Odd CC length integrity testing
//Each number is examined
//if a number is divisible by 1 with no remainder (odd) it gets doubled and added to the first group. If the result is number is greater than 9 then 9 is subtracted.
//if a number is divisible by 1 with a remainder (even) it gets added to the second group
//The first group plus the second group should be divisible by 10 with no remainder

[Test]
public function ccOddNumberLengthWithBadIntegrityShouldFail() : void {

assertThat(isValidCreditCardNumber("123456789012345"), equalTo(false));

}

[Test]
public function ccOddNumberLengthWithGoodIntegrityShouldPass() : void {

assertThat(isValidCreditCardNumber("323456789012345"), equalTo(true));

}

}
}
43 changes: 43 additions & 0 deletions test/validation/isValidEmailAddress.as
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
/**
* Created by IntelliJ IDEA.
* User: Ian McLean
* Date: 5/20/11
* Time: 1:47 PM
*/
package validation {
import org.hamcrest.assertThat;
import org.hamcrest.object.equalTo;

import utils.validation.isValidEmailAddress;

public class isValidEmailAddress {

[Test]
public function goodEmailPasses() : void {

assertThat(utils.validation.isValidEmailAddress("test@test.com"), equalTo(true))

}

[Test]
public function emailWithSpaceFails() : void {

assertThat(utils.validation.isValidEmailAddress("test@ test.com"), equalTo(false))

}

[Test]
public function emailWithoutAtSymbolFails() : void {

assertThat(utils.validation.isValidEmailAddress("testtest.com"), equalTo(false))

}

[Test]
public function emailWithInvalidCharacterFails() : void {

assertThat(utils.validation.isValidEmailAddress("test@te$t.com"), equalTo(false))

}
}
}
51 changes: 51 additions & 0 deletions test/validation/isValidExpirationDateTest.as
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
/**
* Created by IntelliJ IDEA.
* User: Ian McLean
* Date: 5/20/11
* Time: 1:34 PM
*/
package validation {
import org.hamcrest.assertThat;

import org.hamcrest.object.equalTo;

import utils.validation.isValidExpirationDate;

public class isValidExpirationDateTest {

[Test]
public function expirationOfNextYearShouldPass() : void {

assertThat(isValidExpirationDate(1, new Date().getFullYear() + 1), equalTo(true));

}

[Test]
public function expirationOfLastYearShouldFail() : void {

assertThat(isValidExpirationDate(1, new Date().getFullYear() - 1), equalTo(false));

}

[Test]
public function expirationOfSameYearButUpcomingMonthShouldPass() : void {

assertThat(isValidExpirationDate(new Date().getMonth() + 1, new Date().getFullYear()), equalTo(true));

}

[Test]
public function expirationOfSameYearButPastMonthShouldFail() : void {

assertThat(isValidExpirationDate(new Date().getMonth() - 1, new Date().getFullYear()), equalTo(false));

}

[Test]
public function expirationOfUpcomingYearWithMonthOfZeroShouldFail() : void {

assertThat(isValidExpirationDate(0,new Date().getFullYear() + 1), equalTo(true));

}
}
}
40 changes: 40 additions & 0 deletions test/validation/isValidPhoneNumberTest.as
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
/**
* Created by IntelliJ IDEA.
* User: Ian McLean
* Date: 5/3/11
* Time: 5:32 PM
*/
package validation {
import org.hamcrest.assertThat;

import org.hamcrest.object.equalTo;

import utils.validation.isValidPhoneNumber;

public class isValidPhoneNumberTest {

[Test]
public function validNumberPasses() : void {

assertThat(isValidPhoneNumber("123 456-7789"), equalTo(true));

}

[Test]
public function validNumberNoDashesPasses() : void {

assertThat(isValidPhoneNumber("123 456 7789"), equalTo(true));

}

//TODO: Should this be the intended behavior?
[Test]
public function validNumberWithPrefixFails() : void {

assertThat(isValidPhoneNumber("1 123 456-7789"), equalTo(false));

}


}
}

0 comments on commit 04b8b7a

Please sign in to comment.