Updated props
[dbsrgits/DBIx-Class-UUIDColumns.git] / t / uuid.t
CommitLineData
3469b243 1#!perl -wT
a19bdae0 2# $Id$
3469b243 3use strict;
4use warnings;
5
6BEGIN {
7 use lib 't/lib';
8 use DBIC::Test tests => 13;
9};
10
11my $schema = DBIC::Test->init_schema;
12my $row;
13
14$row = $schema->resultset('Test')->create({ });
15ok DBIC::Test::is_uuid( $row->id ), 'got something that looks like a UUID from Auto';
16
17DBIC::Test::Schema::Test->uuid_class('CustomUUIDMaker');
18Class::C3->reinitialize();
19$row = $schema->resultset('Test')->create({ });
20ok DBIC::Test::is_uuid( $row->id ), 'got something that looks like a UUID from CustomUUIDMaker';
21
22is(DBIx::Class::UUIDColumns::UUIDMaker->as_string, undef);
23
24SKIP: {
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
34SKIP: {
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
43SKIP: {
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
52SKIP: {
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
61SKIP: {
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
70SKIP: {
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
79SKIP: {
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
88eval {
89 DBIC::Test::Schema::Test->uuid_class('::JunkIDMaker');
90};
91if ($@ && $@ =~ /could not be loaded/i) {
92 pass;
93} else {
94 fail('uuid_class dies when class can not be loaded');
95};
96
97eval {
98 DBIC::Test::Schema::Test->uuid_class('BadUUIDMaker');
99};
100if ($@ && $@ =~ /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
1061;