Commit | Line | Data |
3469b243 |
1 | #!perl -wT |
a19bdae0 |
2 | # $Id$ |
3469b243 |
3 | use strict; |
4 | use warnings; |
5 | |
6 | BEGIN { |
7 | use lib 't/lib'; |
8 | use DBIC::Test tests => 13; |
9 | }; |
10 | |
11 | my $schema = DBIC::Test->init_schema; |
12 | my $row; |
13 | |
14 | $row = $schema->resultset('Test')->create({ }); |
15 | ok DBIC::Test::is_uuid( $row->id ), 'got something that looks like a UUID from Auto'; |
16 | |
17 | DBIC::Test::Schema::Test->uuid_class('CustomUUIDMaker'); |
18 | Class::C3->reinitialize(); |
19 | $row = $schema->resultset('Test')->create({ }); |
20 | ok DBIC::Test::is_uuid( $row->id ), 'got something that looks like a UUID from CustomUUIDMaker'; |
21 | |
22 | is(DBIx::Class::UUIDColumns::UUIDMaker->as_string, undef); |
23 | |
24 | SKIP: { |
25 | skip 'Data::UUID not installed', 2 unless eval 'require Data::UUID'; |
26 | |
27 | DBIC::Test::Schema::Test->uuid_class('::Data::UUID'); |
28 | Class::C3->reinitialize(); |
29 | is(DBIC::Test::Schema::Test->uuid_class, 'DBIx::Class::UUIDColumns::UUIDMaker::Data::UUID'); |
30 | $row = $schema->resultset('Test')->create({ }); |
31 | ok DBIC::Test::is_uuid( $row->id ), 'got something that looks like a UUID from Data::UUID'; |
32 | }; |
33 | |
34 | SKIP: { |
35 | skip 'Data::GUID not installed', 1 unless eval 'require Data::GUID'; |
36 | |
37 | DBIC::Test::Schema::Test->uuid_class('::Data::GUID'); |
38 | Class::C3->reinitialize(); |
39 | $row = $schema->resultset('Test')->create({ }); |
40 | ok DBIC::Test::is_uuid( $row->id ), 'got something that looks like a UUID from Data::GUID'; |
41 | }; |
42 | |
43 | SKIP: { |
44 | skip 'APR::UUID not installed', 1 unless eval 'require APR::UUID and $^O ne \'openbsd\''; |
45 | |
46 | DBIC::Test::Schema::Test->uuid_class('::APR::UUID'); |
47 | Class::C3->reinitialize(); |
48 | $row = $schema->resultset('Test')->create({ }); |
49 | ok DBIC::Test::is_uuid( $row->id ), 'got something that looks like a UUID from APR::UUID'; |
50 | }; |
51 | |
52 | SKIP: { |
53 | skip 'UUID not installed', 1 unless eval 'require UUID'; |
54 | |
55 | DBIC::Test::Schema::Test->uuid_class('::UUID'); |
56 | Class::C3->reinitialize(); |
57 | $row = $schema->resultset('Test')->create({ }); |
58 | ok DBIC::Test::is_uuid( $row->id ), 'got something that looks like a UUID from UUID'; |
59 | }; |
60 | |
61 | SKIP: { |
62 | skip 'Win32::Guidgen not installed', 1 unless eval 'require Win32::Guidgen'; |
63 | |
64 | DBIC::Test::Schema::Test->uuid_class('::Win32::Guidgen'); |
65 | Class::C3->reinitialize(); |
66 | $row = $schema->resultset('Test')->create({ }); |
67 | ok DBIC::Test::is_uuid( $row->id ), 'got something that looks like a UUID from Win32::Guidgen'; |
68 | }; |
69 | |
70 | SKIP: { |
71 | skip 'Win32API::GUID not installed', 1 unless eval 'require Win32API::GUID'; |
72 | |
73 | DBIC::Test::Schema::Test->uuid_class('::Win32API::GUID'); |
74 | Class::C3->reinitialize(); |
75 | $row = $schema->resultset('Test')->create({ }); |
76 | ok DBIC::Test::is_uuid( $row->id ), 'got something that looks like a UUID from Win32API::GUID'; |
77 | }; |
78 | |
79 | SKIP: { |
80 | skip 'Data::Uniqid not installed', 1 unless eval 'require Data::Uniqid'; |
81 | |
82 | DBIC::Test::Schema::Test->uuid_class('::Data::Uniqid'); |
83 | Class::C3->reinitialize(); |
84 | $row = $schema->resultset('Test')->create({ }); |
85 | ok $row->id, 'got something from Data::Uniqid'; |
86 | }; |
87 | |
88 | eval { |
89 | DBIC::Test::Schema::Test->uuid_class('::JunkIDMaker'); |
90 | }; |
91 | if ($@ && $@ =~ /could not be loaded/i) { |
92 | pass; |
93 | } else { |
94 | fail('uuid_class dies when class can not be loaded'); |
95 | }; |
96 | |
97 | eval { |
98 | DBIC::Test::Schema::Test->uuid_class('BadUUIDMaker'); |
99 | }; |
100 | if ($@ && $@ =~ /is not a UUIDMaker subclass/i) { |
101 | pass; |
102 | } else { |
103 | fail('uuid_class dies when class no isa DBIx::Class::UUIDColumns::UUIDMaker'); |
104 | }; |
105 | |
106 | 1; |