6 use Test::More tests => 26;
21 => via { HTTPHeader->new(array => $_[0]) }
23 => via { HTTPHeader->new(hash => $_[0]) };
25 has 'array' => (is => 'ro');
26 has 'hash' => (is => 'ro');
33 has 'header' => (is => 'rw', isa => 'HTTPHeader', coerce => 1);
37 my $engine = Engine->new();
38 isa_ok($engine, 'Engine');
43 $engine->header([ 1, 2, 3 ]);
44 } '... type was coerced without incident';
45 isa_ok($engine->header, 'HTTPHeader');
48 $engine->header->array,
50 '... got the right array value of the header');
51 ok(!defined($engine->header->hash), '... no hash value set');
56 $engine->header({ one => 1, two => 2, three => 3 });
57 } '... type was coerced without incident';
58 isa_ok($engine->header, 'HTTPHeader');
61 $engine->header->hash,
62 { one => 1, two => 2, three => 3 },
63 '... got the right hash value of the header');
64 ok(!defined($engine->header->array), '... no array value set');
67 $engine->header("Foo");
68 } '... dies with the wrong type, even after coercion';
71 $engine->header(HTTPHeader->new);
72 } '... lives with the right type, even after coercion';
76 my $engine = Engine->new(header => [ 1, 2, 3 ]);
77 isa_ok($engine, 'Engine');
79 isa_ok($engine->header, 'HTTPHeader');
82 $engine->header->array,
84 '... got the right array value of the header');
85 ok(!defined($engine->header->hash), '... no hash value set');
89 my $engine = Engine->new(header => { one => 1, two => 2, three => 3 });
90 isa_ok($engine, 'Engine');
92 isa_ok($engine->header, 'HTTPHeader');
95 $engine->header->hash,
96 { one => 1, two => 2, three => 3 },
97 '... got the right hash value of the header');
98 ok(!defined($engine->header->array), '... no array value set');
102 my $engine = Engine->new(header => HTTPHeader->new());
103 isa_ok($engine, 'Engine');
105 isa_ok($engine->header, 'HTTPHeader');
107 ok(!defined($engine->header->hash), '... no hash value set');
108 ok(!defined($engine->header->array), '... no array value set');
112 Engine->new(header => 'Foo');
113 } '... dies correctly with bad params';
116 Engine->new(header => \(my $var));
117 } '... dies correctly with bad params';