use strict;
use warnings;
-use Test::More tests => 7;
+use Test::More tests => 19;
use Data::Dump qw(dump);
use lib 'lib';
ok my $o = APKPM::Store->new, 'new';
-ok my $r = $o->insert('job',{
-_table => 'adsl',
-ip => '127.0.0.1',
-username => 'nobody',
-ATTNRX => "36.5",
-ATTNTX => "17.8",
-MAXRX => 13500,
-MAXTX => 880,
-PWRRX => "0.0",
-PWRTX => "12.6",
-RX => 8500,
-SNRRX => "11.4",
-SNRTX => "16.0",
-TX => 798,
-}), 'ADSL';
-diag dump($r);
+ok my $sql = $o->_create_index('dslam', '2012_04_20'), '_create_index';
+diag $sql;
ok my $r = $o->insert('job',{
_table => 'ping',
ip => '127.0.0.1',
username => 'nobody',
rtt => 0.042,
+timestamp => '2011-12-05 01:01:01',
}), 'ping';
diag dump($r);
-ok my $r = $o->sql('job', "select rtt from ping where username='nobody'"), 'sql';
+ok $r = $o->insert('job',{
+_table => 'cpe_Davolink',
+ip => '127.0.0.1',
+username => 'nobody',
+h => {
+ foo => 1,
+ bar => 2,
+},
+start => '2011-12-05 01:01:01',
+}), 'ping';
+
+ok( $r = $o->redis->get( 'table.cpe_Davolink.nobody' ), 'redis table.cpe_Davolink.nobody' );
+ok( my $j = $o->d_json($r), 'd_json' );
+isa_ok( $j->{h}, 'HASH', 'hstore' );
+diag dump($j);
+
+foreach my $key ( qw( columns.cpe_Davolink columns.cpe_Davolink_2011_12_05 ) ) {
+ ok( $r = $o->redis->get( $key ), "redis $key" );
+}
+
+ok $r = $o->sql('job', "select username,rtt from ping limit 2"), 'sql';
diag dump($r);
-ok my $r = $o->sql('job', "select xx from fake"), 'sql with error';
+ok $r = $o->sql('job', "select xx from fake"), 'sql with error';
ok exists $r->{error}, 'error';
diag dump($r);
+
+foreach my $cpe_table ( qw(cpe_Davolink cpe_EasyGateway) ) {
+
+ diag $cpe_table;
+ ok $r = $o->sql('job', "select * from $cpe_table limit 1"), $cpe_table;
+ ok( $r->{hash_col}, 'hash_col' );
+ isa_ok $r->{rows}->[0]->[ $r->{hash_col} ], 'HASH', 'hstore column';
+ diag "$cpe_table ",dump $r;
+
+}
+