]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/support-scripts/test-scripts/container.pl
929d3cb02b996d176f8c622285afb88ec69eb357
[Evergreen.git] / Open-ILS / src / support-scripts / test-scripts / container.pl
1 #!/usr/bin/perl
2
3 #----------------------------------------------------------------
4 # Code for testing the container API
5 #----------------------------------------------------------------
6
7 require '../oils_header.pl';
8 use vars qw/ $apputils $memcache $user $authtoken $authtime 
9         $AUTH $STORAGE $SEARCH $CIRC $CAT $MATH $SETTINGS $ACTOR /;
10 use strict; use warnings;
11
12
13 my $config              = shift; 
14 my $username    = shift || 'admin';
15 my $password    = shift || 'open-ils';
16
17 my %types;
18 my $meth = 'open-ils.storage.direct.container';
19 $types{'biblio'}                        = "biblio_record_entry_bucket";
20 $types{'callnumber'}            = "call_number_bucket";
21 $types{'copy'}                          = "copy_bucket";
22 $types{'user'}                          = "user_bucket";
23
24 # XXX These will depend on the data you have available.
25 # we need a "fetch_any" method to resolve this
26 my %ttest;
27 $ttest{'biblio'}                        = 40791;
28 $ttest{'callnumber'}            = 1;
29 $ttest{'copy'}                          = 420795;
30 $ttest{'user'}                          = 3;
31
32 my %containers;
33 my %items;
34
35 sub go {
36         osrf_connect($config);
37         oils_login($username, $password);
38         oils_fetch_session($authtoken);
39         containers_create();
40         items_create();
41         items_delete();
42         containers_delete();
43 }
44
45 go();
46
47 #----------------------------------------------------------------
48
49 sub containers_create {
50
51         for my $type ( keys %types ) {
52                 my $bucket = "Fieldmapper::container::" . $types{$type};
53                 $bucket = $bucket->new;
54                 $bucket->owner($user->id);
55                 $bucket->name("TestBucket");
56                 $bucket->btype("TestType");
57         
58                 my $resp = simplereq($ACTOR, 
59                         'open-ils.actor.container.create',
60                         $authtoken, $type, $bucket );
61         
62                 oils_event_die($resp);
63                 printl("Created new $type bucket with id $resp");
64                 $containers{$type} = $resp;
65         }
66 }
67
68
69 sub items_create {
70         for my $type ( keys %types ) {
71                 my $id = $containers{$type};
72
73                 my $item = "Fieldmapper::container::" . $types{$type} . "_item";
74                 $item = $item->new;
75
76                 $item->bucket($id);
77                 $item->target_copy($ttest{$type}) if $type eq 'copy';
78                 $item->target_call_number($ttest{$type}) if $type eq 'callnumber';
79                 $item->target_biblio_record_entry($ttest{$type}) if $type eq 'biblio';
80                 $item->target_user($ttest{$type}) if $type eq 'user';
81         
82                 my $resp = simplereq($ACTOR, 
83                         'open-ils.actor.container.item.create',
84                         $authtoken, $type, $item );
85         
86                 oils_event_die($resp);
87                 printl("Created new $type bucket item with id $resp");
88                 $items{$type} = $resp;
89         }
90 }
91
92
93 sub items_delete {
94         for my $type ( keys %types ) {
95                 my $id = $items{$type};
96
97                 my $resp = simplereq($ACTOR, 
98                         'open-ils.actor.container.item.delete',
99                         $authtoken, $type, $id );
100         
101                 oils_event_die($resp);
102                 printl("Deleted $type bucket item with id $id");
103         }
104 }
105
106
107 sub containers_delete {
108         for my $type (keys %containers) {
109                 my $id = $containers{$type};
110
111                 my $resp = simplereq( $ACTOR,
112                         'open-ils.actor.container.delete',
113                         $authtoken, $type, $id );
114
115                 oils_event_die($resp);
116                 printl("Deleted bucket $id");
117         }
118 }
119         
120