renamed replication storage to replicated (since it's not really doing any replicatio...
[dbsrgits/DBIx-Class.git] / t / 60core.t
index 75b6ba7..456dc7b 100644 (file)
@@ -7,7 +7,10 @@ use DBICTest;
 
 my $schema = DBICTest->init_schema();
 
-plan tests => 74;
+plan tests => 78;
+
+eval { require DateTime::Format::MySQL };
+my $NO_DTFM = $@ ? 1 : 0;
 
 # figure out if we've got a version of sqlite that is older than 3.2.6, in
 # which case COUNT(DISTINCT()) doesn't work
@@ -166,6 +169,7 @@ $new = $schema->resultset("Track")->new( {
   cd => 1,
   position => 4,
   title => 'Insert or Update',
+  last_updated_on => '1973-07-19 12:01:02'
 } );
 $new->update_or_insert;
 ok($new->in_storage, 'update_or_insert insert ok');
@@ -176,12 +180,19 @@ $new->update_or_insert;
 is( $schema->resultset("Track")->find(100)->pos, 5, 'update_or_insert update ok');
 
 # get_inflated_columns w/relation and accessor alias
-my %tdata = $new->get_inflated_columns;
-is($tdata{'trackid'}, 100, 'got id');
-isa_ok($tdata{'cd'}, 'DBICTest::CD', 'cd is CD object');
-is($tdata{'cd'}->id, 1, 'cd object is id 1');
-is($tdata{'position'}, 5, 'got position from pos');
-is($tdata{'title'}, 'Insert or Update');
+SKIP: {
+    skip "This test requires DateTime::Format::MySQL", 8 if $NO_DTFM;
+
+    isa_ok($new->updated_date, 'DateTime', 'have inflated object via accessor');
+    my %tdata = $new->get_inflated_columns;
+    is($tdata{'trackid'}, 100, 'got id');
+    isa_ok($tdata{'cd'}, 'DBICTest::CD', 'cd is CD object');
+    is($tdata{'cd'}->id, 1, 'cd object is id 1');
+    is($tdata{'position'}, 5, 'got position from pos');
+    is($tdata{'title'}, 'Insert or Update');
+    is($tdata{'last_updated_on'}, '1973-07-19T12:01:02');
+    isa_ok($tdata{'last_updated_on'}, 'DateTime', 'inflated accessored column');
+}
 
 eval { $schema->class("Track")->load_components('DoesNotExist'); };
 
@@ -315,7 +326,8 @@ ok(!$@, "stringify to false value doesn't cause error");
 }
 
 # test get_inflated_columns with objects
-{
+SKIP: {
+    skip "This test requires DateTime::Format::MySQL", 5 if $NO_DTFM;
     my $event = $schema->resultset('Event')->search->first;
     my %edata = $event->get_inflated_columns;
     is($edata{'id'}, $event->id, 'got id');
@@ -325,3 +337,10 @@ ok(!$@, "stringify to false value doesn't cause error");
     is($edata{'created_on'}, $event->created_on, 'got created date');
 }
 
+# test resultsource->table return value when setting
+{
+    my $class = $schema->class('Event');
+    diag $class;
+    my $table = $class->table($class->table);
+    is($table, $class->table, '->table($table) returns $table');
+}