File: 04tostr.t

package info (click to toggle)
libtypes-datetime-perl 0.002-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 176 kB
  • sloc: perl: 109; makefile: 2; sh: 1
file content (60 lines) | stat: -rw-r--r-- 1,147 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
=pod

=encoding utf-8

=head1 PURPOSE

Test that C<< Strftime[`a] >> and C<< ToISO8601 >> work.

=head1 AUTHOR

Toby Inkster E<lt>tobyink@cpan.orgE<gt>.

=head1 COPYRIGHT AND LICENCE

This software is copyright (c) 2014 by Toby Inkster.

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=cut

use Test::Modern -requires => { 'Types::Standard' => '0.041' };
use Types::Standard qw(  Str );
use Types::DateTime qw( -all );

my $dt = object_ok(
	sub { DateTimeUTC->coerce(1_000_000_000) },
	'$dt',
	isa  => 'DateTime',
	more => sub {
		my $dt = shift;
		is($dt->year, 2001);
		is($dt->month, 9);
		is($dt->day, 9);
	},
);

object_ok(
	sub { Str->plus_coercions(Strftime['%a %e %b %Y']) },
	'$type',
	isa  => 'Type::Tiny',
	can  => [qw/ check coerce /],
	more => sub {
		my $type = shift;
		is($type->coerce($dt), 'Sun  9 Sep 2001');
	},
);

object_ok(
	sub { Str->plus_coercions(ToISO8601) },
	'$type',
	isa  => 'Type::Tiny',
	can  => [qw/ check coerce /],
	more => sub {
		my $type = shift;
		is($type->coerce($dt), '2001-09-09T01:46:40');
	},
);

done_testing;