From 1d64616c6eed10c9a56e66744953f041d0f8d8ed Mon Sep 17 00:00:00 2001 From: hylom Date: Fri, 24 Mar 2017 19:42:00 +0900 Subject: [PATCH] t: add models/boxes.t --- src/newslash_web/t/models/boxes.t | 67 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 src/newslash_web/t/models/boxes.t diff --git a/src/newslash_web/t/models/boxes.t b/src/newslash_web/t/models/boxes.t new file mode 100644 index 00000000..67361d1a --- /dev/null +++ b/src/newslash_web/t/models/boxes.t @@ -0,0 +1,67 @@ +# -*-Perl-*- +# Newslash::Model::Boxes tests +use Mojo::Base -strict; + +use Test::More; +use Test::Mojo; +use Data::Dumper; + +my $t = Test::Mojo->new('Newslash::Web'); + +use constant BOX_NAME => 'test_box'; + +# prepare for test +if ($t->app->mode eq 'test') { + my $boxes = $t->app->model('boxes'); + my $box = $boxes->select(name => BOX_NAME); + if ($box) { + my $rs = $boxes->delete($box->{id}); + } +} + +subtest 'get boxes object' => sub { + my $boxes = $t->app->model('boxes'); + ok($boxes, 'get boxes object'); +}; + +subtest 'create/select/update/delete boxes' => sub { + plan skip_all => "mode is not 'test'" if ($t->app->mode ne 'test'); + + my $boxes = $t->app->model('boxes'); + my $params = { + name => BOX_NAME, + comment => 'Test box comment', + model => 'stories', + query_params => '', + limit => 10, + template => 'test_template' + }; + my $box_id = $boxes->create($params); + ok($box_id, 'create box'); + + my $box1 = $boxes->select(id => $box_id); + ok($box1, 'select box by id'); + is($box1->{id}, $box_id, 'select valid box'); + + my $box2 = $boxes->select(name => $params->{name}); + ok($box2, 'select box by name'); + is($box2->{id}, $box_id, 'select valid box'); + + my $box3 = $boxes->select; + ok($box3, 'select all boxes'); + ok(@$box3 > 0, 'select one or more boxe(s)'); + + my $new_comment = 'Updated box comment'; + $params->{comment} = $new_comment; + my $new_id = $boxes->update(id => $box_id, $params); + ok($new_id, 'update box'); + my $new_box = $boxes->select(id => $new_id); + is($new_box->{comment}, $new_comment, 'update succeed'); + + my $rs = $boxes->delete($new_id); + ok($rs, 'delete box'); + $new_box = $boxes->select(id => $new_id); + ok(!defined $new_box, 'delete succeed'); +}; + +done_testing(); -- 2.11.0