diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2017-02-16 14:28:01 +0200 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2017-02-16 16:08:43 +0200 |
commit | e547b7507e6878efdccb744b7d6cd5250c6c69b9 (patch) | |
tree | 89bba96184b32d831e06bafb8ed38bd376cb92e7 /t/conf04.t | |
parent | 0cd31637a354ba5c0171a5f4ce8243f12739fda4 (diff) | |
download | beam-e547b7507e6878efdccb744b7d6cd5250c6c69b9.tar.gz beam-e547b7507e6878efdccb744b7d6cd5250c6c69b9.tar.bz2 |
Improve config parser. Add more tests.
* MANIFEST: Update.
* lib/App/Beam/Config.pm: Rewrite 'error' as method.
Check for missing mandatory statements.
* t/TestConfig.pm: New file.
* t/conf01.t: New file.
* t/conf02.t: New file.
* t/conf03.t: New file.
* t/config.t: Remove.
* t/f.conf: Remove.
Diffstat (limited to 't/conf04.t')
-rw-r--r-- | t/conf04.t | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/t/conf04.t b/t/conf04.t new file mode 100644 index 0000000..2f1d8d1 --- /dev/null +++ b/t/conf04.t @@ -0,0 +1,39 @@ +# -*- perl -*- +use lib 't'; +use strict; +use Test; +use TestConfig; + +plan(tests => 1); + +my %keywords = ( + core => { + section => { + 'retain-interval' => { mandatory => 1 }, + 'tempdir' => 1, + 'verbose' => 1, + } + }, + backend => { + section => { + file => { + section => { + name => { mandatory => 1 }, + local => 1 + } + } + } + } +); + +my $cfg = new TestConfig(parameters => \%keywords, + expect => [ 'mandatory variable "core.retain-interval" not set', + 'mandatory variable "backend.file.name" not set' ]); +ok($cfg->errors()==2); + +__DATA__ +# This is a sample configuration file +[core] + tempdir = /tmp +[backend file] + local = 1 |