source: trunk/LATMOS-Accounts/t/10_bases.t @ 2393

Last change on this file since 2393 was 2234, checked in by nanardon, 5 years ago

Allow to use functions in queryformat

File size: 1.8 KB
Line 
1use strict;
2use warnings;
3use Test::More tests => 25;
4
5use_ok('LATMOS::Accounts::Bases');
6use_ok('LATMOS::Accounts::Bases::Objects');
7use_ok('LATMOS::Accounts::Bases::Dummy');
8use_ok('LATMOS::Accounts::Bases::Dummy::User');
9
10ok(my $dummyb = LATMOS::Accounts::Bases->new('dummy'), "Can get dummy base");
11isa_ok($dummyb, 'LATMOS::Accounts::Bases');
12isa_ok($dummyb, 'LATMOS::Accounts::Bases::Dummy');
13
14ok(my $user = $dummyb->get_object('user', 'foo'), "Can get user object");
15isa_ok($user, 'LATMOS::Accounts::Bases::Objects');
16isa_ok($user, 'LATMOS::Accounts::Bases::Dummy::User');
17
18ok(eq_set(
19    [ $dummyb->list_canonical_fields('user') ],
20    [qw( username homeDirectory shell gecos uidNumber gidNumber ) ],
21), "Can get canonicals fields");
22is( $dummyb->attribute('user', 'homeDirectory')->iname, "home", "can call get_fields_name");
23ok(!$dummyb->is_transactionnal, 'Dummy driver is not transactionnal');
24
25ok($dummyb->create_c_object(
26    'user', 'toto',
27    homeDirectory => '/home/toto',
28    ), "Can create object");
29ok(!$dummyb->create_c_object('user', '1toto'), "Can't create object with wrong id");
30
31ok(my $tuser = $dummyb->get_object('user', 'toto'), 'Can get user');
32is($tuser->id, 'toto', 'Can get user id');
33is($tuser->get_attributes('homeDirectory'), '/home/toto', 'Can get homeDirectory');
34
35
36# Testing queryformat
37is($tuser->queryformat('%{username}'), 'toto', 'qf %{username}');
38is($tuser->queryformat('%{?username:IS}'), 'IS', 'qf %{?username}');
39is($tuser->queryformat('%{?gidNumber:IS}'), '', 'qf %{?gidNumber}');
40is($tuser->queryformat('%{?!username:IS}'), '', 'qf %{?!username}');
41is($tuser->queryformat('%{?!gidNumber:IS NOT}'), 'IS NOT', 'qf %{?!gidNumber}');
42is($tuser->queryformat('%{?homeDirectory:%{username}}'), 'toto', 'qf %{?username:%{}}');
43is($tuser->queryformat('%{?homeDirectory:%{?username:IS}}'), 'IS', 'qf %{?username:%{?:IS}}');
Note: See TracBrowser for help on using the repository browser.