summaryrefslogtreecommitdiff
path: root/Data-MultiValued/t/tags-setting.t
blob: 929ad3d1fc450d4e4bf35fc59993bea9908b6ca8 (plain)
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
#!perl 
use strict;
use warnings;
use Test::Most 'die';
use Data::Printer;
use Data::MultiValued::Tags;
use Data::MultiValued::TagsAndRanges;
 
sub test_it {
    my ($obj) = @_;
 
    lives_ok {
        $obj->set({
            tag => 'tag1',
            value => 'a string',
        });
    'setting tag1';
    lives_ok {
        $obj->set({
            tag => 'tag2',
            value => 'another string',
        });
    'setting tag2';
 
    cmp_ok($obj->get({tag => 'tag1'}),
           'eq',
           'a string',
           'getting tag1');
 
    cmp_ok($obj->get({tag => 'tag2'}),
           'eq',
           'another string',
           'getting tag2');
 
    dies_ok {
        $obj->get({tag=>'no such tag'});
    'getting non-existent tag';
 
    dies_ok {
        $obj->get({});
    'default get dies';
 
    $obj->clear({tag=>'tag1'});
 
    dies_ok {
        $obj->get({tag=>'tag1'});
    'getting cleared tag';
 
    cmp_ok($obj->get({tag => 'tag2'}),
           'eq',
           'another string',
           'getting tag2 after clearing');
 
    $obj->clear();
 
    dies_ok {
        $obj->get({tag=>'tag2'});
    'getting tag2 after clearing all dies';
 
}
 
subtest 'tags' => sub {
    my $obj = Data::MultiValued::Tags->new();
    ok($obj,'constructor works');
 
    test_it($obj);
};
 
subtest 'tags and ranges' => sub {
    my $obj = Data::MultiValued::TagsAndRanges->new();
    ok($obj,'constructor works');
 
    test_it($obj);
};
 
done_testing();