Bug 16890: Make TestBuilder generate date for date columns (and not datetime)
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Sat, 9 Jul 2016 14:56:32 +0000 (15:56 +0100)
committerKyle M Hall <kyle@bywatersolutions.com>
Fri, 15 Jul 2016 14:59:46 +0000 (14:59 +0000)
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.

Signed-off-by: Srdjan <srdjan@catalyst.net.nz>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
t/db_dependent/TestBuilder.t
t/lib/TestBuilder.pm

index 569b6b4..3046ad8 100644 (file)
@@ -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;
index ed28458..666cc87 100644 (file)
@@ -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());
 }