From caa215e028c244e2dab3ea73b7aab43c1377a380 Mon Sep 17 00:00:00 2001 From: Adam Wathan Date: Mon, 13 Mar 2017 18:38:30 -0400 Subject: [PATCH] 80 - Testing the Confirmation Number Format --- ...RandomOrderConfirmationNumberGenerator.php | 11 ++++++ ...omOrderConfirmationNumberGeneratorTest.php | 34 +++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 app/RandomOrderConfirmationNumberGenerator.php diff --git a/app/RandomOrderConfirmationNumberGenerator.php b/app/RandomOrderConfirmationNumberGenerator.php new file mode 100644 index 0000000..5410632 --- /dev/null +++ b/app/RandomOrderConfirmationNumberGenerator.php @@ -0,0 +1,11 @@ +generate(); + + $this->assertEquals(24, strlen($confirmationNumber)); + } + + /** @test */ + function can_only_contain_uppercase_letters_and_numbers() + { + $generator = new RandomOrderConfirmationNumberGenerator; + + $confirmationNumber = $generator->generate(); + + $this->assertRegExp('/^[A-Z0-9]+$/', $confirmationNumber); + } + + /** @test */ + function cannot_contain_ambiguous_characters() + { + $generator = new RandomOrderConfirmationNumberGenerator; + + $confirmationNumber = $generator->generate(); + + $this->assertFalse(strpos($confirmationNumber, '1')); + $this->assertFalse(strpos($confirmationNumber, 'I')); + $this->assertFalse(strpos($confirmationNumber, '0')); + $this->assertFalse(strpos($confirmationNumber, 'O')); + } }