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 )