CRLF to LF
gfx [Wed, 30 Sep 2009 10:59:41 +0000 (19:59 +0900)]
t/040_type_constraints/009_union_types_and_coercions.t

index 588c1a7..ca8fcab 100755 (executable)
-#!/usr/bin/perl\r
-\r
-use strict;\r
-use warnings;\r
-\r
-use Test::More;\r
-use Test::Exception;\r
-\r
-BEGIN {\r
-    eval "use IO::String; use IO::File;";\r
-    plan skip_all => "IO::String and IO::File are required for this test" if $@;\r
-    plan tests => 28;\r
-}\r
-\r
-\r
-\r
-{\r
-    package Email::Mouse;\r
-    use Mouse;\r
-    use Mouse::Util::TypeConstraints;\r
-\r
-    use IO::String;\r
-\r
-    our $VERSION = '0.01';\r
-\r
-    # create subtype for IO::String\r
-\r
-    subtype 'IO::String'\r
-        => as 'Object'\r
-        => where { $_->isa('IO::String') };\r
-\r
-    coerce 'IO::String'\r
-        => from 'Str'\r
-            => via { IO::String->new($_) },\r
-        => from 'ScalarRef',\r
-            => via { IO::String->new($_) };\r
-\r
-    # create subtype for IO::File\r
-\r
-    subtype 'IO::File'\r
-        => as 'Object'\r
-        => where { $_->isa('IO::File') };\r
-\r
-    coerce 'IO::File'\r
-        => from 'FileHandle'\r
-            => via { bless $_, 'IO::File' };\r
-\r
-    # create the alias\r
-\r
-    my $st = subtype 'IO::StringOrFile' => as 'IO::String | IO::File';\r
-\r
-    # attributes\r
-\r
-    has 'raw_body' => (\r
-        is      => 'rw',\r
-        isa     => 'IO::StringOrFile',\r
-        coerce  => 1,\r
-        default => sub { IO::String->new() },\r
-    );\r
-\r
-    sub as_string {\r
-        my ($self) = @_;\r
-        my $fh = $self->raw_body();\r
-\r
-        return do { local $/; <$fh> };\r
-    }\r
-}\r
-\r
-{\r
-    my $email = Email::Mouse->new;\r
-    isa_ok($email, 'Email::Mouse');\r
-\r
-    isa_ok($email->raw_body, 'IO::String');\r
-\r
-    is($email->as_string, undef, '... got correct empty string');\r
-}\r
-\r
-{\r
-    my $email = Email::Mouse->new(raw_body => '... this is my body ...');\r
-    isa_ok($email, 'Email::Mouse');\r
-\r
-    isa_ok($email->raw_body, 'IO::String');\r
-\r
-    is($email->as_string, '... this is my body ...', '... got correct string');\r
-\r
-    lives_ok {\r
-        $email->raw_body('... this is the next body ...');\r
-    } '... this will coerce correctly';\r
-\r
-    isa_ok($email->raw_body, 'IO::String');\r
-\r
-    is($email->as_string, '... this is the next body ...', '... got correct string');\r
-}\r
-\r
-{\r
-    my $str = '... this is my body (ref) ...';\r
-\r
-    my $email = Email::Mouse->new(raw_body => \$str);\r
-    isa_ok($email, 'Email::Mouse');\r
-\r
-    isa_ok($email->raw_body, 'IO::String');\r
-\r
-    is($email->as_string, $str, '... got correct string');\r
-\r
-    my $str2 = '... this is the next body (ref) ...';\r
-\r
-    lives_ok {\r
-        $email->raw_body(\$str2);\r
-    } '... this will coerce correctly';\r
-\r
-    isa_ok($email->raw_body, 'IO::String');\r
-\r
-    is($email->as_string, $str2, '... got correct string');\r
-}\r
-\r
-{\r
-    my $io_str = IO::String->new('... this is my body (IO::String) ...');\r
-\r
-    my $email = Email::Mouse->new(raw_body => $io_str);\r
-    isa_ok($email, 'Email::Mouse');\r
-\r
-    isa_ok($email->raw_body, 'IO::String');\r
-    is($email->raw_body, $io_str, '... and it is the one we expected');\r
-\r
-    is($email->as_string, '... this is my body (IO::String) ...', '... got correct string');\r
-\r
-    my $io_str2 = IO::String->new('... this is the next body (IO::String) ...');\r
-\r
-    lives_ok {\r
-        $email->raw_body($io_str2);\r
-    } '... this will coerce correctly';\r
-\r
-    isa_ok($email->raw_body, 'IO::String');\r
-    is($email->raw_body, $io_str2, '... and it is the one we expected');\r
-\r
-    is($email->as_string, '... this is the next body (IO::String) ...', '... got correct string');\r
-}\r
-\r
-{\r
-    my $fh;\r
-\r
-    open($fh, '<', $0) || die "Could not open $0";\r
-\r
-    my $email = Email::Mouse->new(raw_body => $fh);\r
-    isa_ok($email, 'Email::Mouse');\r
-\r
-    isa_ok($email->raw_body, 'IO::File');\r
-\r
-    close($fh);\r
-}\r
-\r
-{\r
-    my $fh = IO::File->new($0);\r
-\r
-    my $email = Email::Mouse->new(raw_body => $fh);\r
-    isa_ok($email, 'Email::Mouse');\r
-\r
-    isa_ok($email->raw_body, 'IO::File');\r
-    is($email->raw_body, $fh, '... and it is the one we expected');\r
-}\r
-\r
-\r
-\r
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+use Test::More;
+use Test::Exception;
+
+BEGIN {
+    eval "use IO::String; use IO::File;";
+    plan skip_all => "IO::String and IO::File are required for this test" if $@;
+    plan tests => 28;
+}
+
+
+
+{
+    package Email::Mouse;
+    use Mouse;
+    use Mouse::Util::TypeConstraints;
+
+    use IO::String;
+
+    our $VERSION = '0.01';
+
+    # create subtype for IO::String
+
+    subtype 'IO::String'
+        => as 'Object'
+        => where { $_->isa('IO::String') };
+
+    coerce 'IO::String'
+        => from 'Str'
+            => via { IO::String->new($_) },
+        => from 'ScalarRef',
+            => via { IO::String->new($_) };
+
+    # create subtype for IO::File
+
+    subtype 'IO::File'
+        => as 'Object'
+        => where { $_->isa('IO::File') };
+
+    coerce 'IO::File'
+        => from 'FileHandle'
+            => via { bless $_, 'IO::File' };
+
+    # create the alias
+
+    my $st = subtype 'IO::StringOrFile' => as 'IO::String | IO::File';
+    #::diag $st->dump;
+
+    # attributes
+
+    has 'raw_body' => (
+        is      => 'rw',
+        isa     => 'IO::StringOrFile',
+        coerce  => 1,
+        default => sub { IO::String->new() },
+    );
+
+    sub as_string {
+        my ($self) = @_;
+        my $fh = $self->raw_body();
+
+        return do { local $/; <$fh> };
+    }
+}
+
+{
+    my $email = Email::Mouse->new;
+    isa_ok($email, 'Email::Mouse');
+
+    isa_ok($email->raw_body, 'IO::String');
+
+    is($email->as_string, undef, '... got correct empty string');
+}
+
+{
+    my $email = Email::Mouse->new(raw_body => '... this is my body ...');
+    isa_ok($email, 'Email::Mouse');
+
+    isa_ok($email->raw_body, 'IO::String');
+
+    is($email->as_string, '... this is my body ...', '... got correct string');
+
+    lives_ok {
+        $email->raw_body('... this is the next body ...');
+    } '... this will coerce correctly';
+
+    isa_ok($email->raw_body, 'IO::String');
+
+    is($email->as_string, '... this is the next body ...', '... got correct string');
+}
+
+{
+    my $str = '... this is my body (ref) ...';
+
+    my $email = Email::Mouse->new(raw_body => \$str);
+    isa_ok($email, 'Email::Mouse');
+
+    isa_ok($email->raw_body, 'IO::String');
+
+    is($email->as_string, $str, '... got correct string');
+
+    my $str2 = '... this is the next body (ref) ...';
+
+    lives_ok {
+        $email->raw_body(\$str2);
+    } '... this will coerce correctly';
+
+    isa_ok($email->raw_body, 'IO::String');
+
+    is($email->as_string, $str2, '... got correct string');
+}
+
+{
+    my $io_str = IO::String->new('... this is my body (IO::String) ...');
+
+    my $email = Email::Mouse->new(raw_body => $io_str);
+    isa_ok($email, 'Email::Mouse');
+
+    isa_ok($email->raw_body, 'IO::String');
+    is($email->raw_body, $io_str, '... and it is the one we expected');
+
+    is($email->as_string, '... this is my body (IO::String) ...', '... got correct string');
+
+    my $io_str2 = IO::String->new('... this is the next body (IO::String) ...');
+
+    lives_ok {
+        $email->raw_body($io_str2);
+    } '... this will coerce correctly';
+
+    isa_ok($email->raw_body, 'IO::String');
+    is($email->raw_body, $io_str2, '... and it is the one we expected');
+
+    is($email->as_string, '... this is the next body (IO::String) ...', '... got correct string');
+}
+
+{
+    my $fh;
+
+    open($fh, '<', $0) || die "Could not open $0";
+
+    my $email = Email::Mouse->new(raw_body => $fh);
+    isa_ok($email, 'Email::Mouse');
+
+    isa_ok($email->raw_body, 'IO::File');
+
+    close($fh);
+}
+
+{
+    my $fh = IO::File->new($0);
+
+    my $email = Email::Mouse->new(raw_body => $fh);
+    isa_ok($email, 'Email::Mouse');
+
+    isa_ok($email->raw_body, 'IO::File');
+    is($email->raw_body, $fh, '... and it is the one we expected');
+}
+
+
+