Commit | Line | Data |
0567538f |
1 | sub run_tests { |
2 | |
076a6864 |
3 | plan tests => 27; |
0567538f |
4 | |
5 | my @art = DBICTest::Artist->search({ }, { order_by => 'name DESC'}); |
6 | |
7 | cmp_ok(@art, '==', 3, "Three artists returned"); |
8 | |
9 | my $art = $art[0]; |
10 | |
11 | is($art->name, 'We Are Goth', "Correct order too"); |
12 | |
13 | $art->name('We Are In Rehab'); |
14 | |
15 | is($art->name, 'We Are In Rehab', "Accessor update ok"); |
16 | |
17 | is($art->get_column("name"), 'We Are In Rehab', 'And via get_column'); |
18 | |
19 | ok($art->update, 'Update run'); |
20 | |
21 | @art = DBICTest::Artist->search({ name => 'We Are In Rehab' }); |
22 | |
23 | cmp_ok(@art, '==', 1, "Changed artist returned by search"); |
24 | |
25 | cmp_ok($art[0]->artistid, '==', 3,'Correct artist too'); |
26 | |
27 | $art->delete; |
28 | |
29 | @art = DBICTest::Artist->search({ }); |
30 | |
31 | cmp_ok(@art, '==', 2, 'And then there were two'); |
32 | |
33 | ok(!$art->in_storage, "It knows it's dead"); |
34 | |
35 | eval { $art->delete; }; |
36 | |
37 | ok($@, "Can't delete twice: $@"); |
38 | |
39 | is($art->name, 'We Are In Rehab', 'But the object is still live'); |
40 | |
41 | $art->insert; |
42 | |
43 | ok($art->in_storage, "Re-created"); |
44 | |
45 | @art = DBICTest::Artist->search({ }); |
46 | |
47 | cmp_ok(@art, '==', 3, 'And now there are three again'); |
48 | |
49 | my $new = DBICTest::Artist->create({ artistid => 4 }); |
50 | |
51 | cmp_ok($new->artistid, '==', 4, 'Create produced record ok'); |
52 | |
53 | @art = DBICTest::Artist->search({ }); |
54 | |
55 | cmp_ok(@art, '==', 4, "Oh my god! There's four of them!"); |
56 | |
57 | $new->set_column('name' => 'Man With A Fork'); |
58 | |
59 | is($new->name, 'Man With A Fork', 'set_column ok'); |
60 | |
61 | $new->discard_changes; |
62 | |
63 | ok(!defined $new->name, 'Discard ok'); |
64 | |
65 | $new->name('Man With A Spoon'); |
66 | |
67 | $new->update; |
68 | |
69 | $new_again = DBICTest::Artist->find(4); |
70 | |
71 | is($new_again->name, 'Man With A Spoon', 'Retrieved correctly'); |
72 | |
1f6715ab |
73 | is($new_again->ID, 'DBICTest::Artist|artistid=4', 'unique object id generated correctly'); |
74 | |
0567538f |
75 | is(DBICTest::Artist->count, 4, 'count ok'); |
76 | |
076a6864 |
77 | my $cd = DBICTest::CD->find(1); |
78 | my %cols = $cd->get_columns; |
79 | |
80 | cmp_ok(keys %cols, '==', 4, 'get_columns number of columns ok'); |
81 | |
82 | is($cols{title}, 'Spoonful of bees', 'get_columns values ok'); |
83 | |
84 | %cols = ( title => 'Forkful of bees', year => 2005); |
85 | $cd->set_columns(\%cols); |
86 | |
87 | is($cd->title, 'Forkful of bees', 'set_columns ok'); |
88 | |
89 | is($cd->year, 2005, 'set_columns ok'); |
90 | |
91 | $cd->discard_changes; |
92 | |
0567538f |
93 | # insert_or_update |
94 | $new = DBICTest::Track->new( { |
95 | trackid => 100, |
96 | cd => 1, |
97 | position => 1, |
98 | title => 'Insert or Update', |
99 | } ); |
100 | $new->insert_or_update; |
101 | ok($new->in_storage, 'insert_or_update insert ok'); |
102 | |
103 | # test in update mode |
104 | $new->position(5); |
105 | $new->insert_or_update; |
106 | is( DBICTest::Track->find(100)->position, 5, 'insert_or_update update ok'); |
107 | |
108 | eval { DBICTest::Track->load_components('DoesNotExist'); }; |
109 | |
110 | ok $@, $@; |
111 | |
112 | } |
113 | |
114 | 1; |