8 use DBIC::Test tests => 14;
11 my $schema = DBIC::Test->init_schema;
14 $row = $schema->resultset('Test')->create({ });
15 ok DBIC::Test::is_uuid( $row->id ), 'got something that looks like a UUID from Auto';
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';
22 is(DBIx::Class::UUIDColumns::UUIDMaker->as_string, undef);
25 skip 'Data::UUID not installed', 2 unless eval 'require Data::UUID';
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';
35 skip 'Data::GUID not installed', 1 unless eval 'require Data::GUID';
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';
44 skip 'APR::UUID not installed', 1 unless eval 'require APR::UUID and $^O ne \'openbsd\'';
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';
53 skip 'UUID not installed', 1 unless eval 'require UUID';
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';
62 skip 'Win32::Guidgen not installed', 1 unless eval 'require Win32::Guidgen';
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';
71 skip 'Win32API::GUID not installed', 1 unless eval 'require Win32API::GUID';
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';
80 skip 'Data::Uniqid not installed', 1 unless eval 'require Data::Uniqid';
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';
89 skip 'UUID::Random not installed', 1 unless eval 'require UUID::Random';
91 DBIC::Test::Schema::Test->uuid_class('::UUID::Random');
92 Class::C3->reinitialize();
93 $row = $schema->resultset('Test')->create({ });
94 ok $row->id, 'got something from UUID::Random';
98 DBIC::Test::Schema::Test->uuid_class('::JunkIDMaker');
100 if ($@ && $@ =~ /could not be loaded/i) {
103 fail('uuid_class dies when class can not be loaded');
107 DBIC::Test::Schema::Test->uuid_class('BadUUIDMaker');
109 if ($@ && $@ =~ /is not a UUIDMaker subclass/i) {
112 fail('uuid_class dies when class no isa DBIx::Class::UUIDColumns::UUIDMaker');