Advertisement
Guest User

Untitled

a guest
Jul 20th, 2017
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 1.38 KB | None | 0 0
  1. package ScheduleXML;
  2. use Moose;
  3. use XML::Parser;
  4. use Data::Dumper;
  5.  
  6. has 'number_of_tasks' => (
  7.     is => 'rw',
  8.     isa => 'Int',
  9.     default => '0'
  10. );
  11.  
  12. has 'filename'        => ( is => 'ro', isa => 'Str' );
  13.  
  14. sub BUILD {
  15.     my $self = shift;
  16.     $self->read_file;    
  17. }
  18.  
  19. sub read_file {
  20.     my $self = shift;
  21.    
  22.     if (!-e $self->filename) {
  23.         die '[-ScheduleXML-] Error opening '.$self->filename;
  24.     }
  25.    
  26.     my $parser = new XML::Parser(Style => 'Subs');
  27.     $parser->parsefile($self->filename) or die '[-ScheduleXML-] Error parsing '.$self->filename;
  28. }
  29.  
  30. sub task {
  31.     my $self = shift;
  32.     my $this_tag = shift;
  33.     my %h_Attrs = @_;
  34.     $self->number_of_tasks($self->number_of_tasks + 1);
  35. }
  36.  
  37. sub task_ {
  38.  
  39. }
  40.  
  41. 1;
  42.  
  43.  
  44.  
  45.  
  46. -----------------------NOW, the test program-----------------------------------
  47. #!/usr/bin/perl -w
  48. use strict;
  49.  
  50. use Test::More tests=>2;
  51. use ScheduleXML;
  52.  
  53. my $BASE_TEST_FILES = 'c:/SHARED/Proyectos/Sched/t/';
  54.  
  55. my $f_ScheduleXML = ScheduleXML->new(
  56.     filename => $BASE_TEST_FILES.'res/ScheduleXML_OK_basic.xml'
  57. );
  58.  
  59. #--- Test that the filename is correct
  60. is (
  61.     $f_ScheduleXML->filename,
  62.     $BASE_TEST_FILES.'res/ScheduleXML_OK_basic.xml',
  63.     'The right file has been opened'
  64. );
  65.  
  66. #--- Test if there are 5 tasks in the test xml file
  67. is (
  68.     $f_ScheduleXML->number_of_tasks,
  69.     5,
  70.     'Found 5 tasks'
  71. );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement