From 23ef95e5f2caa92f517c542ad0c6a3fb0e010342 Mon Sep 17 00:00:00 2001
From: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
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