File: 07_cell_handler.t

package info (click to toggle)
libspreadsheet-parseexcel-perl 0.6500-1.1%2Bdeb11u1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 1,852 kB
  • sloc: perl: 9,442; makefile: 12
file content (69 lines) | stat: -rwxr-xr-x 1,664 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#!/usr/bin/perl

use strict;
use warnings;

BEGIN { delete @ENV{qw( LANG LC_ALL LC_DATE )}; }

use Test::More tests => 83;

use_ok ("Spreadsheet::ParseExcel");

my $file = "t/excel_files/Dates.xls";

my @expect = (# Date   Date      Date          Date          Text
    [ 39668,  "8-Aug", 20080808, "2008-08-08", "08/08/2008", "08 Aug 2008" ],
    [ 39672, "12-Aug", 20080812, "2008-08-12", "08/12/2008", "12 Aug 2008" ],
    [ 39790,  "8-Dec", 20081208, "2008-12-08", "12/08/2008", "08 Dec 2008" ],
    [ 39673, "13-Aug", 20080813, "2008-08-13", "08/13/2008", "13 Aug 2008" ],
    );

my $handler_number = 1;

my $cell_cnt;
my $handler1 = sub {
    my ($wb, $idx, $row, $col, $cell) = @_;
	my $R = $row + 1;
	my $C = $col + 1;
    return if $R > 4;
    cmp_ok($handler_number, '==', 1, 'Correct handler');
    parse_second_workbook() if ++$cell_cnt == 10;
	my $cell_pos = ("A".."E")[$col].$R;
	is ($cell->Value, $expect[$row][$C], "Handler 1 value for $cell_pos");
};

my $parser1;
ok (
	$parser1 = Spreadsheet::ParseExcel->new(
		CellHandler => $handler1,
		NotSetCell  => 1,
	),
	"Create parser 1",
);

my $handler2 = sub {
    my ($wb, $idx, $row, $col, $cell) = @_;
	my $R = $row + 1;
	my $C = $col + 1;
    return if $R > 4;
    cmp_ok($handler_number, '==', 2, 'Correct handler');
	my $cell_pos = ("A".."E")[$col].$R;
	is ($cell->Value, $expect[$row][$C], "Handler 2 value for $cell_pos");
};

my $parser2;
ok (
	$parser2 = Spreadsheet::ParseExcel->new(
		CellHandler => $handler2,
		NotSetCell  => 1,
	),
	"Create parser 2",
);

$parser1->parse($file);

sub parse_second_workbook {
  $handler_number = 2;
  $parser2->parse($file);
  $handler_number = 1;
}