2e1004a1288778c6d6120bf7280b798cf6aa3def
[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 timestamp => '2011-12-05 01:01:01',
20 }), 'ping';
21 diag dump($r);
22
23 ok my $r = $o->insert('job',{
24 _table => 'cpe_Davolink',
25 ip => '127.0.0.1',
26 username => 'nobody',
27 h => {
28         foo => 1,
29         bar => 2,
30 },
31 start => '2011-12-05 01:01:01',
32 }), 'ping';
33
34 ok( my $r = $o->redis->get( 'table.cpe_Davolink.nobody' ), 'redis' );
35 ok( my $j = $o->d_json($r), 'd_json' );
36 isa_ok( $j->{h}, 'HASH', 'hstore' );
37 diag dump($j);
38
39 ok my $r = $o->sql('job', "select username,rtt from ping limit 2"), 'sql';
40 diag dump($r);
41
42 ok my $r = $o->sql('job', "select xx from fake"), 'sql with error';
43 ok exists $r->{error}, 'error';
44 diag dump($r);
45
46 foreach my $cpe_table ( qw(cpe_Davolink cpe_EasyGateway) ) {
47
48         diag $cpe_table;
49         ok my $r = $o->sql('job', "select * from $cpe_table limit 1"), $cpe_table;
50         ok( $r->{hash_col}, 'hash_col' );
51         isa_ok $r->{rows}->[0]->[ $r->{hash_col} ], 'HASH', 'hstore column';
52         diag "$cpe_table ",dump $r;
53
54 }
55