REST-Neo4p

 view release on metacpan or  search on metacpan

t/021_validation.t  view on Meta::CPAN

  'c1',
  {
    name => '',
    rank => [],
    serial_number => qr/^[0-9]+$/,
    army_of => 'one',
    options => [qr/[abc]/]
   }
 );

my @propset;
# 1
# valid for all, only
# invalid for none
push @propset, 
  [
    {
      name => 'Jones',
      rank => 'Corporal',
      serial_number => '147800934',
      army_of => 'one'
     },[1, 1, 0]
    ];
# 2
# valid for all, only
# invalid for none
push @propset, [
  {
    name => 'Jones',
    serial_number => '147800934',
    army_of => 'one'
   }, [1,1,0] 
];

# 3
# valid for all
# invalid for only, none
push @propset, [
  {
    name => 'Jones',
    serial_number => '147800934',
    army_of => 'one',
    extra => 'value'
   }, [1,0,0]
];

# 4
# invalid for all, only
# invalid for none
push @propset, [
  {
    name => 'Jones',
    rank => 'Corporal',
    serial_number => 'THX1138',
    army_of => 'one'
   }, [0,0,0]
];

# 5
# invalid for all, only
# valid for none
push @propset, [
  {
    different => 'altogether'
  }, [0,0,1]
];

# 6
# valid for all, only
# invalid for none
push @propset, [
   {
     name => 'Jones',
     rank => 'Corporal',
     serial_number => '147800934',
     army_of => 'one',
     options => 'a'
    }, [1,1,0]
];

# 7
# invalid for all, only, none
push @propset, [
  {
    name => 'Jones',
    rank => 'Corporal',
    serial_number => '147800934',
    options => 'e'
   }, [0,0,0]
];

my $ctr=0;
foreach (@propset) {
  my $propset = $_->[0];
  my $expected = $_->[1];
  $ctr++;
  $c1->set_condition('all');
  is $c1->validate($propset), $expected->[0], "propset $ctr : all";
  $c1->set_condition('only');
  is $c1->validate($propset), $expected->[1], "propset $ctr : only";
  $c1->set_condition('none');
  is $c1->validate($propset), $expected->[2], "propset $ctr : none";
}

# test validation : relationship constraints

REST::Neo4p::Constraint::NodeProperty->new
(
 'module',
 {
  _condition => 'all',
  entity => 'module',

t/021_validation.t  view on Meta::CPAN

ok !REST::Neo4p::Constraint::validate_relationship($bizzity_bomb => $module, 'contains'), 'unallowed relationship returns false';

ok $c = REST::Neo4p::Constraint::validate_relationship_type('has');
isa_ok($c, 'REST::Neo4p::Constraint::RelationshipType');
is $c->tag, 'allowed_reln_types', 'correct constraint tag';
ok !REST::Neo4p::Constraint::validate_relationship_type('freb'), 'unallowed rtype returns false';

SKIP : {
  skip 'no local connection to neo4j, live tests not performed', $num_live_tests if $not_connected;
  my @nodeset;
  foreach (@propset) {
      push @cleanup, my $n = REST::Neo4p::Node->new($_->[0]);
      push @nodeset, [$n,$_->[1]];
  }
  my $ctr=0;
  foreach (@nodeset) {
      my $nodeset = $_->[0];
      my $expected = $_->[1];
      $ctr++;
      $c1->set_condition('all');
      is $c1->validate($nodeset), $expected->[0], "nodeset $ctr : all";



( run in 1.352 second using v1.01-cache-2.11-cpan-71847e10f99 )