View | Details | Raw Unified | Return to bug 10644
Collapse All | Expand All

(-)a/t/db_dependent/ClassSource.t (-1 / +198 lines)
Line 0 Link Here
0
- 
1
#!/usr/bin/perl
2
3
use Modern::Perl;
4
5
use Test::More tests => 24;
6
7
use C4::Context;
8
9
BEGIN {
10
    use_ok('C4::ClassSource');
11
}
12
can_ok( 'C4::ClassSource',
13
    qw( AddClassSortRule
14
        AddClassSource
15
        GetClassSort
16
        GetClassSortRule
17
        GetClassSortRules
18
        GetClassSource
19
        GetClassSources
20
        DelClassSortRule
21
        DelClassSource
22
        GetSourcesForSortRule
23
        ModClassSortRule
24
        ModClassSource)
25
);
26
27
#Start transaction
28
my $dbh = C4::Context->dbh;
29
$dbh->{RaiseError} = 1;
30
$dbh->{AutoCommit} = 0;
31
32
#Start tests
33
$dbh->do(q|DELETE FROM class_sources|);
34
$dbh->do(q|DELETE FROM class_sort_rules|);
35
36
#Test AddClassSortRule
37
my $countSources  = scalar( keys(GetClassSources) );
38
my $countSources2 = scalar( keys(GetClassSortRules) );
39
AddClassSortRule( 'sortrule1', 'description1', 'routine1' );
40
AddClassSortRule( 'sortrule2', 'description2', 'routine2' );
41
is(
42
    scalar( keys(GetClassSortRules) ),
43
    $countSources + 2,
44
    "SortRule1 and SortRules2 have been added"
45
);
46
47
#Test AddClassSource
48
AddClassSource( 'source1', 'Description_source1', 1, 'sortrule1' );
49
AddClassSource( 'source2', 'Description_source2', 0, 'sortrule1' );
50
is(
51
    scalar( keys(GetClassSources) ),
52
    $countSources2 + 2,
53
    "Source1 and source2 have been added"
54
);
55
56
#Test GetClassSortRule
57
is_deeply(
58
    GetClassSortRule('sortrule1'),
59
    {
60
        class_sort_rule => 'sortrule1',
61
        description     => 'description1',
62
        sort_routine    => 'routine1'
63
    },
64
    "GetClassSort gives sortrule1's informations"
65
);
66
is_deeply( GetClassSortRule(), undef,
67
    "GetClassSort without params returns undef" );
68
is_deeply( GetClassSortRule('doesnt_exist'),
69
    undef, "GetClassSort with an id which doesn't exist returns undef" );
70
71
#Test GetClassSortRules
72
my $getsortrules = GetClassSortRules();
73
is_deeply(
74
    $getsortrules,
75
    {
76
        sortrule1 => {
77
            class_sort_rule => 'sortrule1',
78
            description     => 'description1',
79
            sort_routine    => 'routine1'
80
        },
81
        sortrule2 => {
82
            class_sort_rule => 'sortrule2',
83
            description     => 'description2',
84
            sort_routine    => 'routine2'
85
        }
86
    },
87
    "GetClassSortRules returns the id off all SortRule and there informations"
88
);
89
90
#Test GetClassSource
91
my $getsource1 = GetClassSource('source1');
92
is_deeply(
93
    $getsource1,
94
    {
95
        cn_source       => 'source1',
96
        description     => 'Description_source1',
97
        used            => 1,
98
        class_sort_rule => 'sortrule1'
99
    },
100
    "GetClassSource gives source1's informations"
101
);
102
is_deeply( GetClassSource(), undef,
103
    "GetClassSource without params returns undef" );
104
is_deeply( GetClassSource('doesnt_exist'),
105
    undef, "GetClassSource with an id which doesn't exist returns undef" );
106
107
#Test GetClassSources
108
my $getsources = GetClassSources();
109
is_deeply(
110
    $getsources,
111
    {
112
        source1 => {
113
            cn_source       => 'source1',
114
            description     => 'Description_source1',
115
            used            => 1,
116
            class_sort_rule => 'sortrule1'
117
        },
118
        source2 => {
119
            cn_source       => 'source2',
120
            description     => 'Description_source2',
121
            used            => 0,
122
            class_sort_rule => 'sortrule1'
123
        }
124
    },
125
    "GetClassSources returns the id off all sources and there informations"
126
);
127
128
#Test GetClassSort
129
my $getclassSort = GetClassSort( 'source1', 'sortrule1', 'item1' )
130
  ; #Note: Create a warning:" attempting to use non-existent class sorting routine $sort_routine"
131
is( $getclassSort, "SORTRULE1_ITEM1",
132
" the sort key corresponding to Source1 and sortrule1 and item1 is SORTRULE1_ITEM1"
133
);
134
135
#Test GetSourcesForSorSortRule
136
my @sources = GetSourcesForSortRule('sortrule1');
137
is_deeply(
138
    \@sources,
139
    [ 'source1', 'source2' ],
140
    "Sortrule1 has source1 and source2"
141
);
142
@sources = GetSourcesForSortRule();
143
is_deeply( \@sources, [],
144
    "Without params GetSourcesForSortRule returns an empty array" );
145
@sources = GetSourcesForSortRule('doesnt_exist');
146
is_deeply( \@sources, [],
147
    "With a wrong params GetSourcesForSortRule returns an empty array" );
148
149
#Test DelClassSortRule
150
#DelClassSortRule ('sortrule1');
151
#is(scalar (keys (GetClassSortRules)),1,"SortRule1 has been deleted");#FIXME : impossible if some sources exist
152
DelClassSortRule('sortrule2');
153
is( scalar( keys(GetClassSortRules) ), 1, "SortRule2 has been deleted" );
154
DelClassSortRule();
155
is( scalar( keys(GetClassSortRules) ),
156
    1, "Without params DelClassSortRule doesn't do anything" );
157
DelClassSortRule('doesnt_exist');
158
is( scalar( keys(GetClassSortRules) ),
159
    1, "Without wrong id, DelClassSortRule doesn't do anything" );
160
161
#Test DelClassSource
162
DelClassSource('source2');
163
is( scalar( keys(GetClassSources) ), 1, "Source2 has been deleted" );
164
DelClassSource();
165
is( scalar( keys(GetClassSources) ),
166
    1, "Without params DelClassSource doesn't do anything" );
167
DelClassSource('doesnt_exist');
168
is( scalar( keys(GetClassSources) ),
169
    1, "Without wrong id, DelClassSource doesn't do anything" );
170
171
#Test ModClassSortRule
172
ModClassSortRule( 'sortrule1', 'description1_modified', 'routine1_modified' );
173
is_deeply(
174
    GetClassSortRule('sortrule1'),
175
    {
176
        class_sort_rule => 'sortrule1',
177
        description     => 'description1_modified',
178
        sort_routine    => 'routine1_modified'
179
    },
180
    "Sortrule1 has been modified"
181
);
182
183
#Test ModClassSource
184
ModClassSource( 'source1', 'Description_source1_modified', 0, 'sortrule1' );
185
is_deeply(
186
    GetClassSource('source1'),
187
    {
188
        cn_source       => 'source1',
189
        description     => 'Description_source1_modified',
190
        used            => 0,
191
        class_sort_rule => 'sortrule1'
192
    },
193
    "Source1 has been modified"
194
);
195
196
#End transaction
197
$dbh->rollback;
198

Return to bug 10644