13 use Moose::Util::TypeConstraints;
17 => via { HTTPHeader->new(array => $_[0]) };
21 => via { HTTPHeader->new(hash => $_[0]) };
23 has 'array' => (is => 'ro');
24 has 'hash' => (is => 'ro');
31 has 'header' => (is => 'rw', isa => 'HTTPHeader', coerce => 1);
35 my $engine = Engine->new();
36 isa_ok($engine, 'Engine');
41 $engine->header([ 1, 2, 3 ]);
42 } '... type was coerced without incident';
43 isa_ok($engine->header, 'HTTPHeader');
46 $engine->header->array,
48 '... got the right array value of the header');
49 ok(!defined($engine->header->hash), '... no hash value set');
54 $engine->header({ one => 1, two => 2, three => 3 });
55 } '... type was coerced without incident';
56 isa_ok($engine->header, 'HTTPHeader');
59 $engine->header->hash,
60 { one => 1, two => 2, three => 3 },
61 '... got the right hash value of the header');
62 ok(!defined($engine->header->array), '... no array value set');
65 $engine->header("Foo");
66 } '... dies with the wrong type, even after coercion';
69 $engine->header(HTTPHeader->new);
70 } '... lives with the right type, even after coercion';
74 my $engine = Engine->new(header => [ 1, 2, 3 ]);
75 isa_ok($engine, 'Engine');
77 isa_ok($engine->header, 'HTTPHeader');
80 $engine->header->array,
82 '... got the right array value of the header');
83 ok(!defined($engine->header->hash), '... no hash value set');
87 my $engine = Engine->new(header => { one => 1, two => 2, three => 3 });
88 isa_ok($engine, 'Engine');
90 isa_ok($engine->header, 'HTTPHeader');
93 $engine->header->hash,
94 { one => 1, two => 2, three => 3 },
95 '... got the right hash value of the header');
96 ok(!defined($engine->header->array), '... no array value set');
100 my $engine = Engine->new(header => HTTPHeader->new());
101 isa_ok($engine, 'Engine');
103 isa_ok($engine->header, 'HTTPHeader');
105 ok(!defined($engine->header->hash), '... no hash value set');
106 ok(!defined($engine->header->array), '... no array value set');
110 Engine->new(header => 'Foo');
111 } '... dies correctly with bad params';
114 Engine->new(header => \(my $var));
115 } '... dies correctly with bad params';