#!/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 => 9; } use FindBin; use File::Spec; use lib File::Spec->catdir( $FindBin::Bin, '..', 'lib' ); use Foorum::SUtils qw/schema/; use Foorum::XUtils qw/cache/; use Foorum::TestUtils qw/rollback_db/; my $schema = schema(); my $cache = cache(); my $forum_settings_res = $schema->resultset('ForumSettings'); # create a new forum $forum_settings_res->create( { forum_id => 1, type => 'can_post_threads', value => 'N', } ); $forum_settings_res->create( { forum_id => 2, type => 'can_post_threads', value => 'Y', } ); $forum_settings_res->create( { forum_id => 1, type => 'create_time', value => '123456', } ); $forum_settings_res->create( { forum_id => 1, type => 'forum_link1', value => 'http://www.fayland.org/ Fayland', } ); $forum_settings_res->create( { forum_id => 1, type => 'forum_link2', value => 'http://www.foorumbbs.com/ FoorumBBS site', } ); $cache->remove('forum_settings|forum_id=1'); # get_all my $settings = $forum_settings_res->get_all(1); is( scalar keys %$settings, 4, 'get 4 settings' ); is_deeply( $settings, { can_post_threads => 'N', create_time => 123456, forum_link1 => 'http://www.fayland.org/ Fayland', forum_link2 => 'http://www.foorumbbs.com/ FoorumBBS site' }, 'get_all OK' ); $settings = $forum_settings_res->get_basic(1); is( $settings->{can_post_threads}, 'N', 'can_post_threads is N' ); is( $settings->{can_post_replies}, 'Y', 'can_post_replies is Y by default' ); my @links = $forum_settings_res->get_forum_links(1); is( scalar @links, 2, 'get 2 links' ); is( $links[0]->{url}, 'http://www.fayland.org/', 'get_forum_links 1 OK' ); is( $links[1]->{url}, 'http://www.foorumbbs.com/', 'get_forum_links 2 OK' ); is( $links[0]->{text}, 'Fayland', 'get_forum_links 3 OK' ); is( $links[1]->{text}, 'FoorumBBS site', 'get_forum_links 4 OK' ); END { # Keep Database the same from original rollback_db(); } 1;