Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision cdc396f5

Von Bernd Bleßmann vor fast 7 Jahren hinzugefügt

  • ID cdc396f5543250ac2cd9ad5b9b45bd2806c8e6c5
  • Vorgänger daa74212
  • Nachfolger ef242c99

Tests CsvImport: run-Methode der Worker verwenden

Vorher wurden der Code der run-Methode aus den Basis-Klassen der Worker
(copy/paste) hier einzeln aufgerufen.

Unterschiede anzeigen:

t/controllers/csvimport/artransactions.t
65 65
sub test_import {
66 66
  my $file = shift;
67 67

  
68
  my $controller = SL::Controller::CsvImport->new();
68
  my $controller = SL::Controller::CsvImport->new(
69
    type => 'ar_transactions'
70
  );
71
  $controller->load_default_profile;
72
  $controller->profile->set(
73
    encoding     => 'utf-8',
74
    sep_char     => ',',
75
    quote_char   => '"',
76
    numberformat => $::myconfig{numberformat},
77
  );
69 78

  
70 79
  my $csv_artransactions_import = SL::Controller::CsvImport::ARTransaction->new(
71 80
    settings    => {'ar_column'          => 'Rechnung',
......
77 86
  );
78 87

  
79 88
  # $csv_artransactions_import->init_vc_by;
80
  $csv_artransactions_import->test_run(0);
81
  $csv_artransactions_import->csv(SL::Helper::Csv->new(file                    => $csv_artransactions_import->file,
82
                                                       profile                 => $csv_artransactions_import->profile,
83
                                                       encoding                => 'utf-8',
84
                                                       ignore_unknown_columns  => 1,
85
                                                       strict_profile          => 1,
86
                                                       case_insensitive_header => 1,
87
                                                       sep_char                => ',',
88
                                                       quote_char              => '"',
89
                                                       ignore_unknown_columns  => 1,
90
                                                     ));
91

  
92
  $csv_artransactions_import->csv->parse;
93

  
94
  $csv_artransactions_import->controller->errors([ $csv_artransactions_import->csv->errors ]) if $csv_artransactions_import->csv->errors;
95

  
96
  return if ( !$csv_artransactions_import->csv->header || $csv_artransactions_import->csv->errors );
97

  
98
  my $headers;
99
  my $i = 0;
100
  foreach my $header (@{ $csv_artransactions_import->csv->header }) {
101

  
102
    my $profile   = $csv_artransactions_import->csv->profile->[$i]->{profile};
103
    my $row_ident = $csv_artransactions_import->csv->profile->[$i]->{row_ident};
104

  
105
    my $h = { headers => [ grep { $profile->{$_} } @{ $header } ] };
106
    $h->{methods} = [ map { $profile->{$_} } @{ $h->{headers} } ];
107
    $h->{used}    = { map { ($_ => 1) }      @{ $h->{headers} } };
108

  
109
    $headers->{$row_ident} = $h;
110
    $i++;
111
  }
112

  
113
  $csv_artransactions_import->controller->headers($headers);
114

  
115
  my $raw_data_headers;
116
  my $info_headers;
117
  foreach my $p (@{ $csv_artransactions_import->csv->profile }) {
118
    my $ident = $p->{row_ident};
119
    $raw_data_headers->{$ident} = { used => { }, headers => [ ] };
120
    $info_headers->{$ident}     = { used => { }, headers => [ ] };
121
  }
122
  $csv_artransactions_import->controller->raw_data_headers($raw_data_headers);
123
  $csv_artransactions_import->controller->info_headers($info_headers);
124

  
125
  my $objects  = $csv_artransactions_import->csv->get_objects;
126
  my @raw_data = @{ $csv_artransactions_import->csv->get_data };
127

  
128
  $csv_artransactions_import->controller->data([ pairwise { no warnings 'once'; { object => $a, raw_data => $b, errors => [], information => [], info_data => {} } } @$objects, @raw_data ]);
129
  $csv_artransactions_import->check_objects;
89
  $csv_artransactions_import->run({test => 0});
130 90

  
131 91
  # don't try and save objects that have errors
132 92
  $csv_artransactions_import->save_objects unless scalar @{$csv_artransactions_import->controller->data->[0]->{errors}};

Auch abrufbar als: Unified diff