Changeset 8 for LATMOS-Accounts


Ignore:
Timestamp:
02/27/09 22:03:36 (15 years ago)
Author:
nanardon
Message:
  • add set_fields functions, add tests
Location:
LATMOS-Accounts
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Dummy/User.pm

    r3 r8  
    77our $VERSION = (q$Rev$ =~ /^Rev: (\d+) /)[0]; 
    88 
     9my %fields_map = ( 
     10    username => 'username', 
     11    homeDirectory => 'home', 
     12); 
     13 
    914sub new { 
    1015    my ($class, $base, $id) = @_; 
     
    1217} 
    1318 
     19sub _canonical_fields { 
     20    my ($self) = @_; 
     21    return keys %fields_map; 
     22} 
     23 
     24sub _get_field_name { 
     25    my ($self, $field) = @_; 
     26    warn $field; 
     27    return $fields_map{$field}; 
     28} 
     29 
    14301; 
  • LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Objects.pm

    r7 r8  
    7777} 
    7878 
     79=head2 set_fields(%data) 
     80 
     81Set values for this object. %data is a list or peer field => values. 
     82 
     83=cut 
     84 
     85sub set_fields { 
     86    return; 
     87} 
     88 
     89=head2 set_fields(%data) 
     90 
     91Set values for this object. %data is a list or peer  
     92canonical field => values. Fields names are translated. 
     93 
     94=cut 
     95 
     96sub set_c_fields { 
     97    my ($self, %cdata) = @_; 
     98    my %data; 
     99    foreach my $field (keys %cdata) { 
     100        my $cfield = $self->base->get_field_name($self->type, $field) or next; 
     101        $data{$cfield} = $cdata{$field}; 
     102    } 
     103    keys %data or return 1; # TODO: return an error ? 
     104    $self->set_fields(%data); 
     105} 
     106 
    791071; 
    80108 
  • LATMOS-Accounts/t/10_bases.t

    r7 r8  
    1616isa_ok($user, 'LATMOS::Accounts::Bases::Dummy::User'); 
    1717 
    18 ok(eq_set([ $dummyb->list_canonicals_fields('user') ], []), "Can get canonicals fields"); 
    19 ok(!defined( $dummyb->get_field_name('any') ), "can call get_fields_name"); 
     18ok(eq_set( 
     19    [ $dummyb->list_canonicals_fields('user') ], 
     20    [qw(username homeDirectory) ], 
     21), "Can get canonicals fields"); 
     22is( $dummyb->get_field_name('user', 'homeDirectory'), "home", "can call get_fields_name"); 
    2023ok(!$dummyb->is_transactionnal, 'Dummy driver is not transactionnal'); 
Note: See TracChangeset for help on using the changeset viewer.