diff --git a/t/api-vouchers.t b/t/api-vouchers.t index 4e388b485a..d005a881de 100644 --- a/t/api-vouchers.t +++ b/t/api-vouchers.t @@ -25,10 +25,10 @@ $fake_data->set_data_from_script({ code => 'apitestcode', customer_id => undef, package_id => undef, - reseller_id => sub { return shift->get_id('resellers', @_); },, + reseller_id => sub { return shift->get_id('resellers', @_); }, valid_until => '2037-01-01 12:00:00', }, - 'query' => ['code'], + 'query' => ['code','reseller_id'], }, }); @@ -36,7 +36,7 @@ $test_machine->DATA_ITEM_STORE($fake_data->process('vouchers')); $test_machine->form_data_item( ); # create 3 new vouchers from DATA_ITEM -$test_machine->check_create_correct( 3, sub{ $_[0]->{code} .= $_[1]->{i} ; } ); +$test_machine->check_create_correct( 3, sub{ $_[0]->{code} .= time().'_'.$_[1]->{i} ; } ); $test_machine->check_get2put(); $test_machine->check_bundle(); diff --git a/t/lib/Test/Collection.pm b/t/lib/Test/Collection.pm index 62da946ff9..8c89ae6c99 100644 --- a/t/lib/Test/Collection.pm +++ b/t/lib/Test/Collection.pm @@ -229,8 +229,9 @@ sub get_id_from_created{ return $id; } sub get_hal_name{ - my($self) = @_; - return "ngcp:".$self->name; + my($self,$name) = @_; + $name //= $self->name; + return "ngcp:".$name; } sub restore_uri_custom{ my($self) = @_; @@ -243,19 +244,21 @@ sub get_uri_collection{ return $self->base_uri."/api/".$name.($name ? "/" : "").($self->QUERY_PARAMS ? "?".$self->QUERY_PARAMS : ""); } sub get_uri_get{ - my($self,$query_string) = @_; - return $self->base_uri."/api/".$self->name.($query_string ? '/?' : '/' ).$query_string; + my($self,$query_string, $name) = @_; + $name //= $self->name; + return $self->base_uri."/api/".$name.($query_string ? '/?' : '/' ).$query_string; } sub get_uri{ - my($self,$add) = @_; + my($self,$add,$name) = @_; $add //= ''; - return $self->base_uri."/api/".$self->name.'/'.$add; + $name //= $self->name; + return $self->base_uri."/api/".$name.'/'.$add; } sub get_uri_firstitem{ - my($self) = @_; + my($self,$name) = @_; if(!$self->DATA_CREATED->{FIRST}){ my($res,$list_collection,$req) = $self->check_item_get($self->get_uri_collection."?page=1&rows=1"); - my $hal_name = $self->get_hal_name; + my $hal_name = $self->get_hal_name($name); if(ref $list_collection->{_links}->{$hal_name} eq "HASH") { $self->DATA_CREATED->{FIRST} = $list_collection->{_links}->{$hal_name}->{href}; } else { @@ -291,7 +294,15 @@ sub encode_content{ sub request{ my($self,$req) = @_; #print $req->as_string; - return $self->ua->request($req); + my $res = $self->ua->request($req); + #draft of the debug mode + #if($res->code >= 400){ + # print Dumper $req; + # print Dumper $res; + # print Dumper $res->decoded_content ? JSON::from_json($res->decoded_content) : '';; + # die; + #} + return $res; } sub request_process{ @@ -385,11 +396,9 @@ sub request_delete{ } sub request_get{ my($self,$uri) = @_; - print ">>>>>>>>>>>>>>>>>>>>>> fooooo\n"; $uri ||= $self->get_uri_current; my $req = HTTP::Request->new('GET', $uri); my $res = $self->request($req); - use Data::Dumper; print Dumper $res; my $content = $res->decoded_content ? JSON::from_json($res->decoded_content) : ''; return wantarray ? ($res, $content, $req) : $res; } diff --git a/t/lib/Test/FakeData.pm b/t/lib/Test/FakeData.pm index 41f04a7c08..dff1dd7c99 100644 --- a/t/lib/Test/FakeData.pm +++ b/t/lib/Test/FakeData.pm @@ -11,6 +11,7 @@ use Data::Dumper; use Test::DeepHashUtils qw(reach nest deepvalue); use Clone qw/clone/; use File::Slurp qw/read_file/; +use URI::Escape; has 'test_machine' =>( is => 'rw', @@ -323,11 +324,12 @@ sub load_db{ $data //= $self->data; $collections_slice //= [keys %$data]; foreach my $collection_name( @$collections_slice ){ - #print "collection_name=$collection_name;\n"; + #print "load_db: collection_name=$collection_name;\n"; if((!exists $self->loaded->{$collection_name}) && $data->{$collection_name}->{query}){ my(undef,$content) = $self->search_item($collection_name,$data); + #print Dumper $content; if($content->{total_count}){ - my $values = $content->{_embedded}->{$self->test_machine->get_hal_name}; + my $values = $content->{_embedded}->{$self->test_machine->get_hal_name($collection_name)}; $values = ('HASH' eq ref $values) ? [$values] : $values; $self->loaded->{$collection_name} = [ map { { @@ -354,7 +356,7 @@ sub clear_db{ } my(undef,$content) = $self->search_item($collection_name,$data); if($content->{total_count}){ - my $values = $content->{_links}->{$self->test_machine->get_hal_name}; + my $values = $content->{_links}->{$self->test_machine->get_hal_name($collection_name)}; $values = ('HASH' eq ref $values) ? [$values] : $values; my @locations = map {$_->{href}} @$values; if($data->{$collection_name}->{no_delete_available}){ @@ -394,14 +396,13 @@ sub search_item{ if('CODE' eq ref $search_value){ $search_value = $search_value->($self); } - $field_name.'='.$search_value; + $field_name.'='.uri_escape($search_value); } @{$item->{query}} ); my $name_prev = $self->test_machine->{name}; - $name_prev //= $collection_name; $self->test_machine->name($collection_name); my($res, $content, $req) = $self->test_machine->check_item_get($self->test_machine->get_uri_get($query_string)); - $self->test_machine->name($name_prev); + $name_prev and $self->test_machine->name($name_prev); #time for memoize? $self->searched->{$collection_name} = [$res, $content, $req]; return ($res, $content, $req);