The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/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;