tag fourth (and hopefully last) alpha
[bioperl-live.git] / branch-1-6 / t / Tools / EUtilities / elink_acheck.t
blob246ba175797ee807f2d694309057b0edfd8ffd03
1 # -*-Perl-*- Test Harness script for Bioperl
2 # $Id: epost.t 15112 2008-12-08 18:12:38Z sendu $
4 use strict;
5 use warnings;
7 BEGIN {
8     use lib '.';
9         use Bio::Root::Test;
10         
11         test_begin(-tests => 130,
12                            -requires_module => 'XML::Simple');
13         
14     use_ok('Bio::Tools::EUtilities');
15     use_ok('Bio::Tools::EUtilities::EUtilParameters');
18 # check -correspondence => 0 (default) - this is set up to return the
19 # exact same thing as correspondece = 1, tested below)
20 my $eutil = Bio::Tools::EUtilities->new(
21     -eutil      => 'elink',
22     -file       => test_input_file('eutils','elink_acheck.xml'));
24 isa_ok($eutil, 'Bio::Tools::EUtilities::Link');
25 is(join(',',$eutil->get_databases), 'LinkOut,cdd,gene,genome,genomeprj,'.
26    'nuccore,pmc,protein,proteinclusters,pubmed,structure,taxonomy');
28 # for elinks, IDs are globbed together when called from the parser unless a database is specified
29 is(join(',',$eutil->get_ids('cdd')), '730439,68536103,1621261,20807972', 'get_ids');
30 is(join(',',$eutil->get_ids('LinkOut')), '730439,1621261,20807972', 'get_ids');
31 my @ls = $eutil->get_LinkSets;
32 is(scalar(@ls), 4, 'uncorrelated LinkSets lump everything together');
33 is(join(',',$ls[1]->get_databases), 'cdd,gene,genome,genomeprj,nuccore,pmc,'.
34    'protein,proteinclusters,pubmed,structure,taxonomy');
35 isa_ok($ls[0], 'Bio::Tools::EUtilities::EUtilDataI');
36 isa_ok($ls[0], 'Bio::Tools::EUtilities::Link::LinkSet');
38 # check data in LinkSets
39 is(join(',',$ls[0]->get_ids), '730439');
40 is(join(',',$ls[0]->get_databases), 'LinkOut,cdd,pmc,protein,pubmed,structure,'.
41    'taxonomy');
42 is(join(',',$ls[0]->get_submitted_ids), '730439');
43 is($ls[0]->get_dbfrom, 'protein');
44 is(join(',',$ls[0]->get_link_names), 'protein_cdd,protein_cdd_concise_2,'.
45    'protein_cdd_summary,protein_pmc,protein_protein,'.
46    'protein_protein_cdart_summary,protein_protein_identical,protein_pubmed,'.
47    'protein_structure_related,protein_taxonomy,ExternalLink');
48 is($ls[0]->has_scores, 0);
49 is($ls[0]->has_linkout, 1);
50 is($ls[0]->has_neighbor, 0);
51 my @info = $ls[0]->get_LinkInfo;
52 is(scalar(@info), 11);
53 is($info[1]->get_database, 'cdd');
54 is($info[1]->get_dbfrom, 'protein');
55 is($info[1]->get_link_name, 'protein_cdd_concise_2');
56 is($info[1]->get_link_description, undef);
57 is($info[1]->get_link_menu_name, 'Concise Conserved Domain Links');
58 is($info[1]->get_priority, 128);
59 is($info[1]->get_html_tag, undef);
60 is($info[1]->get_url, undef);
62 is($info[10]->get_database, 'LinkOut');
63 is($info[10]->get_dbfrom, 'protein');
64 is($info[10]->get_link_name, 'ExternalLink');
65 is($info[10]->get_link_description, undef);
66 is($info[10]->get_link_menu_name, 'LinkOut');
67 is($info[10]->get_priority, 255);
68 is($info[10]->get_html_tag, 'LinkOut');
69 is($info[10]->get_url, undef);
71 # no UrlLinks
72 my @urls = $ls[0]->get_UrlLinks;
73 is(scalar(@urls), 0);
75 # HistoryI
76 is($ls[0]->get_webenv, undef);
77 is($ls[0]->get_query_key, undef);
79 is(join(',',$ls[1]->get_ids), '68536103');
80 is(join(',',$ls[1]->get_databases), 'cdd,gene,genome,genomeprj,nuccore,pmc,'.
81    'protein,proteinclusters,pubmed,structure,taxonomy');
82 is(join(',',$ls[1]->get_submitted_ids), '68536103');
83 is(join(',',$ls[1]->get_link_names), 'protein_cdd,protein_cdd_concise_2,'.
84    'protein_cdd_summary,protein_gene,protein_genome,protein_genomeprj,'.
85    'protein_nuccore,protein_pmc,protein_protein,protein_protein_cdart_summary,'.
86    'protein_protein_identical,protein_proteinclusters,protein_pubmed,'.
87    'protein_pubmed_refseq,protein_structure_related,protein_taxonomy');
88 is($ls[1]->get_dbfrom, 'protein');
89 is($ls[1]->has_scores, 0);
90 is($ls[1]->has_linkout, 0);
91 is($ls[1]->has_neighbor, 0);
92 @info = $ls[1]->get_LinkInfo;
93 is(scalar(@info), 16);
94 is($info[1]->get_database, 'cdd');
95 is($info[1]->get_dbfrom, 'protein');
96 is($info[1]->get_link_name, 'protein_cdd_concise_2');
97 is($info[1]->get_link_description, undef);
98 is($info[1]->get_link_menu_name, 'Concise Conserved Domain Links');
99 is($info[1]->get_priority, 128);
100 is($info[1]->get_html_tag, undef);
101 is($info[1]->get_url, undef);
102 is($info[14]->get_database, 'structure');
103 is($info[14]->get_dbfrom, 'protein');
104 is($info[14]->get_link_name, 'protein_structure_related');
105 is($info[14]->get_link_description, undef);
106 is($info[14]->get_link_menu_name, undef);
107 is($info[14]->get_priority, 128);
108 is($info[14]->get_html_tag, 'Related Structure');
109 # Note the UID tag at end
110 is($info[14]->get_url, 'http://structure.ncbi.nlm.nih.gov/Structure/cblast/'.
111    'cblast.cgi?client=entrez&query_gi=<@UID@>');
113 # no UrlLinks
114 @urls = $ls[1]->get_UrlLinks;
115 is(scalar(@urls), 0);
117 # HistoryI
118 is($ls[1]->get_webenv, undef);
119 is($ls[1]->get_query_key, undef);
121 # check -correspondence => 1
122 $eutil = Bio::Tools::EUtilities->new(
123     -eutil      => 'elink',
124     -file       => test_input_file('eutils','elink_acheck.xml'));
126 isa_ok($eutil, 'Bio::Tools::EUtilities::Link');
127 is(join(',',$eutil->get_databases), 'LinkOut,cdd,gene,genome,genomeprj,'.
128    'nuccore,pmc,protein,proteinclusters,pubmed,structure,taxonomy');
130 # for elinks, IDs are globbed together when called from the parser unless a database is specified
131 is(join(',',$eutil->get_ids('cdd')), '730439,68536103,1621261,20807972', 'get_ids');
132 is(join(',',$eutil->get_ids('LinkOut')), '730439,1621261,20807972', 'get_ids');
133 @ls = $eutil->get_LinkSets;
134 is(scalar(@ls), 4, 'correlated LinkSets separate ID data');
135 is(join(',',$ls[1]->get_databases), 'cdd,gene,genome,genomeprj,nuccore,pmc,'.
136    'protein,proteinclusters,pubmed,structure,taxonomy');
137 isa_ok($ls[0], 'Bio::Tools::EUtilities::EUtilDataI');
138 isa_ok($ls[0], 'Bio::Tools::EUtilities::Link::LinkSet');
140 # check data in LinkSets
141 is(join(',',$ls[0]->get_ids), '730439');
142 is(join(',',$ls[0]->get_databases), 'LinkOut,cdd,pmc,protein,pubmed,structure,'.
143    'taxonomy');
144 is(join(',',$ls[0]->get_submitted_ids), '730439');
145 is(join(',',$ls[0]->get_link_names), 'protein_cdd,protein_cdd_concise_2,'.
146    'protein_cdd_summary,protein_pmc,protein_protein,'.
147    'protein_protein_cdart_summary,protein_protein_identical,'.
148    'protein_pubmed,protein_structure_related,protein_taxonomy,ExternalLink');
149 is($ls[0]->get_dbfrom, 'protein');
150 is($ls[0]->has_scores, 0);
151 is($ls[0]->has_linkout, 1);
152 is($ls[0]->has_neighbor, 0);
153 @info = $ls[0]->get_LinkInfo;
154 is(scalar(@info), 11);
155 is($info[1]->get_database, 'cdd');
156 is($info[1]->get_dbfrom, 'protein');
157 is($info[1]->get_link_name, 'protein_cdd_concise_2');
158 is($info[1]->get_link_description, undef);
159 is($info[1]->get_link_menu_name, 'Concise Conserved Domain Links');
160 is($info[1]->get_priority, 128);
161 is($info[1]->get_html_tag, undef);
162 is($info[1]->get_url, undef);
164 is($info[10]->get_database, 'LinkOut');
165 is($info[10]->get_dbfrom, 'protein');
166 is($info[10]->get_link_name, 'ExternalLink');
167 is($info[10]->get_link_description, undef);
168 is($info[10]->get_link_menu_name, 'LinkOut');
169 is($info[10]->get_priority, 255);
170 is($info[10]->get_html_tag, 'LinkOut');
171 is($info[10]->get_url, undef);
173 # no UrlLinks
174 @urls = $ls[0]->get_UrlLinks;
175 is(scalar(@urls), 0);
177 # HistoryI
178 is($ls[0]->get_webenv, undef);
179 is($ls[0]->get_query_key, undef);
181 is(join(',',$ls[1]->get_ids), '68536103');
182 is(join(',',$ls[1]->get_databases), 'cdd,gene,genome,genomeprj,nuccore,pmc,'.
183    'protein,proteinclusters,pubmed,structure,taxonomy');
184 is(join(',',$ls[1]->get_submitted_ids), '68536103');
185 is($ls[1]->get_dbfrom, 'protein');
186 is(join(',',$ls[1]->get_link_names), 'protein_cdd,protein_cdd_concise_2,'.
187    'protein_cdd_summary,protein_gene,protein_genome,protein_genomeprj,'.
188    'protein_nuccore,protein_pmc,protein_protein,protein_protein_cdart_summary,'.
189    'protein_protein_identical,protein_proteinclusters,protein_pubmed,'.
190    'protein_pubmed_refseq,protein_structure_related,protein_taxonomy');
191 is($ls[1]->has_scores, 0);
192 is($ls[1]->has_linkout, 0);
193 is($ls[1]->has_neighbor, 0);
194 @info = $ls[1]->get_LinkInfo;
195 is(scalar(@info), 16);
196 is($info[1]->get_database, 'cdd');
197 is($info[1]->get_dbfrom, 'protein');
198 is($info[1]->get_link_name, 'protein_cdd_concise_2');
199 is($info[1]->get_link_description, undef);
200 is($info[1]->get_link_menu_name, 'Concise Conserved Domain Links');
201 is($info[1]->get_priority, 128);
202 is($info[1]->get_html_tag, undef);
203 is($info[1]->get_url, undef);
204 is($info[14]->get_database, 'structure');
205 is($info[14]->get_dbfrom, 'protein');
206 is($info[14]->get_link_name, 'protein_structure_related');
207 is($info[14]->get_link_description, undef);
208 is($info[14]->get_link_menu_name, undef);
209 is($info[14]->get_priority, 128);
210 is($info[14]->get_html_tag, 'Related Structure');
211 # Note the UID tag at end
212 is($info[14]->get_url, 'http://structure.ncbi.nlm.nih.gov/Structure/cblast/'.
213    'cblast.cgi?client=entrez&query_gi=<@UID@>');
215 # no UrlLinks
216 @urls = $ls[1]->get_UrlLinks;
217 is(scalar(@urls), 0);
219 # HistoryI
220 is($ls[1]->get_webenv, undef);
221 is($ls[1]->get_query_key, undef);