X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Finflate%2Fdatetime_pg.t;h=0751561e95904bed934538fc1634d261162be9f7;hb=906c03556a6c5584b3f2f18eb7501cc4c48704a1;hp=054edf1f672670302b4d98df7e0b3c4d6cb0834c;hpb=40f751811e773082d1cc654f15f06ef65749a9e9;p=dbsrgits%2FDBIx-Class.git diff --git a/t/inflate/datetime_pg.t b/t/inflate/datetime_pg.t index 054edf1..0751561 100644 --- a/t/inflate/datetime_pg.t +++ b/t/inflate/datetime_pg.t @@ -2,24 +2,22 @@ use strict; use warnings; use Test::More; +use Test::Warn; +use DBIx::Class::Optional::Dependencies (); use lib qw(t/lib); use DBICTest; +plan skip_all => 'Test needs ' . DBIx::Class::Optional::Dependencies->req_missing_for ('test_dt_pg') + unless DBIx::Class::Optional::Dependencies->req_ok_for ('test_dt_pg'); + { local $SIG{__WARN__} = sub { warn @_ if $_[0] !~ /extra \=\> .+? has been deprecated/ }; DBICTest::Schema->load_classes('EventTZPg'); } -eval { require DateTime::Format::Pg }; -plan $@ - ? ( skip_all => 'Need DateTime::Format::Pg for timestamp inflation tests') - : ( tests => 3 ) -; - - my $schema = DBICTest->init_schema(); -{ +warnings_are { my $event = $schema->resultset("EventTZPg")->find(1); $event->update({created_on => '2009-01-15 17:00:00+00'}); $event->discard_changes; @@ -27,4 +25,16 @@ my $schema = DBICTest->init_schema(); is($event->created_on->time_zone->name, "America/Chicago", "Timezone changed"); # Time zone difference -> -6hours is($event->created_on->iso8601, "2009-01-15T11:00:00", "Time with TZ correct"); -} + +# test 'timestamp without time zone' + my $dt = DateTime->from_epoch(epoch => time); + $dt->set_nanosecond(int 500_000_000); + $event->update({ts_without_tz => $dt}); + $event->discard_changes; + isa_ok($event->ts_without_tz, "DateTime") or diag $event->created_on; + is($event->ts_without_tz, $dt, 'timestamp without time zone inflation'); + is($event->ts_without_tz->microsecond, $dt->microsecond, + 'timestamp without time zone microseconds survived'); +} [], 'No warnings during DT manipulations'; + +done_testing;