tag fourth (and hopefully last) alpha
[bioperl-live.git] / branch-1-6 / t / Tools / EUtilities / EUtilParameters.t
blob771ea6f1996679986e4b077a34bf7a13e56cff29
1 # -*-Perl-*- Test Harness script for Bioperl
2 # $Id: esearch.t 15112 2008-12-08 18:12:38Z sendu $
5 use strict;
6 use warnings;
8 BEGIN {
9     use lib '.';
10         use Bio::Root::Test;
11         
12         test_begin(-tests => 13,
13                            -requires_modules =>
14                [qw(URI HTTP::Request)]);
15         
16     use_ok('Bio::Tools::EUtilities::EUtilParameters');
19 my @ids = qw(6679096 31543332 134288853 483581 20805941 187951953 169158074
20 123228044 148676374 114326469 148707003 187952787 123233807 148694865 148694864
21 148694863 148694861 148694862 8705244 8568086);
23 my %params = (-eutil => 'efetch',
24              -db => 'nucleotide',
25              -id => \@ids,
26              -email => 'me@foo.bar',
27              -retmode => 'xml');
29 my $pobj = Bio::Tools::EUtilities::EUtilParameters->new(%params);
31 # initial 'primed' state
32 is($pobj->parameters_changed, 1);
34 my $request = $pobj->to_request; # 'exhaust' state 
35 isa_ok($request, 'HTTP::Request');
36 is($request->url, 'http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=nucleotide&retmode=xml&id=6679096%2C31543332%2C134288853%2C483581%2C20805941%2C187951953%2C169158074%2C123228044%2C148676374%2C114326469%2C148707003%2C187952787%2C123233807%2C148694865%2C148694864%2C148694863%2C148694861%2C148694862%2C8705244%2C8568086&tool=bioperl&email=me%40foo.bar');
37 is($pobj->to_string(), 'http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=nucleotide&retmode=xml&id=6679096%2C31543332%2C134288853%2C483581%2C20805941%2C187951953%2C169158074%2C123228044%2C148676374%2C114326469%2C148707003%2C187952787%2C123233807%2C148694865%2C148694864%2C148694863%2C148694861%2C148694862%2C8705244%2C8568086&tool=bioperl&email=me%40foo.bar');
38 is($pobj->parameters_changed, 0);
40 # state won't change if the same parameters are passed
41 $pobj->set_parameters(%params);
42 is($pobj->parameters_changed, 0);
43 $pobj->retmode('xml');
44 is($pobj->parameters_changed, 0);
46 # reprime state with new value
47 $pobj->retmode('text');
48 is($pobj->parameters_changed, 1);
50 is(join(',',$pobj->available_parameters('epost')),
51    'db,retmode,id,tool,email,WebEnv,query_key', 'available_parameters');
52 is(join(',',$pobj->available_parameters('efetch')),
53    'db,retmode,id,retmax,retstart,rettype,strand,seq_start,seq_stop,complexity,report,tool,email,WebEnv,query_key', 'available_parameters');
55 my %data = $pobj->get_parameters;
56 is_deeply($data{id}, $params{-id}, 'get_parameters');
57 is($data{email}, $params{-email}, 'get_parameters');