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 ]