#!/usr/bin/perl -w ############################################################################### # # A test for Spreadsheet::WriteExcel. # # Tests for the Excel DVAL structure used in data validation. # # reverse('©'), September 2008, John McNamara, jmcnamara@cpan.org # use strict; use Spreadsheet::WriteExcel; use Test::More tests => 3; ############################################################################### # # Tests setup # my $test_file = "temp_test_file.xls"; my $workbook = Spreadsheet::WriteExcel->new($test_file); my $worksheet = $workbook->add_worksheet(); my $target; my $result; my $caption; my $dv_count; my $obj_id; ############################################################################### # # Test 1. # $obj_id = 1; $dv_count = 1; $caption = " \tData validation: _store_dval($obj_id, $dv_count)"; $target = join " ", qw( B2 01 12 00 04 00 00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 ); $result = unpack_record($worksheet->_store_dval($obj_id, $dv_count)); is($result, $target, $caption); ############################################################################### # # Test 2. # $obj_id = -1; $dv_count = 1; $caption = " \tData validation: _store_dval($obj_id, $dv_count)"; $target = join " ", qw( B2 01 12 00 04 00 00 00 00 00 00 00 00 00 FF FF FF FF 01 00 00 00 ); $result = unpack_record($worksheet->_store_dval($obj_id, $dv_count)); is($result, $target, $caption); ############################################################################### # # Test 3. # $obj_id = 1; $dv_count = 2; $caption = " \tData validation: _store_dval($obj_id, $dv_count)"; $target = join " ", qw( B2 01 12 00 04 00 00 00 00 00 00 00 00 00 01 00 00 00 02 00 00 00 ); $result = unpack_record($worksheet->_store_dval($obj_id, $dv_count)); is($result, $target, $caption); ############################################################################### # # Unpack the binary data into a format suitable for printing in tests. # sub unpack_record { return join ' ', map {sprintf "%02X", $_} unpack "C*", $_[0]; } # Cleanup $workbook->close(); unlink $test_file; __END__