exercism-perl5

Repository for my Perl 5 Exercism exercises
git clone git://git.samirparikh.com/exercism-perl5
Log | Files | Refs | README

two-fer.t (926B) - raw


      1 #!/usr/bin/env perl
      2 use Test2::V0;
      3 use JSON::PP;
      4 use constant JSON => JSON::PP->new;
      5 
      6 use FindBin qw<$Bin>;
      7 use lib $Bin, "$Bin/local/lib/perl5";
      8 
      9 use TwoFer qw<two_fer>;
     10 
     11 my @test_cases = do { local $/; @{ JSON->decode(<DATA>) }; };
     12 plan 4;
     13 
     14 imported_ok qw<two_fer> or bail_out;
     15 
     16 for my $case (@test_cases) {
     17   is $case->{input}{name}
     18     ? two_fer( $case->{input}{name} )
     19     : two_fer(),
     20     $case->{expected}, $case->{description};
     21 }
     22 
     23 __DATA__
     24 [
     25   {
     26     "description": "no name given",
     27     "expected": "One for you, one for me.",
     28     "input": {
     29       "name": null
     30     },
     31     "property": "twoFer"
     32   },
     33   {
     34     "description": "a name given",
     35     "expected": "One for Alice, one for me.",
     36     "input": {
     37       "name": "Alice"
     38     },
     39     "property": "twoFer"
     40   },
     41   {
     42     "description": "another name given",
     43     "expected": "One for Bob, one for me.",
     44     "input": {
     45       "name": "Bob"
     46     },
     47     "property": "twoFer"
     48   }
     49 ]