# -*- indent-tabs-mode: nil; tab-width: 4; -*- # vim:ft=perl:et:sw=4 # $Id$ use strict; use warnings; use Test::More; use FindBin qw($Bin); require "$Bin/common.pl"; eval "require '$Bin/config.pl'"; if ($@) { plan skip_all => 'no config found' if ($@); } elsif (!$LA::T::SQLBASE) { plan skip_all => 'No SQL base defined'; } else { plan tests => 32; # Number of test } use_ok('LATMOS::Accounts'); use_ok('LATMOS::Accounts::Bases::Sql'); ok(my $la = LATMOS::Accounts->new(undef, noacl => 1), "Can get LATMOS::Accounts"); ok(my $base = $la->base($LA::T::SQLBASE), "can get SQL base $LA::T::SQLBASE"); { # test: user my $oid = genid(); use_ok('LATMOS::Accounts::Bases::Sql::User'); ok($base->create_c_object('user', $oid, sn => "snUser", givenName => "givenNameUser", ), "Can create user $oid"); ok(my $obj = $base->get_object('user', $oid), "user $oid is actually deleted"); is($obj->get_attributes('sn'), "snUser"); my $passwd = genid(); ok($obj->set_password($passwd), "Can set password"); ok($base->authenticate_user($oid, $passwd), "can authenticate user"); ok(!$base->authenticate_user($oid, '----'), "don't authenticate with invalid password"); ok($base->delete_object('user', $oid), "Can delete user $oid"); ok(!$base->get_object('user', $oid), "user $oid is actually deleted"); } { # test: group my $oid = genid(); use_ok('LATMOS::Accounts::Bases::Sql::Group'); ok($base->create_c_object('group', $oid, description => 'Group Test' ), "Can create group $oid"); ok(my $obj = $base->get_object('group', $oid), "group $oid is actually deleted"); is($obj->get_attributes('description'), "Group Test"); ok($base->delete_object('group', $oid), "Can delete group $oid"); ok(!$base->get_object('group', $oid), "group $oid is actually deleted"); } { # test: nethost my $oid = genid(); use_ok('LATMOS::Accounts::Bases::Sql::Nethost'); ok($base->create_c_object('nethost', $oid, description => 'Nethost Test', ip => '255.255.255.255', # widely improbable to conflict with existing one ), "Can create nethost $oid"); ok(my $obj = $base->get_object('nethost', $oid), "nethost $oid is actually deleted"); is($obj->get_attributes('description'), "Nethost Test"); my ($ip) = $obj->get_attributes('ip'); is($ip, '255.255.255.255'); ok($base->delete_object('nethost', $oid), "Can delete nethost $oid"); ok(!$base->get_object('nethost', $oid), "nethost $oid is actually deleted"); } { # test: netzone my $oid = genid(); use_ok('LATMOS::Accounts::Bases::Sql::Netzone'); ok($base->create_c_object('netzone', $oid, description => 'Netzone Test', type => 'dhcp', ), "Can create netzone $oid"); ok(my $obj = $base->get_object('netzone', $oid), "netzone $oid is actually deleted"); is($obj->get_attributes('description'), "Netzone Test"); ok($base->delete_object('netzone', $oid), "Can delete netzone $oid"); ok(!$base->get_object('netzone', $oid), "netzone $oid is actually deleted"); }