package Test2::Compare::JSON;
use strict;
use warnings;
use base 'Test2::Compare::Base';
use Carp qw/croak/;
use Test2::Util::HashBase qw/inref json/;
sub init {
my $self = shift;
croak "
f' must be a reference" unless ref $self->{+INREF};
$self->SUPER::init();
}
sub operator { 'JSON' }
sub name { '' . $_[0]->{+INREF} }
sub verify {
my $self = shift;
my %params = @_;
t, $exists) = @params{qw/got exists/};
return 0 unless $exists;
eval {
$self->{+JSON}->decode($got);
};
return $@ ? 0 : 1;
}
sub deltas {
my $self = shift;
my %para
ls::JSON;
use strict;
use warnings;
our $VERSION = "0.06";
use Carp ();
use JSON::MaybeXS qw/JSON/;
use Test2::Compare::JSON();
%Carp::Internal = (
%Carp::Internal,
'Test2::Tools::JSON'
> 1,
'Test2::Compare::JSON' => 1,
);
our @EXPORT = qw/json relaxed_json/;
use Exporter 'import';
sub json ($) {
my @caller = caller;
return Test2::Compare::JSON->new(
file => $c
aller[2]],
inref => $_[0],
json => JSON->new->utf8,
);
}
sub relaxed_json ($) {
my @caller = caller;
return Test2::Compare::JSON->new(
file => $caller[1],