Fix instanciating an object from the database. Write core Crud properties to the db.
This commit is contained in:
parent
2e79a4b52f
commit
87f49191db
2 changed files with 32 additions and 27 deletions
48
t/Crud.t
48
t/Crud.t
|
|
@ -30,11 +30,9 @@ extends 'WebGUI::Crud';
|
|||
define tableName => 'some_crud_table';
|
||||
define tableKey => 'id';
|
||||
|
||||
property id => (
|
||||
has id => (
|
||||
required => 1,
|
||||
is => 'ro',
|
||||
label => 'id',
|
||||
fieldType => 'hidden',
|
||||
);
|
||||
|
||||
package main;
|
||||
|
|
@ -73,15 +71,15 @@ $sth->finish;
|
|||
my $record1 = WebGUI::Cruddy->new($session);
|
||||
can_ok($record1, 'id');
|
||||
isa_ok($record1, "WebGUI::Crud", "isa WebGUI::Crud");
|
||||
like($record1->get('dateCreated'), qr/\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}/, "dateCreated looks like a date");
|
||||
like($record1->get('lastUpdated'), qr/\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}/, "lastUpdated looks like a date");
|
||||
like($record1->get('sequenceNumber'), qr/\d+/, "sequenceNumber looks like a number");
|
||||
is($record1->get('sequenceNumber'), 1, "record 1 sequenceNumber is 1");
|
||||
like($record1->get('id'), qr/[A-Za-z0-9_-]{22}/, "id looks like a guid");
|
||||
like($record1->dateCreated, qr/\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}/, "dateCreated looks like a date");
|
||||
like($record1->lastUpdated, qr/\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}/, "lastUpdated looks like a date");
|
||||
like($record1->sequenceNumber, qr/\d+/, "sequenceNumber looks like a number");
|
||||
is($record1->sequenceNumber, 1, "record 1 sequenceNumber is 1");
|
||||
like($record1->id, qr/[A-Za-z0-9_-]{22}/, "id looks like a guid");
|
||||
|
||||
# custom id
|
||||
my $record2 = WebGUI::Cruddy->new($session, {id=>'theshawshankredemption'});
|
||||
is($record2->get('id'),'theshawshankredemption',"custom id works");
|
||||
is($record2->id,'theshawshankredemption',"custom id works");
|
||||
$record2->delete;
|
||||
|
||||
# instanciation
|
||||
|
|
@ -92,39 +90,39 @@ my $copyOfRecord2 = WebGUI::Cruddy->new($session, $record2->getId);
|
|||
is($record2->getId, $copyOfRecord2->getId, "can reinstanciate record");
|
||||
|
||||
# sequencing
|
||||
is($record2->get('sequenceNumber'), 2, "record 1 sequenceNumber is 2");
|
||||
my $record3 = WebGUI::Cruddy->create($session);
|
||||
is($record3->get('sequenceNumber'), 3, "record 1 sequenceNumber is 3");
|
||||
my $record4 = WebGUI::Cruddy->create($session);
|
||||
is($record4->get('sequenceNumber'), 4, "record 1 sequenceNumber is 4");
|
||||
is($record2->sequenceNumber, 2, "record 1 sequenceNumber is 2");
|
||||
my $record3 = WebGUI::Cruddy->new($session);
|
||||
is($record3->sequenceNumber, 3, "record 1 sequenceNumber is 3");
|
||||
my $record4 = WebGUI::Cruddy->new($session);
|
||||
is($record4->sequenceNumber, 4, "record 1 sequenceNumber is 4");
|
||||
ok($record4->demote, "demotion reports success");
|
||||
is($record4->get('sequenceNumber'), 4, "can't demote further than end");
|
||||
is($record4->sequenceNumber, 4, "can't demote further than end");
|
||||
ok($record1->promote, "promotion reports success");
|
||||
is($record1->get('sequenceNumber'), 1, "can't promote further than beginning");
|
||||
is($record1->sequenceNumber, 1, "can't promote further than beginning");
|
||||
$record4->promote;
|
||||
is($record4->get('sequenceNumber'), 3, "promotion from end works");
|
||||
is($record4->sequenceNumber, 3, "promotion from end works");
|
||||
$record4->demote;
|
||||
is($record4->get('sequenceNumber'), 4, "demotion to end works");
|
||||
is($record4->sequenceNumber, 4, "demotion to end works");
|
||||
$record1->demote;
|
||||
is($record1->get('sequenceNumber'), 2, "demotion from beginning works");
|
||||
is($record1->sequenceNumber, 2, "demotion from beginning works");
|
||||
$record1->promote;
|
||||
is($record1->get('sequenceNumber'), 1, "promotion to beginning works");
|
||||
is($record1->sequenceNumber, 1, "promotion to beginning works");
|
||||
$record2->demote;
|
||||
is($record2->get('sequenceNumber'), 3, "demotion from middle works");
|
||||
is($record2->sequenceNumber, 3, "demotion from middle works");
|
||||
$record2->promote;
|
||||
is($record2->get('sequenceNumber'), 2, "promotion from middle works");
|
||||
is($record2->sequenceNumber, 2, "promotion from middle works");
|
||||
|
||||
# deleting
|
||||
ok($record2->delete, "deletion reports success");
|
||||
my $copyOfRecord3 = WebGUI::Cruddy->new($session, $record3->getId);
|
||||
my $copyOfRecord4 = WebGUI::Cruddy->new($session, $record4->getId);
|
||||
is($copyOfRecord3->get('sequenceNumber'), '2', "deletion of record 2 moved record 3 to sequence 2");
|
||||
is($copyOfRecord4->get('sequenceNumber'), '3', "deletion of record 2 moved record 4 to sequence 3");
|
||||
is($copyOfRecord3->sequenceNumber, '2', "deletion of record 2 moved record 3 to sequence 2");
|
||||
is($copyOfRecord4->sequenceNumber, '3', "deletion of record 2 moved record 4 to sequence 3");
|
||||
|
||||
# updating
|
||||
sleep 1;
|
||||
ok($copyOfRecord4->update, "update returns success");
|
||||
isnt($copyOfRecord4->get('lastUpdated'), $copyOfRecord4->get('dateCreated'), "updates work");
|
||||
isnt($copyOfRecord4->lastUpdated, $copyOfRecord4->get('dateCreated'), "updates work");
|
||||
|
||||
# retrieve data
|
||||
my ($sql, $params) = WebGUI::Cruddy->getAllSql($session);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue