Peace/db_tests/00003-application-dao.t

105 lines
3.4 KiB
Perl

#!/usr/bin/env perl
use v5.30.0;
use strict;
use warnings;
use Data::Dumper;
use Test::Most tests => 4;
use DateTime;
use Peace;
use Peace::DB;
use Peace::Model::Developer;
use Peace::DAO::Developer;
use Peace::Model::Application;
use Peace::DAO::Application;
{
## GIVEN
my $current_date = DateTime->now;
my $peace = Peace->new;
my $home = $ENV{HOME};
my $config =
$peace->plugin(
JSONConfig => { file => "$home/.config/peace/peace.conf" } );
my $dbh = Peace::DB->dbh( config => $config );
my $secret_bcrypt = 'hola';
my $developer = Peace::Model::Developer->new(
name => 'Larry',
surname => 'Wall',
email => 'larry@perl.org',
country => 'US',
verified => 0,
secret_bcrypt => $secret_bcrypt
);
my $developer_dao = Peace::DAO::Developer->new( dbh => $dbh );
$developer_dao->create( developer => $developer );
my $application = Peace::Model::Application->new(
name => 'Desfronificator',
description => 'Desfronifies the files.',
url => 'desfronificator.example.com',
developer => $developer,
price => 0,
flatpak_builder_file => './resources/com.example.desfronificator.yml',
git_repo =>
'https://git.desfronificator.example.com/larry/desfronificator.git',
verified => 0,
);
my $application_dao = Peace::DAO::Application->new( dbh => $dbh );
## WHEN
$application_dao->create( application => $application );
## THEN
ok $application->uuid, 'Generated uuid.';
ok $application->date_creation > $current_date, 'The date is recent.';
}
{
## GIVEN
my $current_date = DateTime->now;
my $peace = Peace->new;
my $home = $ENV{HOME};
my $config =
$peace->plugin(
JSONConfig => { file => "$home/.config/peace/peace.conf" } );
my $dbh = Peace::DB->dbh( config => $config );
my $secret_bcrypt = 'hola';
my $developer = Peace::Model::Developer->new(
name => 'Larry',
surname => 'Wall',
email => 'larry@perl.org',
country => 'US',
verified => 0,
secret_bcrypt => $secret_bcrypt,
dbh => $dbh,
);
my $developer_dao = Peace::DAO::Developer->new( dbh => $dbh );
$developer_dao->create( developer => $developer );
my $application = Peace::Model::Application->new(
name => 'Desfronificator',
description => 'Desfronifies the files.',
url => 'desfronificator.example.com',
developer => $developer,
price => 0,
flatpak_builder_file => './resources/com.example.desfronificator.yml',
git_repo =>
'https://git.desfronificator.example.com/larry/desfronificator.git',
verified => 0,
);
my $application_dao = Peace::DAO::Application->new( dbh => $dbh );
$application_dao->create( application => $application );
## WHEN
my $applications = $developer->applications;
## THEN
ok @$applications, 'Applications was at least a element.';
ok $applications->[0]->isa('Peace::Model::Application'),
'Application is made of developer.';
}