Commits

Toby Inkster committed 7240916

moar tests

Comments (0)

Files changed (3)

+use strict;
+use warnings;
+use Test::More;
+
+use MooX::Struct;
+
+my $obj = MooX::Struct->new;
+is($obj->TYPE, undef);
+is_deeply([$obj->FIELDS], []);
+
+done_testing;
+use strict;
+use warnings;
+
+use Test::More (
+	$] < 5.010
+		? (skip_all => 'need Perl 5.10')
+		: ()
+);
+
+use 5.010;
+use Test::More;
+use MooX::Struct ();
+use IO::Handle;
+
+my $output;
+open my $handle, '>', \$output;
+my $proc = "MooX::Struct::Processor"->new(trace => 1, trace_handle => $handle);
+
+
+$proc->process(
+	__PACKAGE__,
+	Something => ['$foo', announce_foo => sub { say shift->foo } ],
+);
+my $obj = new_ok Something(), [[1]];
+
+is($output, <<"EXPECTED");
+package @{[ Something() ]};
+use Moo;
+has foo => ('isa' => sub { "DUMMY" },'is' => 'ro');
+sub announce_foo { ... }
+sub FIELDS { ... }
+sub TYPE { ... }
+EXPECTED
+
+$output = '';
+
+BEGIN {
+	package Local::Role;
+	use Moo::Role;
+	requires 'foo';
+};
+
+$proc->flags->{deparse} = 1;
+$proc->process(
+	__PACKAGE__,
+	SomethingElse => [
+		-class       => \'Something::Else',
+		-isa         => [Something()],
+		-with        => ['Local::Role'],
+		announce_foo => sub { my $self = shift; print $self->foo, "\n" },
+	],
+);
+
+$obj = new_ok SomethingElse(), [[1]];
+
+like($output, qr{package Something::Else});
+like($output, qr{with qw.Local::Role.});
+like($output, qr{print \$self->foo});
+
+done_testing;

t/97dataprinter.t

+use strict;
+use warnings;
+
+use if !eval{ require Data::Printer },
+	'Test::More', skip_all => 'need Data::Printer';
+
+use Test::More;
+
+use Data::Printer colored => 0;
+use MooX::Struct Something => [qw( $foo $bar )];
+
+my $obj = Something->new(foo => 1, bar => 2);
+my $str = p $obj;
+
+is($str, 'Something[ 1, 2 ]');
+
+done_testing;
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.