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

(-)a/t/db_dependent/Koha/Suggestions.t (-2 / +90 lines)
Lines 19-25 Link Here
19
19
20
use Modern::Perl;
20
use Modern::Perl;
21
21
22
use Test::More tests => 5;
22
use Test::More tests => 6;
23
use Test::Exception;
23
24
24
use Koha::Suggestion;
25
use Koha::Suggestion;
25
use Koha::Suggestions;
26
use Koha::Suggestions;
Lines 78-80 is( Koha::Suggestions->search->count, $nb_of_suggestions + 1, 'Delete should hav Link Here
78
79
79
$schema->storage->txn_rollback;
80
$schema->storage->txn_rollback;
80
81
81
- 
82
subtest 'constraints' => sub {
83
    plan tests => 11;
84
    $schema->storage->txn_begin;
85
86
    my $patron = $builder->build_object( { class => "Koha::Patrons" } );
87
    my $biblio = $builder->build_sample_biblio();
88
    my $branch = $builder->build_object( { class => "Koha::Libraries" } );
89
90
    my $suggestion = $builder->build_object(
91
        {
92
            class => "Koha::Suggestions",
93
            value => {
94
                suggestedby  => $patron->borrowernumber,
95
                biblionumber => $biblio->biblionumber,
96
                branchcode   => $branch->branchcode,
97
                managedby    => undef,
98
                acceptedby   => undef,
99
                rejectedby   => undef,
100
                budgetid     => undef,
101
            }
102
        }
103
    );
104
105
    # suggestedby
106
    $patron->delete;
107
    $suggestion = $suggestion->get_from_storage;
108
    is( $suggestion->suggestedby, undef,
109
        "The suggestion is not deleted when the related patron is deleted" );
110
111
    # biblionumber
112
    $biblio->delete;
113
    $suggestion = $suggestion->get_from_storage;
114
    is( $suggestion->biblionumber, undef,
115
        "The suggestion is not deleted when the related biblio is deleted" );
116
117
    # branchcode
118
    $branch->delete;
119
    $suggestion = $suggestion->get_from_storage;
120
    is( $suggestion->branchcode, undef,
121
        "The suggestion is not deleted when the related branch is deleted" );
122
123
    # managerid
124
    throws_ok { $suggestion->managedby(1029384756)->store; }
125
    'Koha::Exceptions::Object::FKConstraint',
126
      'store raises an exception on invalid managerid';
127
    my $manager = $builder->build_object( { class => "Koha::Patrons" } );
128
    $suggestion->managedby( $manager->borrowernumber )->store;
129
    $manager->delete;
130
    $suggestion = $suggestion->get_from_storage;
131
    is( $suggestion->managedby, undef,
132
        "The suggestion is not deleted when the related manager is deleted" );
133
134
    # acceptedby
135
    throws_ok { $suggestion->acceptedby(1029384756)->store; }
136
    'Koha::Exceptions::Object::FKConstraint',
137
      'store raises an exception on invalid acceptedby id';
138
    my $acceptor = $builder->build_object( { class => "Koha::Patrons" } );
139
    $suggestion->acceptedby( $acceptor->borrowernumber )->store;
140
    $acceptor->delete;
141
    $suggestion = $suggestion->get_from_storage;
142
    is( $suggestion->acceptedby, undef,
143
        "The suggestion is not deleted when the related acceptor is deleted" );
144
145
    # rejectedby
146
    throws_ok { $suggestion->rejectedby(1029384756)->store; }
147
    'Koha::Exceptions::Object::FKConstraint',
148
      'store raises an exception on invalid rejectedby id';
149
    my $rejecter = $builder->build_object( { class => "Koha::Patrons" } );
150
    $suggestion->rejectedby( $rejecter->borrowernumber )->store;
151
    $rejecter->delete;
152
    $suggestion = $suggestion->get_from_storage;
153
    is( $suggestion->rejectedby, undef,
154
        "The suggestion is not deleted when the related rejecter is deleted" );
155
156
    # budgetid
157
    throws_ok { $suggestion->budgetid(1029384756)->store; }
158
    'Koha::Exceptions::Object::FKConstraint',
159
      'store raises an exception on invalid budgetid';
160
    my $budget = $builder->build_object( { class => "Koha::Acquisition::Budgets" } );
161
    $suggestion->budgetid( $budget->id )->store;
162
    $budget->delete;
163
    $suggestion = $suggestion->get_from_storage;
164
    is( $suggestion->budgetid, undef,
165
        "The suggestion is not deleted when the related budget is deleted" );
166
167
    $schema->storage->txn_rollback;
168
};
169

Return to bug 22368