File Coverage

blib/lib/JSV/Keyword/Draft4/Not.pm
Criterion Covered Total %
statement 23 23 100.0
branch 4 4 100.0
condition n/a
subroutine 5 5 100.0
pod 0 1 0.0
total 32 33 96.9


line stmt bran cond sub pod time code
1             package JSV::Keyword::Draft4::Not;
2              
3 44     44   30321 use strict;
  44         84  
  44         1117  
4 44     44   196 use warnings;
  44         81  
  44         1067  
5 44     44   196 use parent qw(JSV::Keyword);
  44         74  
  44         229  
6              
7 44     44   2193 use JSV::Keyword qw(:constants);
  44         72  
  44         12055  
8              
9             sub instance_type() { INSTANCE_TYPE_ANY(); }
10             sub keyword() { "not" }
11             sub keyword_priority() { 10; }
12              
13             sub validate {
14 6     6 0 12 my ($class, $context, $schema, $instance) = @_;
15              
16 6         39 my $not_schema = $class->keyword_value($schema);
17 6         11 my $is_valid = 0;
18              
19             {
20 6         6 local $context->{current_schema_pointer} = $context->{current_schema_pointer} . "/" . $class->keyword;
  6         24  
21 6         12 local $context->{errors} = [];
22 6         14 $context->validate($not_schema, $instance);
23 6 100       7 $is_valid = 1 if scalar @{ $context->{errors} } == 0;
  6         25  
24             }
25              
26 6 100       20 if ($is_valid) {
27 3         9 $context->log_error("The instance is matched to schema of not keyword value");
28             }
29             }
30              
31             1;