master_data
load_csv
table
expect_row
relation
like_number
if_column
json
/;
our $DEFAULT_IDENTIFIER_KEY = "id";
use Test::MasterData::Declare::Runner;
use Test::MasterD
::Compare::RowHash", @_)
}
sub row_json {
my ($column, @keys) = @_;
my $check = pop @keys;
my $build = Test2::Compare::get_build();
croak "row_json must be with-in Test::MasterData::
Hash"
unless $build->isa("Test::MasterData::Declare::Compare::RowHash");
$build->add_json_field($column, @keys, $check);
}
sub table {
my ($table_name, $column, @filters_or_expects)
strict;
use warnings;
use utf8;
use parent "Test2::Compare::Hash";
use Test2::Util::HashBase qw/json_checks/;
use Carp qw/croak/;
use Scalar::Util qw/blessed/;
sub object_base { "Test::MasterData:
;
}
sub add_json_field {
my $self = shift;
my ($name, @path) = @_;
my $check = pop @path;
croak "column name is required"
unless defined $name;
$self->{+JSON_CHECKS} ||=
[];
push @{$self->{+JSON_CHECKS}} => [$name, \@path, $check];
}
sub _wrap_check {
my ($class, $got, $check) = @_;
my $ccheck = $check->clone;
$ccheck->set_file($got->file);
$cch
e Test2::Compare::Number qw/number/;
use Test2::Compare::String;
use Carp qw/croak/;
use JSON;
my $json = JSON->new->utf8;
sub row {
my $self = shift;
my $cached_compare_row = $self->_cache
>{$self->identifier_key},
);
}
sub json {
my ($self, $column, @keys) = @_;
my $json_data = $self->row->{$column};
my $data = $json->decode($json_data);
my $out = $data;
for m
strict;
use warnings;
use utf8;
use parent "Test2::Compare::Hash";
use Test2::Util::HashBase qw/json_checks/;
use Carp qw/croak/;
use Scalar::Util qw/blessed/;
sub object_base { "Test::MasterData:
;
}
sub add_json_field {
my $self = shift;
my ($name, @path) = @_;
my $check = pop @path;
croak "column name is required"
unless defined $name;
$self->{+JSON_CHECKS} ||=
[];
push @{$self->{+JSON_CHECKS}} => [$name, \@path, $check];
}
sub _wrap_check {
my ($class, $got, $check) = @_;
my $ccheck = $check->clone;
$ccheck->set_file($got->file);
$cch