2017-09-07 13:20:53 +01:00
use Mojo::Base - strict ;
use FindBin qw/ $Bin / ;
use Test::More ;
use Mojo::JSON ;
use Test::Pear::LocalLoop ;
use DateTime ;
my $ framework = Test::Pear::LocalLoop - > new (
etc_dir = > "$Bin/../etc" ,
) ;
$ framework - > install_fixtures ( 'users' ) ;
my $ t = $ framework - > framework ;
my $ schema = $ t - > app - > schema ;
my $ start = DateTime - > today - > subtract ( hours = > 12 ) ;
# create 30 days worth of data
for my $ count ( 0 .. 29 ) {
my $ trans_day = $ start - > clone - > subtract ( days = > $ count ) ;
create_random_transaction ( 'test1@example.com' , $ trans_day ) ;
if ( $ count % 2 ) {
create_random_transaction ( 'test2@example.com' , $ trans_day ) ;
}
if ( $ count % 3 ) {
create_random_transaction ( 'test3@example.com' , $ trans_day ) ;
}
if ( $ count % 4 ) {
create_random_transaction ( 'test4@example.com' , $ trans_day ) ;
}
}
2017-09-07 13:26:03 +01:00
is $ schema - > resultset ( 'Transaction' ) - > count , 87 ;
2017-09-07 13:20:53 +01:00
#login to admin
$ t - > ua - > max_redirects ( 10 ) ;
$ t - > post_ok ( '/admin' , form = > {
email = > 'admin@example.com' ,
password = > 'abc123' ,
} ) - > status_is ( 200 ) ;
#Read valid transaction
$ t - > get_ok ( "/admin/transactions/1" )
- > status_is ( 200 ) - > or ( $ framework - > dump_error ) ;
#get stock image for valid transaction
$ t - > get_ok ( "/admin/transactions/1/image" )
- > status_is ( 200 ) - > or ( $ framework - > dump_error ) ;
#Delete valid transaction
$ t - > post_ok ( "/admin/transactions/1/delete" )
- > status_is ( 200 ) - > or ( $ framework - > dump_error )
- > content_like ( qr/Successfully deleted transaction/ ) ;
2017-09-07 13:26:03 +01:00
is $ schema - > resultset ( 'Transaction' ) - > count , 86 ;
2017-09-07 13:20:53 +01:00
#Read deleted transaction
$ t - > get_ok ( "/admin/transactions/1" )
- > content_like ( qr/No transaction found/ ) ;
sub create_random_transaction {
my $ buyer = shift ;
my $ time = shift ;
my $ buyer_result = $ schema - > resultset ( 'User' ) - > find ( { email = > $ buyer } ) - > entity ;
my $ seller_result = $ schema - > resultset ( 'Organisation' ) - > find ( { name = > 'Test Org' } ) - > entity ;
$ schema - > resultset ( 'Transaction' ) - > create ( {
buyer = > $ buyer_result ,
seller = > $ seller_result ,
value = > 10 ,
purchase_time = > $ time ,
} ) ;
}
done_testing ;