7 test_begin(-tests => 55);
8 use_ok('DBTestHarness');
10 use_ok('Bio::Seq::SeqFactory');
13 $biosql = DBTestHarness->new("biosql");
14 $db = $biosql->get_DBAdaptor();
17 my $seqio = Bio::SeqIO->new('-format' => 'swiss',
18 '-file' => test_input_file('swiss.dat'));
19 my $seq = $seqio->next_seq();
22 my $pseq = $db->create_persistent($seq);
24 isa_ok $pseq, "Bio::DB::PersistentObjectI";
25 isa_ok $pseq, "Bio::SeqI";
27 $pseq->namespace("mytestnamespace");
29 my $dbid = $pseq->primary_key();
32 my $adp = $db->get_object_adaptor($seq);
34 isa_ok $adp, "Bio::DB::PersistenceAdaptorI";
36 my $seqfact = Bio::Seq::SeqFactory->new(-type => "Bio::Seq::RichSeq");
38 isa_ok $seqfact, "Bio::Factory::ObjectFactoryI";
42 $dbseq = $adp->find_by_primary_key($dbid, $seqfact);
45 is ($dbseq->display_id, $seq->display_id);
46 like ($dbseq->primary_id, qr/=HASH/);
47 like ($seq->primary_id, qr/=HASH/);
48 is ($dbseq->accession_number, $seq->accession_number);
49 is ($dbseq->species->binomial, $seq->species->binomial);
50 is ($dbseq->subseq(3,10), $seq->subseq(3,10) );
51 is ($dbseq->seq, $seq->seq);
52 is ($dbseq->length, $seq->length);
53 is ($dbseq->length, length($dbseq->seq));
55 is ($dbseq->desc, $seq->desc);
57 my @dbarr = $dbseq->annotation->get_Annotations('dblink');
58 my @arr = $seq->annotation->get_Annotations('dblink');
59 is (scalar(@dbarr), scalar(@arr));
61 @dbarr = sort { $a->primary_id cmp $b->primary_id } @dbarr;
62 @arr = sort { $a->primary_id cmp $b->primary_id } @arr;
63 is ( $dbarr[0]->primary_id, $arr[0]->primary_id);
65 @dbarr = $dbseq->annotation->get_Annotations('reference');
66 @arr = $seq->annotation->get_Annotations('reference');
67 is (scalar(@dbarr), scalar(@arr));
69 @dbarr = sort { $a->primary_id cmp $b->primary_id } @dbarr;
70 @arr = sort { $a->primary_id cmp $b->primary_id } @arr;
71 is ( $dbarr[0]->primary_id, $arr[0]->primary_id);
72 is (scalar(grep { $_->start() && $_->end(); } @dbarr),
73 scalar(grep { $_->start() && $_->end(); } @arr));
76 my $ref = shift(@arr);
77 is ($_->authors, $ref->authors);
78 is ($_->title, $ref->title);
79 is ($_->location, $ref->location);
80 is ($_->medline, $ref->medline);
83 @dbarr = $dbseq->annotation->get_Annotations('gene_name');
84 @arr = $seq->annotation->get_Annotations('gene_name');
86 is (scalar(@dbarr), scalar(@arr));
87 @dbarr = sort { $a->value() cmp $b->value() } @dbarr;
88 @arr = sort { $a->value() cmp $b->value() } @arr;
89 for(my $i = 0; $i < @dbarr; $i++) {
90 is ($dbarr[$i]->value(), $arr[$i]->value());
93 @dbarr = $dbseq->top_SeqFeatures();
94 @arr = $seq->top_SeqFeatures();
95 is (scalar(@dbarr), scalar(@arr));
96 @dbarr = sort { $a->primary_tag() cmp $b->primary_tag() } @dbarr;
97 @arr = sort { $a->primary_tag() cmp $b->primary_tag() } @arr;
98 for(my $i = 0; $i < @dbarr; $i++) {
99 is ($dbarr[$i]->primary_tag(), $arr[$i]->primary_tag());
104 print STDERR $@ if $@;
107 is ($pseq->remove(), 1);
108 my $ns = Bio::DB::Persistent::BioNamespace->new(-identifiable => $pseq);
109 ok $ns = $db->get_object_adaptor($ns)->find_by_unique_key($ns);
110 ok $ns->primary_key();
111 is ($ns->remove(), 1);