File Coverage

blib/lib/Test/BDD/Cucumber/Model/Feature.pm
Criterion Covered Total %
statement 11 11 100.0
branch n/a
condition n/a
subroutine 4 4 100.0
pod n/a
total 15 15 100.0


line stmt bran cond sub pod time code
1 17     17   228 use v5.14;
  17         67  
2 17     17   140 use warnings;
  17         45  
  17         800  
3              
4             package Test::BDD::Cucumber::Model::Feature 0.85;
5              
6 17     17   111 use Moo;
  17         42  
  17         159  
7 17     17   5803 use Types::Standard qw( Str ArrayRef InstanceOf );
  17         63  
  17         119  
8              
9             =head1 NAME
10              
11             Test::BDD::Cucumber::Model::Feature - Model to represent a feature file, parsed
12              
13             =head1 VERSION
14              
15             version 0.85
16              
17             =head1 DESCRIPTION
18              
19             Model to represent a feature file, parsed
20              
21             =head1 ATTRIBUTES
22              
23             =head2 name
24              
25             The text after the C keyword
26              
27             =cut
28              
29             has 'name' => ( is => 'rw', isa => Str );
30              
31             =head2 name_line
32              
33             A L object corresponding to the line the
34             C keyword was found on
35              
36             =cut
37              
38             has 'name_line' => ( is => 'rw', isa => InstanceOf['Test::BDD::Cucumber::Model::Line'] );
39              
40             =head2 satisfaction
41              
42             An arrayref of strings of the Conditions of Satisfaction
43              
44             =cut
45              
46             has 'satisfaction' => (
47             is => 'rw',
48             isa => ArrayRef[InstanceOf['Test::BDD::Cucumber::Model::Line']],
49             default => sub { [] }
50             );
51              
52             =head2 document
53              
54             The corresponding L object
55              
56             =cut
57              
58             has 'document' => ( is => 'rw', isa => InstanceOf['Test::BDD::Cucumber::Model::Document'] );
59              
60             =head2 background
61              
62             The L object that was marked as the
63             background section.
64              
65             =cut
66              
67             has 'background' =>
68             ( is => 'rw', isa => InstanceOf['Test::BDD::Cucumber::Model::Scenario'] );
69              
70             =head2 keyword_original
71              
72             The keyword used in the input file; equivalent to specification
73             keyword C.
74              
75             =cut
76              
77             has 'keyword_original' => ( is => 'rw', isa => Str );
78              
79              
80             =head2 scenarios
81              
82             An arrayref of the L objects that
83             constitute the test.
84              
85             =cut
86              
87             has 'scenarios' => (
88             is => 'rw',
89             isa => ArrayRef[InstanceOf['Test::BDD::Cucumber::Model::Scenario']],
90             default => sub { [] }
91             );
92              
93             =head2 tags
94              
95             Tags that the feature has been tagged with, and will pass on to its
96             Scenarios.
97              
98             =cut
99              
100             has 'tags' => ( is => 'rw', isa => ArrayRef[Str], default => sub { [] } );
101              
102             =head2 language
103              
104             Language the feature is written in. Defaults to 'en'.
105              
106             =cut
107              
108             has 'language' => (
109             is => 'rw',
110             isa => Str,
111             default => sub { 'en' }
112             );
113              
114             =head1 AUTHOR
115              
116             Peter Sergeant C
117              
118             =head1 LICENSE
119              
120             Copyright 2019-2023, Erik Huelsmann
121             Copyright 2011-2019, Peter Sergeant; Licensed under the same terms as Perl
122              
123             =cut
124              
125             1;