Merge pull request #11 from freiphone/patch-3
[kivitendo-erp.git] / SL / Dev / File.pm
1 package SL::Dev::File;
2
3 use strict;
4 use base qw(Exporter);
5 our @EXPORT_OK = qw(create_scanned create_uploaded create_created);
6 our %EXPORT_TAGS = (ALL => \@EXPORT_OK);
7
8 use SL::DB::File;
9
10 my %common_params = (
11   object_id   => 1,
12   object_type => 'sales_order',
13 );
14
15 sub create_scanned {
16   my (%params) = @_;
17   $params{source}    = 'scanner1';
18   $params{file_type} = 'document';
19   $params{file_path} = '/var/tmp/'.$params{file_name} if !$params{file_path};
20   open(OUT,"> ".$params{file_path});
21   print OUT $params{file_contents};
22   close(OUT);
23   delete $params{file_contents};
24   my $file = _create_file(%params);
25   unlink($params{file_path});
26   return $file;
27 }
28
29 sub create_uploaded {
30   my (%params) = @_;
31   $params{source}    = 'uploaded';
32   $params{file_type} = 'attachment';
33   return _create_file(%params);
34 }
35
36 sub create_created {
37   my (%params) = @_;
38   $params{source}    = 'created';
39   $params{file_type} = 'document';
40   return _create_file(%params);
41 }
42
43 sub _create_file {
44   my (%params) = @_;
45
46   my $fileobj = SL::File->save(
47     %common_params,
48     mime_type          => 'text/plain',
49     description        => 'Test File',
50     file_type          => $params{file_type},
51     source             => $params{source},
52     file_name          => $params{file_name},
53     file_contents      => $params{file_contents},
54     file_path          => $params{file_path}
55   );
56   return $fileobj;
57 }
58
59 sub get_all          { SL::File->get_all         (%common_params, @_) }
60 sub get_all_count    { SL::File->get_all_count   (%common_params, @_) }
61 sub get_all_versions { SL::File->get_all_versions(%common_params, @_) }
62 sub delete_all       { SL::File->delete_all      (%common_params, @_) }
63
64 1;
65
66 __END__
67
68 =head1 NAME
69
70 SL::Dev::File - create file objects for testing, with minimal defaults
71
72 =head1 FUNCTIONS
73
74 =head2 C<create_scanned %PARAMS>
75
76 =head2 C<create_uploaded %PARAMS>
77
78 =head2 C<create_created %PARAMS>
79
80 =head1 AUTHOR
81
82 Martin Helmling E<lt>martin.helmling@opendynamic.deE<gt>
83
84 =cut