# NAME
Test::MasterData::Declare - It's testing tool for CSV (and other structures) by DSL.
# SYNOPSIS
use Test::MasterData::Declare;
master_data {
load_csv item => "master-data/item.csv";
subtest "item.type must be like a number and between 1 to 3" => sub {
table item => "type",
like_number => 1 => 3;
};
subtest "item.effect is json structure. effect.energy must be between 1 to 100" => sub {
table item => "effect",
if_column type => 1,
json energy =>
like_number 1 => 100;
}
};
# DESCRIPTION
`Test::MasterData::Declare` is a testing tool for row like structures.
**THE SOFTWARE IS IT'S IN ALPHA QUALITY. IT MAY CHANGE THE API WITHOUT NOTICE.**
# FUNCTIONS
## `master_data { ... }`
There functions are working only in this scope.
## `load_csv $table_name => $csv_path, ...;`
Load csv from `$csv_path`. Loaded rows were referenced from `table`.
## `table $table_name => $column_name, $filters_or_expects...`
Check column value. `$filters_or_expects` is a filter functions (ex. `if_column`), expections (ex. `$like_number`), scalar value, regexp reference, `Test2::Compare::*`, etc...
## `if_column $column_name => $column_condition...`
Filter checking rows. `$column_condition` is a scalar or Test2::Compare::\*.
## `like_number $begin => $end`
## `like_number $expects`
Check value that like a number and between `$begin` to `$end` or equals `$expects`.
## `json $key, $inner_key_or_index`
Inflate column to structure data by json.
## `relation $from_table => $to_table, $from_column => $to_column`
Declare relation the `$drom_table` to `$to_table`.
# LICENSE
Copyright (C) mackee.
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.
# AUTHOR
mackee a.k.a macopy <
[email protected]>