From 7756159372a95d02fef365999a10468f1e1725df Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Thu, 7 Jan 2016 15:26:15 +0000 Subject: [PATCH] Bug 15517: deleted* tables won't never differ anymore! These tests will ensure that the 4 deleted* tables won't never differ anymore. Test plan: 0/ Do not execute the update DB entry 1/ prove t/db_dependent/db_structure.t should fail 2/ Execute the update DB entry and update the schema with misc/devel/update_dbix_class_files.pl 3/ prove t/db_dependent/db_structure.t should now be happy --- t/db_dependent/db_structure.t | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 t/db_dependent/db_structure.t diff --git a/t/db_dependent/db_structure.t b/t/db_dependent/db_structure.t new file mode 100644 index 0000000..0288a98 --- /dev/null +++ b/t/db_dependent/db_structure.t @@ -0,0 +1,43 @@ +use Modern::Perl; + +use Test::More tests => 409; +use Koha::Database; + +my @modules = ( + [ qw( Borrower Deletedborrower ) ], + [ qw( Biblio Deletedbiblio ) ], + [ qw( Biblioitem Deletedbiblioitem ) ], + [ qw( Item Deleteditem ) ], +); + +my @keys_to_check = qw( size is_nullable data_type accessor datetime_undef_if_invalid default_value ); + +for my $modules ( @modules ) { + my $rs_1 = Koha::Database->new->schema->resultset($modules->[0]); + my $rs_2 = Koha::Database->new->schema->resultset($modules->[1]); + my $col_infos_1 = $rs_1->result_source->columns_info; + my $col_infos_2 = $rs_2->result_source->columns_info; + while ( my ( $column_name, $column_infos ) = each %$col_infos_1 ) { + while ( my ( $column_attribute, $value ) = each %$column_infos ) { + if ( grep {$_ eq $column_attribute} @keys_to_check ) { + my $val_1 = $col_infos_1->{$column_name}{$column_attribute}; + my $val_2 = $col_infos_2->{$column_name}{$column_attribute}; + # Dereference if we got a reference to a scalar + if ( ref($val_1) eq 'SCALAR' ) { + $val_1 = ${$val_1}; + $val_2 = ${$val_2}; + } + + if ( ref($val_1) eq 'ARRAY') { + is_deeply( $val_1, $val_2, + "tables related to $modules->[0] and $modules->[1] differs on $column_name.$column_attribute" + ); + } else { + is( $val_1, $val_2, + "tables related to $modules->[0] and $modules->[1] differs on $column_name.$column_attribute" + ); + } + } + } + } +} -- 2.1.0