File: 007-config-includes.t

package info (click to toggle)
libconfig-record-perl 1.1.2-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd, wheezy
  • size: 212 kB
  • ctags: 14
  • sloc: perl: 516; sh: 34; makefile: 2
file content (77 lines) | stat: -rw-r--r-- 1,732 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# -*- perl -*- $Id: 005Config.t,v 1.8 2006/01/27 16:25:50 dan Exp $

use Test::More tests => 6;

BEGIN { use_ok("Config::Record") }

#$| = undef;
use strict;
use warnings;
use Carp qw(confess);
use Test::Harness;
use File::Temp qw(tempfile);
use IO::File;

my ($fh, $file) = tempfile("tmpXXXXXXX", UNLINK => 1);
my ($subfh1, $subfile1) = tempfile("tmpXXXXXXX", UNLINK => 1);
my ($subfh2, $subfile2) = tempfile("tmpXXXXXXX", UNLINK => 1);
my ($subfh3, $subfile3) = tempfile("tmpXXXXXXX", UNLINK => 1);

my $config = <<END;
  wibble = \@include($subfile1)
  staff = (
    \@include($subfile2)
    \@include($subfile3)
  )
END

my $subconfig1 = <<END;
    nice = {
      ooh = (
        weee
        {
          aah = sfd
          oooh = "   Weeee   "
        }
      )
    }
END

my $subconfig2 = <<END;
  firstname = Joe
  lastname = Bloggs
END

my $subconfig3 = <<END;
  firstname = John
  lastname = Doe
END

print $fh $config;
close $fh;

print $subfh1 $subconfig1;
close $subfh1;
print $subfh2 $subconfig2;
close $subfh2;
print $subfh3 $subconfig3;
close $subfh3;

# First test the constructor with a filename
my $cfg = Config::Record->new(file => $file,
			      features => { includes => 1 },
			      debug => ($ENV{TEST_DEBUG} || 0));

# Test nested hash/array lookups
ok(defined $cfg->get("wibble/nice"), "Hash key defined");
ok(defined $cfg->get("wibble/nice/ooh"), "Hash, hash key defined");
ok($cfg->get("wibble/nice/ooh", ["oooh"])->[0] eq "weee", "Hash, hash, array value");

is_deeply($cfg->get("staff/[0]"), { firstname => "Joe", lastname => "Bloggs" }, "First person");
is_deeply($cfg->get("staff/[1]"), { firstname => "John", lastname => "Doe" }, "First person");

exit 0;

# Local Variables:
# mode: cperl
# End: