pull bitstream users from JSON API
[APKPM.git] / t / Store.t
1 #!/usr/bin/perl
2 use strict;
3 use warnings;
4
5 use Test::More tests => 16;
6 use Data::Dump qw(dump);
7
8 use lib 'lib';
9
10 use_ok 'APKPM::Store';
11
12 ok my $o = APKPM::Store->new, 'new';
13
14 ok my $r = $o->insert('job',{
15 _table => 'ping',
16 ip => '127.0.0.1',
17 username => 'nobody',
18 rtt => 0.042,
19 }), 'ping';
20 diag dump($r);
21
22 ok my $r = $o->insert('job',{
23 _table => 'cpe_Davolink',
24 ip => '127.0.0.1',
25 username => 'nobody',
26 h => {
27         foo => 1,
28         bar => 2,
29 }
30 }), 'ping';
31
32 ok( my $r = $o->redis->get( 'table.cpe_Davolink.nobody' ), 'redis' );
33 ok( my $j = $o->d_json($r), 'd_json' );
34 isa_ok( $j->{h}, 'HASH', 'hstore' );
35 diag dump($j);
36
37 ok my $r = $o->sql('job', "select username,rtt from ping limit 2"), 'sql';
38 diag dump($r);
39
40 ok my $r = $o->sql('job', "select xx from fake"), 'sql with error';
41 ok exists $r->{error}, 'error';
42 diag dump($r);
43
44 foreach my $cpe_table ( qw(cpe_Davolink cpe_EasyGateway) ) {
45
46         diag $cpe_table;
47         ok my $r = $o->sql('job', "select * from $cpe_table limit 1"), $cpe_table;
48         ok( $r->{hash_col}, 'hash_col' );
49         isa_ok $r->{rows}->[0]->[ $r->{hash_col} ], 'HASH', 'hstore column';
50         diag "$cpe_table ",dump $r;
51
52 }
53