From 23ef95e5f2caa92f517c542ad0c6a3fb0e010342 Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Sat, 9 Jul 2016 15:56:32 +0100 Subject: [PATCH] Bug 16890: Make TestBuilder generate date for date columns (and not datetime) TestBuilder should not generate datetime for date columns, but only for datetime and timestamp columns. Test plan: Make sure the change in t/db_dependent/TestBuilder.t are consistent. Before this patch, 1 of the 2 tests should fail. After this patch applied, they both should pass. --- t/db_dependent/TestBuilder.t | 13 ++++++++++++- t/lib/TestBuilder.pm | 9 +++++++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/t/db_dependent/TestBuilder.t b/t/db_dependent/TestBuilder.t index 569b6b4..3046ad8 100644 --- a/t/db_dependent/TestBuilder.t +++ b/t/db_dependent/TestBuilder.t @@ -19,7 +19,7 @@ use Modern::Perl; -use Test::More tests => 9; +use Test::More tests => 10; use Test::Warn; use Data::Dumper qw(Dumper); @@ -321,6 +321,17 @@ subtest 'Auto-increment values tests' => sub { 'Build should not overwrite an auto_incr column'; }; +subtest 'Date handling' => sub { + plan tests => 2; + + $builder = t::lib::TestBuilder->new; + + my $patron = $builder->build( { source => 'Borrower' } ); + is( length( $patron->{updated_on} ), 19, 'A timestamp column value should be YYYY-MM-DD HH:MM:SS' ); + is( length( $patron->{dateofbirth} ), 10, 'A date column value should be YYYY-MM-DD' ); + +}; + $schema->storage->txn_rollback; 1; diff --git a/t/lib/TestBuilder.pm b/t/lib/TestBuilder.pm index ed28458..666cc87 100644 --- a/t/lib/TestBuilder.pm +++ b/t/lib/TestBuilder.pm @@ -325,8 +325,8 @@ sub _gen_type { decimal => \&_gen_real, double_precision => \&_gen_real, - timestamp => \&_gen_date, - datetime => \&_gen_date, + timestamp => \&_gen_datetime, + datetime => \&_gen_datetime, date => \&_gen_date, char => \&_gen_text, @@ -380,6 +380,11 @@ sub _gen_real { sub _gen_date { my ($self, $params) = @_; + return $self->schema->storage->datetime_parser->format_date(DateTime->now()) +} + +sub _gen_datetime { + my ($self, $params) = @_; return $self->schema->storage->datetime_parser->format_datetime(DateTime->now()); } -- 2.8.1