File: 06-load-settings.t

package info (click to toggle)
libvalidation-class-perl 7.900057-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, buster
  • size: 1,616 kB
  • sloc: perl: 21,493; makefile: 2
file content (72 lines) | stat: -rw-r--r-- 1,611 bytes parent folder | download | duplicates (5)
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
use FindBin;
use Test::More;
use utf8;
use strict;
use warnings;

{

    use_ok 'Validation::Class';
    use_ok 'Validation::Class::Prototype';
    use_ok 'Validation::Class::Mapping';

}


{

    {
        package TestClass::A;
        use Validation::Class;

        field 'test_a';

        my  $set = Validation::Class->prototype(__PACKAGE__)->configuration->settings;
            $set->{unit} ||= {};
            $set->{unit}->{'test_a'} = { test => 'ok' };
    }
    {
        package TestClass::B;
        use Validation::Class;

        field 'test_b';

        my  $set = Validation::Class->prototype(__PACKAGE__)->configuration->settings;
            $set->{unit} ||= {};
            $set->{unit}->{'test_b'} = { test => 'ok' };
    }
    {
        package TestClass;
        use Validation::Class 'set';

        set roles => ['TestClass::A', 'TestClass::B'];

        my  $set = Validation::Class->prototype(__PACKAGE__)->configuration->settings;
            $set->{unit} ||= {};
            $set->{unit}->{'test'} = { test => 'ok' };
    }
    package main;

    my $t = TestClass->new;

    ok "TestClass" eq ref $t, "TestClass instantiated";

    my $settings = $t->proto->settings;

    ok "Validation::Class::Mapping" eq ref $settings, "TestClass settings initialized";

    my $unit = $settings->{unit};

    ok "HASH" eq ref $unit, "TestClass settings/unit initialized";

    my $data = {
        test   => { test => 'ok' },
        test_a => { test => 'ok' },
        test_b => { test => 'ok' },
    };

    is_deeply $unit, $data, "TestClass settings/unit deeply okay";

}

done_testing();