aboutsummaryrefslogtreecommitdiff
path: root/t/conf02.t
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2017-02-16 14:28:01 +0200
committerSergey Poznyakoff <gray@gnu.org.ua>2017-02-16 16:08:43 +0200
commite547b7507e6878efdccb744b7d6cd5250c6c69b9 (patch)
tree89bba96184b32d831e06bafb8ed38bd376cb92e7 /t/conf02.t
parent0cd31637a354ba5c0171a5f4ce8243f12739fda4 (diff)
downloadbeam-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.t45
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

Return to:

Send suggestions and report system problems to the System administrator.