list_update.t (1414B)
1 use strict; 2 use Test; 3 use SL::Test; 4 5 BEGIN { plan tests => 21 } 6 7 my $s = SL::Test::Server->new(); 8 my $A = SL::Test::Client->new(); 9 10 # Test sending a request with no 'num' key 11 my $err = $A->list_update({ name => 'some name' }, 'err'); 12 ok( $err, 'the client did not send a list number' ); 13 ok( $s->readline(), "/list number key not found/" ); 14 15 # Try and update a list that doesn't exist 16 $err = $A->list_update({ num => 123456, name => 'some name' }, 'err'); 17 ok( $err, 'the client sent an unknown list number' ); 18 ok( $s->readline(), "/unknown list number '.*'/" ); 19 20 # All checks after this require a valid list, create one now 21 my $list = $A->list_add({ name => 'this is a new list', date => 0 }); 22 23 # Update only the list name first 24 $A->list_update({ num => $list->{num}, name => 'this is an updated name' }); 25 26 # Verify the name change persisted 27 my @lists = @{ $A->lists_get() }; 28 ok( $lists[0]->{name}, 'this is an updated name' ) ; 29 ok( $lists[0]->{date}, 0 ); 30 31 # Update only the date 32 $A->list_update({ num => $list->{num}, date => 12345 }); 33 34 # Verify the date change persisted 35 @lists = @{ $A->lists_get() }; 36 ok( $lists[0]->{name}, 'this is an updated name' ); 37 ok( $lists[0]->{date}, 12345 ); 38 39 # Now update both the name and date 40 $A->list_update({ num => $list->{num}, date => 54321, name => 'updated again' }); 41 42 @lists = @{ $A->lists_get() }; 43 ok( $lists[0]->{name}, 'updated again' ); 44 ok( $lists[0]->{date}, 54321 );