add a test file for the load_stocks.pl upload script.
[sgn.git] / t / unit_fixture / scripts / load_stocks.t
blobd74a634f82e7fdb0e801737a40094d57460136d1
2 use strict;
4 use Data::Dumper;
5 use Test::More;
6 use lib 't/lib';
7 use SGN::Test::Fixture;
8 use File::Temp qw | tempfile |;
9 use CXGN::Stock::Accession;
11 my $f = SGN::Test::Fixture->new();
13 my $file = "t/data/stock/test_load_stock_script.csv";
15 my ($fh, $temp_file) = tempfile( "load_stocks_stderr_XXXXX", DIR => "/tmp" );
16 my $dbhost = $f->config->{dbhost};
17 my $dbname = $f->config->{dbname};
18 my $dbpass = $f->config->{dbpass};
20 my $cmd_line = "perl bin/load_stocks.pl -H $dbhost -u janedoe -D $dbname -P $dbpass -i $file 2> $temp_file";
22 print STDERR "$cmd_line\n";
24 my @out = `$cmd_line\n`;
26 open(my $F, "<", $temp_file) || die "Can't open file $temp_file\n";
27 my @lines = <$F>;
28 close($F);
30 my $q1 = "SELECT stock_id FROM stock where uniquename = 'script_added_1'";
31 my $h1 = $f->dbh()->prepare($q1);
32 $h1->execute();
33 my ($stock_id) = $h1->fetchrow_array();
35 ok($stock_id, "stock id verification test");
37 my $stock = CXGN::Stock::Accession->new( schema => $f->bcs_schema, phenome_schema => $f->phenome_schema, metadata_schema => $f->metadata_schema, stock_id => $stock_id );
39 is_deeply($stock->synonyms, [ 'besty1', 'super1' ], "stock synonyms test");
41 print STDERR "POPULATIONS: ".Dumper($stock->populations());
42 is_deeply($stock->populations()->[0]->[1], 'xyz', "populations test");
44 is($stock->description(), "the very best", "stock description test");
46 $f->clean_up_db();
48 done_testing();
50 print STDERR "Done.\n";