NAME
Mojo::Hakkefuin::Test::Backend - A part of Unit Testing
SYNOPSIS
use Mojo::Hakkefuin::Test::Backend
# Initialization for SQLite
my $btest = Mojo::Hakkefuin::Test::Backend->new(
via => 'sqlite',
dir => '/home/user/mojo/app/t/path',
);
$backend = $btest->backend;
$db = $backend->sqlite->db;
ok $db->ping, 'SQLite connected';
# Initialization for MariaDB/MySQL
my $btest = Mojo::Hakkefuin::Test::Backend->new(
via => 'mariadb',
dir => 'migrations',
dsn => 'mariadb://username:password@hostname/database'
);
my $btest = Mojo::Hakkefuin::Test::Backend->new(
via => 'mysql',
dir => 'migrations',
dsn => 'mysql://username:password@hostname/database'
);
$backend = $btest->backend;
$db = $backend->mariadb->db;
ok $db->ping, 'MariaDB connected';
# Initialization for PostgreSQL
my $btest = Mojo::Hakkefuin::Test::Backend->new(
via => 'pg',
dir => 'migrations',
dsn => 'postgresql://username:password@hostname/database'
);
$backend = $btest->backend;
$db = $backend->pg->db;
ok $db->ping, 'PostgreSQL connected';
# Switch from another Backend
my $btest = Mojo::Hakkefuin::Test::Backend->new(
via => 'sqlite',
dir => '/home/user/mojo/app/t/path',
);
$backend = $btest->backend;
$db = $backend->sqlite->db;
ok $db->ping, 'SQLite connected';
$btest->via('mysql');
$btest->dsn('mariadb://username:password@hostname/database');
$btest->load_backend;
$backend = $btest->backend;
$db = $backend->mariadb->db;
ok $db->ping, 'MariaDB connected';
$btest->via('mariadb');
$btest->dsn('mariadb://username:password@hostname/database');
$btest->load_backend;
$backend = $btest->backend;
$db = $backend->mariadb->db;
ok $db->ping, 'MariaDB connected';
$btest->via('pg');
$btest->dsn('postgresql://username:password@hostname/database');
$btest->load_backend;
$backend = $btest->backend;
$db = $backend->pg->db;
ok $db->ping, 'PostgreSQL connected';
DESCRIPTION
This module is only for unit testing purposes to test each backend.
ATTRIBUTES
Mojo::Hakkefuin::Test::Backend inherits all attributes from Mojo::Hakkefuin::Backend and implements the following new ones.
via
# When initialization Module - Use SQLite
my $btest = Mojo::Hakkefuin::Test::Backend->new(
....
via => 'sqlite',
...
);
# When initialization Module - Use MariaDB/MySQL
my $btest = Mojo::Hakkefuin::Test::Backend->new(
....
via => 'mariadb',
...
);
# or
my $btest = Mojo::Hakkefuin::Test::Backend->new(
....
via => 'mysql',
...
);
# When initialization Module - Use PostgreSQL
my $btest = Mojo::Hakkefuin::Test::Backend->new(
....
via => 'pg',
...
);
# use as a method
$btest->via;
$btest->via('sqlite');
$btest->via('mariadb');
$btest->via('mysql');
$btest->via('pg');
Specify of backend via MariaDB/MySQL or SQLite or PostgreSQL. This attribute by default contains <sqlite>.
dir
# Example use as a config
my $backend = Mojo::Hakkefuin::Backend::mariadb->new(
...
dir => '/home/user/mojo/app/path/',
...
);
# use as a method
my $backend = $backend->dir;
$backend->dir('/home/user/mojo/app/path/');
METHODS
Mojo::Hakkefuin::Test::Backend inherits all methods from Mojo::Hakkefuin::Backend and implements the following new ones.
load_backend
$btest->load_backend;
This method will be used after changing the backend using the "via" attribute.
example_data
$btest->example_data($identify);
To generate example data Cookies and CSRF hash.
new
my $btest = Mojo::Hakkefuin::Test::Backend->new(\%attr);
Construct a new Mojo::Hakkefuin::Test::Backend object either from "ATTRIBUTES".
AUTHOR
Achmad Yusri Afandi, yusrideb@cpan.org
COPYRIGHT AND LICENSE
Copyright (C) 2023 by Achmad Yusri Afandi
This program is free software, you can redistribute it and/or modify it under the terms of the Artistic License version 2.0.