1use Test::More; 2use Test::Exception; 3use Search::Elasticsearch; 4use lib 't/lib'; 5use MockCxn qw(mock_noping_client); 6 7## Max retries 8 9my $t = mock_noping_client( 10 { nodes => [ 'one', 'two', 'three' ], max_retries => 1 }, 11 12 { node => 1, code => 200, content => 1 }, 13 { node => 2, code => 200, content => 1 }, 14 { node => 3, code => 200, content => 1 }, 15 { node => 1, code => 509, error => 'Unavailable' }, 16 { node => 2, code => 509, error => 'Unavailable' }, 17 18 # throws unavailable 19 { node => 3, code => 200, content => 1 }, 20 { node => 3, code => 200, content => 1 }, 21 22); 23 24ok $t->perform_request() 25 && $t->perform_request 26 && $t->perform_request 27 && !eval { $t->perform_request } 28 && $@ =~ /Unavailable/ 29 && $t->perform_request 30 && $t->perform_request, 31 'Max retries'; 32 33done_testing; 34 35