|
Lines 1-9
Link Here
|
| 1 |
package t::lib::TestBuilder; |
1 |
package t::lib::TestBuilder; |
| 2 |
|
2 |
|
| 3 |
use Modern::Perl; |
3 |
use Modern::Perl; |
|
|
4 |
|
| 4 |
use Koha::Database; |
5 |
use Koha::Database; |
| 5 |
use String::Random; |
6 |
use String::Random; |
| 6 |
|
7 |
use List::MoreUtils qw(any); |
| 7 |
|
8 |
|
| 8 |
my $gen_type = { |
9 |
my $gen_type = { |
| 9 |
tinyint => \&_gen_int, |
10 |
tinyint => \&_gen_int, |
|
Lines 34-39
my $gen_type = {
Link Here
|
| 34 |
mediumblob => \&_gen_blob, |
35 |
mediumblob => \&_gen_blob, |
| 35 |
blob => \&_gen_blob, |
36 |
blob => \&_gen_blob, |
| 36 |
longblob => \&_gen_blob, |
37 |
longblob => \&_gen_blob, |
|
|
38 |
|
| 37 |
}; |
39 |
}; |
| 38 |
|
40 |
|
| 39 |
our $default_value = { |
41 |
our $default_value = { |
|
Lines 238-254
sub _buildColumnValue {
Link Here
|
| 238 |
$col_value = $default_value->{$source}->{$col_name}; |
240 |
$col_value = $default_value->{$source}->{$col_name}; |
| 239 |
} |
241 |
} |
| 240 |
elsif( not $col_info->{default_value} and not $col_info->{is_auto_increment} and not $col_info->{is_foreign_key} ) { |
242 |
elsif( not $col_info->{default_value} and not $col_info->{is_auto_increment} and not $col_info->{is_foreign_key} ) { |
| 241 |
eval { |
243 |
|
| 242 |
my $data_type = $col_info->{data_type}; |
244 |
my $data_type = $col_info->{data_type}; |
| 243 |
$data_type =~ s| |_|; |
245 |
$data_type =~ s| |_|; |
| 244 |
$col_value = $gen_type->{$data_type}->( $self, { info => $col_info } ); |
246 |
|
| 245 |
}; |
247 |
if ( any { $data_type eq $_ } (keys $gen_type) ) { |
| 246 |
die "The type $col_info->{data_type} is not defined\n" if ($@); |
248 |
my $value_ok = 'no'; |
|
|
249 |
while ( $value_ok eq 'no' ) { |
| 250 |
# generate value |
| 251 |
$col_value = $gen_type->{$data_type}->( $self, { info => $col_info } ); |
| 252 |
# should value be unique? |
| 253 |
my $primary_names = $self->schema->source($source)->primary_columns(); |
| 254 |
if ( not ( any { $col_name eq $_ } $primary_names and |
| 255 |
$self->schema |
| 256 |
->resultset($source) |
| 257 |
->search({ $col_name => $col_value }) |
| 258 |
->count > 0 ) ) { |
| 259 |
|
| 260 |
$value_ok = 'yes'; |
| 261 |
} |
| 262 |
} |
| 263 |
} else { |
| 264 |
die "The type $col_info->{data_type} is not defined\n"; |
| 265 |
} |
| 247 |
} |
266 |
} |
| 248 |
return $col_value; |
267 |
return $col_value; |
| 249 |
} |
268 |
} |
| 250 |
|
269 |
|
| 251 |
|
|
|
| 252 |
sub _gen_int { |
270 |
sub _gen_int { |
| 253 |
my ($self, $params) = @_; |
271 |
my ($self, $params) = @_; |
| 254 |
my $data_type = $params->{info}->{data_type}; |
272 |
my $data_type = $params->{info}->{data_type}; |
| 255 |
- |
|
|