- New ::Storage::DBI method last_dbh() - it will still return a
newly connected $dbh if we start unconnected, but will not ping
the server on every invocation unlike dbh()
+ - Some fixes of multi-create corner cases
- Multiple POD improvements
0.08108 2009-07-05 23:15:00 (UTC)
use lib qw(t/lib);
use DBICTest;
-plan 'no_plan';
-
my $schema = DBICTest->init_schema();
+# For fully intuitive multicreate any relationships in a chain
+# that do not exist for one reason or another should be created,
+# even if the preceeding relationship already exists.
+#
+# To get this to work a minor rewrite of find() is necessary, and
+# more importantly some sort of recursive_insert() call needs to
+# be available. The way things will work then is:
+# *) while traversing the hierarchy code calls find_or_create()
+# *) this in turn calls find(%\nested_dataset)
+# *) this should return not only the existing object, but must
+# also attach all non-existing (in fact maybe existing) related
+# bits of data to it, with in_storage => 0
+# *) then before returning the result of the succesful find(), we
+# simply call $obj->recursive_insert and all is dandy
+#
+# Since this will not be a very clean solution, todoifying for the
+# time being until an actual need arises
+#
+# ribasushi
+
+TODO: { my $f = __FILE__; local $TODO = "See comment at top of $f for discussion of the TODO";
+
{
my $counts;
$counts->{$_} = $schema->resultset($_)->count for qw/Track CD Genre/;
is ($schema->resultset('Genre')->count, $counts->{Genre} + 1, '1 new genre');
is ($existing_nogen_cd->genre->title, 'sugar genre', 'Correct genre assigned to CD');
- });
+ }, 'create() did not throw');
}
-
{
my $counts;
$counts->{$_} = $schema->resultset($_)->count for qw/Artist CD Producer/;
[ qw/queen1 queen2/ ],
'Correct cd names',
);
- });
+ }, 'create() did not throw');
+}
+
}
-1;
+done_testing;