# 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