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/conf02.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/conf02.t')
-rw-r--r-- | t/conf02.t | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/t/conf02.t b/t/conf02.t new file mode 100644 index 0000000..9447060 --- /dev/null +++ b/t/conf02.t @@ -0,0 +1,45 @@ +# -*- perl -*- +use lib 't'; +use strict; +use Test; +use TestConfig; + +plan(tests => 7); + +my %keywords = ( + core => { + section => { + 'retain-interval' => { mandatory => 1 }, + 'tempdir' => 1, + 'verbose' => 1, + } + }, + backend => { + section => { + file => 1 + } + } +); + +my $cfg = new TestConfig(parameters => \%keywords); +ok($cfg->isset('backend','foo','file')); +ok($cfg->isscalar('backend','foo','file')); +ok($cfg->get('backend','foo','file'), 'foo'); + +ok($cfg->isset('core', 'verbose') == 0); + +ok($cfg->issection('backend','foo')); + +$cfg->set('core','verbose','On'); +ok($cfg->get('core','verbose'),'On'); + +$cfg->unset('core','tmpdir'); +ok($cfg->isset('core','tmpdir') == 0); + +__DATA__ +# This is a sample configuration file +[core] + retain-interval = 10 + tempdir = /tmp +[backend foo] + file = foo |