1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
|
#!perl
use strict;
use warnings;
use Test::More;
use Test::BDD::Cucumber::Parser;
use Test::BDD::Cucumber::Errors qw/parse_error_from_line/;
my $feature = Test::BDD::Cucumber::Parser->parse_string( join '', (<DATA>) );
# Test different offsets
my @tests = (
[ 0 =>
1,
"# Somehow I don't see this replacing the other tests this module has...",
"Feature: Simple tests of Digest.pm",
" As a developer planning to use Digest.pm",
"",
" Background:",
],
[ 1 =>
1,
"# Somehow I don't see this replacing the other tests this module has...",
"Feature: Simple tests of Digest.pm",
" As a developer planning to use Digest.pm",
"",
" Background:",
],
[ 2 =>
1,
"# Somehow I don't see this replacing the other tests this module has...",
"Feature: Simple tests of Digest.pm",
" As a developer planning to use Digest.pm",
"",
" Background:",
],
[ 4 =>
2,
"Feature: Simple tests of Digest.pm",
" As a developer planning to use Digest.pm",
"",
" Background:",
' Given a usable "Digest" class',
],
[ 10 =>
8,
' Scenario: Check MD5',
' Given a Digest MD5 object',
' When I\'ve added "foo bar baz" to the object',
' And I\'ve added "bat ban shan" to the object',
' Then the hex output is "bcb56b3dd4674d5d7459c95e4c8a41d5"',
],
[ 12 =>
9,
' Given a Digest MD5 object',
' When I\'ve added "foo bar baz" to the object',
' And I\'ve added "bat ban shan" to the object',
' Then the hex output is "bcb56b3dd4674d5d7459c95e4c8a41d5"',
' Then the base64 output is "1B2M2Y8AsgTpgAmY7PhCfg"',
],
[ 13 =>
9,
' Given a Digest MD5 object',
' When I\'ve added "foo bar baz" to the object',
' And I\'ve added "bat ban shan" to the object',
' Then the hex output is "bcb56b3dd4674d5d7459c95e4c8a41d5"',
' Then the base64 output is "1B2M2Y8AsgTpgAmY7PhCfg"',
],
[ 14 =>
9,
' Given a Digest MD5 object',
' When I\'ve added "foo bar baz" to the object',
' And I\'ve added "bat ban shan" to the object',
' Then the hex output is "bcb56b3dd4674d5d7459c95e4c8a41d5"',
' Then the base64 output is "1B2M2Y8AsgTpgAmY7PhCfg"',
],
);
for ( @tests ) {
my ( $offset, $expected_offset, @lines ) = @$_;
is_deeply(
[
Test::BDD::Cucumber::Errors::_get_context_range(
$feature->document, $offset )
],
[
$expected_offset,
@lines
],
"Offset $offset works"
)
}
my $make_error = parse_error_from_line(
"Foo bar baz", $feature->document->lines->[1]
);
is( $make_error,
"-- Parse Error --
Foo bar baz
at [(no filename)] line 2
thrown by: [t/500_error_formatter.t] line 95
-- [(no filename)] --
1| # Somehow I don't see this replacing the other tests this module has...
2* Feature: Simple tests of Digest.pm
3| As a developer planning to use Digest.pm
4| "."
5| Background:
---------------------
",
"Error example matches"
);
done_testing();
__DATA__
# Somehow I don't see this replacing the other tests this module has...
Feature: Simple tests of Digest.pm
As a developer planning to use Digest.pm
Background:
Given a usable "Digest" class
Scenario: Check MD5
Given a Digest MD5 object
When I've added "foo bar baz" to the object
And I've added "bat ban shan" to the object
Then the hex output is "bcb56b3dd4674d5d7459c95e4c8a41d5"
Then the base64 output is "1B2M2Y8AsgTpgAmY7PhCfg"
|