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

(-)a/t/db_dependent/Koha/Object/Mixin/AdditionalFields.t (-2 / +130 lines)
Lines 1-7 Link Here
1
#!/usr/bin/perl
1
#!/usr/bin/perl
2
2
3
use Modern::Perl;
3
use Modern::Perl;
4
use Test::More tests => 2;
4
use Test::More tests => 4;
5
use t::lib::TestBuilder;
5
use t::lib::TestBuilder;
6
use String::Random qw(random_string);
6
use String::Random qw(random_string);
7
use Koha::Database;
7
use Koha::Database;
Lines 89-91 subtest 'set_additional_fields with marcfield_mode = "set"' => sub { Link Here
89
89
90
    $schema->txn_rollback;
90
    $schema->txn_rollback;
91
};
91
};
92
- 
92
93
subtest 'get_additional_field_values_for_template' => sub {
94
    plan tests => 2;
95
96
    $schema->txn_begin;
97
98
    my $biblio       = $builder->build_sample_biblio();
99
    my $subscription = Koha::Subscription->new(
100
        {
101
            biblionumber => $biblio->biblionumber,
102
        }
103
    );
104
    $subscription->store()->discard_changes();
105
106
    my $field = Koha::AdditionalField->new(
107
        {
108
            tablename  => 'subscription',
109
            name       => random_string( 'c' x 100 )
110
        }
111
    );
112
    $field->store()->discard_changes();
113
114
    my $field2 = Koha::AdditionalField->new(
115
        {
116
            tablename  => 'subscription',
117
            name       => random_string( 'c' x 100 )
118
        }
119
    );
120
    $field2->store()->discard_changes();
121
122
    my $value = 'some value';
123
    $subscription->set_additional_fields(
124
        [
125
            {
126
                id    => $field->id,
127
                value => $value . ' 1',
128
            },
129
            {
130
                id    => $field->id,
131
                value => $value . ' 2',
132
            },
133
            {
134
                id    => $field2->id,
135
                value => 'second field',
136
            },
137
        ]
138
    );
139
140
    my $template_additional_field_values = $subscription->get_additional_field_values_for_template;
141
142
    is(
143
        ref($template_additional_field_values), 'HASH',
144
        '->get_additional_field_values_for_template should return a hash'
145
    );
146
    is_deeply(
147
        $template_additional_field_values,
148
        { $field->id => [ $value . ' 1', $value . ' 2' ], $field2->id => ['second field'] },
149
        '->get_additional_field_values_for_template should return the correct values'
150
    );
151
152
    $schema->txn_rollback;
153
};
154
155
subtest 'add_additional_fields' => sub {
156
    plan tests => 1;
157
158
    $schema->txn_begin;
159
160
    Koha::AdditionalFields->search->delete;
161
162
    my $biblio       = $builder->build_sample_biblio();
163
    my $subscription = Koha::Subscription->new(
164
        {
165
            biblionumber => $biblio->biblionumber,
166
        }
167
    );
168
    $subscription->store()->discard_changes();
169
170
    my $field = Koha::AdditionalField->new(
171
        {
172
            tablename => 'subscription',
173
            name      => random_string( 'c' x 100 )
174
        }
175
    );
176
    $field->store()->discard_changes();
177
178
    my $field2 = Koha::AdditionalField->new(
179
        {
180
            tablename => 'subscription',
181
            name      => random_string( 'c' x 100 )
182
        }
183
    );
184
    $field2->store()->discard_changes();
185
186
    my $value = 'some value';
187
    $subscription->set_additional_fields(
188
        [
189
            {
190
                id    => $field->id,
191
                value => $value . ' 1',
192
            },
193
            {
194
                id    => $field->id,
195
                value => $value . ' 2',
196
            }
197
        ]
198
    );
199
200
    $subscription->add_additional_fields(
201
        {
202
            $field2->id => [
203
                'second field'
204
            ],
205
        },
206
        'subscription'
207
    );
208
209
    my $template_additional_field_values = $subscription->get_additional_field_values_for_template;
210
211
212
213
    is_deeply(
214
        $template_additional_field_values,
215
        { $field->id => [ $value . ' 1', $value . ' 2' ], $field2->id => ['second field'] },
216
        '->add_additional_fields should have only added to existing field values'
217
    );
218
219
    $schema->txn_rollback;
220
};

Return to bug 35044