Advertisement
Guest User

Untitled

a guest
Jul 26th, 2016
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.50 KB | None | 0 0
  1. use strict;
  2. use warnings;
  3.  
  4. use Tie::IxHash;
  5. use Template;
  6. use Test::More;
  7.  
  8. tie my %hash, 'Tie::IxHash';
  9. %hash = ('one' => 1, 'two' => 2, 'three' => 3);
  10. my %vars = ('hash' => %hash);
  11.  
  12. is_deeply([keys $vars{'hash'}], ['one', 'two', 'three'], 'key order');
  13. is_deeply([values $vars{'hash'}], [1, 2, 3], 'value order');
  14.  
  15. my $t = Template->new(STRICT => 1) || die(Template->error());
  16. my $template = '[% FOREACH k IN hash %][% k.value %][% END %]';
  17. my $output = '';
  18.  
  19. $t->process($template, %vars, $output) || die $t->error();
  20.  
  21. is($output, '123', 'templatized hash order');
  22.  
  23. done_testing(3);
  24.  
  25. ok 1 - key order
  26. ok 2 - value order
  27. not ok 3 - templatized hash order
  28. # Failed test 'templatized hash order'
  29. # at t/wtf.t line 18.
  30. # got: '132'
  31. # expected: '123'
  32. 1..3
  33. # Looks like you failed 1 test of 3.
  34.  
  35. #!/usr/bin/env perl
  36. use strict;
  37. use warnings;
  38. use Tie::IxHash;
  39. use Template;
  40. use Test::More;
  41.  
  42. tie my %hash, 'Tie::IxHash';
  43. %hash = ('one' => 1, 'two' => 2, 'three' => 3);
  44. is_deeply([keys %hash], ['one', 'two', 'three'], 'key order');
  45. is_deeply([values %hash], [1, 2, 3], 'value order');
  46. my @key_order = keys %hash;
  47. my %vars = ( 'hash' => %hash, key_order => @key_order );
  48.  
  49. my $t = Template->new(STRICT => 1) || die(Template->error());
  50. my $template = '[% FOREACH k IN key_order %][% hash.$k %][% END %]';
  51. my $output = '';
  52. $t->process($template, %vars, $output) || die $t->error();
  53. is($output, '123', 'templatized hash order');
  54. done_testing(3);
  55.  
  56. ok 1 - key order
  57. ok 2 - value order
  58. ok 3 - templatized hash order
  59. 1..3
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement