#!/usr/bin/perl use strict; use warnings; use Test::More; BEGIN { eval { require DBD::SQLite } or plan skip_all => 'DBD::SQLite is required for this test'; $ENV{TEST_FOORUM} = 1; plan tests => 7; } use FindBin; use File::Spec; use lib File::Spec->catdir( $FindBin::Bin, '..', 'lib' ); use Foorum::SUtils qw/schema/; use Foorum::TestUtils qw/rollback_db/; my $schema = schema(); my $ssc = $schema->resultset('SecurityCode'); $ssc->create( { type => 1, # 'forget_password', user_id => 1, code => '1234567890', time => time(), } ); $ssc->create( { type => 1, # 'forget_password', user_id => 2, code => '1234567899', time => time(), } ); # test functions # 1, get my $code = $ssc->get( 'forget_password', 1 ); is( $code, '1234567890', 'get 1234567890 from forget_password 1' ); $code = $ssc->get( 'forget_password', 2 ); is( $code, '1234567899', 'get 1234567890 from forget_password 2' ); # 2, get_or_create $code = $ssc->get_or_create( 'forget_password', 2 ); is( $code, '1234567899', 'get_or_create 1234567890 from forget_password 2' ); $code = $ssc->get_or_create( 'forget_password', 3 ); is( length($code), 12, 'get_or_create' ); my $code2 = $ssc->get( 'forget_password', 3 ); is( $code2, $code, 'get == get_or_create after get_or_create' ); $ssc->remove( 'forget_password', 1 ); $code = $ssc->get( 'forget_password', 1 ); is( $code, undef, 'get undef from forget_password after remove' ); my $cnt = $ssc->count(); is( $cnt, 2, 'get correct count' ); END { # Keep Database the same from original rollback_db(); } 1;