1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
|
#!/usr/bin/perl -w
# For bug: https://rt.cpan.org/NoAuth/Bug.html?id=2637
use lib "t";
use TestNeeds qw(Test::More Set::Object);
require "t/Capture.pm";
use strict;
use Test::More tests => 4;
use Tangram qw(:compat_quiet);
use Tangram::Relational;
use Tangram::Schema;
use Tangram::Scalar;
use Tangram::Ref;
use Tangram::IntrArray;
my @tests =
( "iarray (Control)" =>
[
NaturalPerson =>
{
fields => {
string => [ qw( firstName name ) ],
int => [ qw( age ) ],
ref => { partner => { null => 1 } },
iarray => { children => 'NaturalPerson' },
},
},
],
"iarray (w/Package seperator)" =>
[
'Natural::Person' =>
{
fields => {
string => [ qw( firstName name ) ],
int => [ qw( age ) ],
ref => { partner => { null => 1 } },
iarray => { children => 'Natural::Person' },
},
},
],
"iarray (w/Package seperator, long form)" =>
[
'UnNatural::Person' =>
{
fields => {
string => [ qw( firstName name ) ],
int => [ qw( age ) ],
ref => { partner => { null => 1 } },
iarray => { children => {
class => 'UnNatural::Person',
}
},
},
},
],
"iarray (w/Package seperator, long form + coll/slot)" =>
[
'Natural::Bloke' =>
{
fields => {
string => [ qw( firstName name ) ],
int => [ qw( age ) ],
ref => { partner => { null => 1 } },
iarray => { children => {
class => 'Natural::Bloke',
coll => "foo",
slot => "bar",
}
},
},
},
],
);
while (my ($test_name, $test_classes) = splice @tests, 0, 2) {
my $schema = Tangram::Schema->new
(
classes => $test_classes,
normalize => sub {
my ($name, $type) = @_;
$name =~ s/\:\:/_/g;
return $name;
},
);
my $output = new Capture();
$output->capture_print();
Tangram::Relational->deploy($schema);
my $result = $output->release_stdout();
$result =~ s{INSERT INTO Tangram.*}{};
unlike ($result, qr/::/, "Normalise applied - $test_name");
}
|