Acme-FSM

 view release on metacpan or  search on metacpan

t/base/query_switch.t  view on Meta::CPAN

  [qw|                                  pass |],
  sub {                    sub { undef }, { } },
  [                                           ],
  sub {                                   $rc },
  [qw|                                 uturn |]                       ],
 [q|{turns}, {switch} returns explicit (undef), argument is set|,
  [qw|                                                   pass |],
  sub {                                     sub { undef }, { } },
  [qw|                                              clearcase |],
  sub {                                                    $rc },
  [qw|                                                  uturn |]      ],
 [q|{turns}, {switch} returns empty string|,
  [qw|                              pass |],
  sub {                   sub { '' }, { } },
  [                                       ],
  sub {                               $rc },
  [qw|                             turn% |],                          ],
 [q|{turns}, {switch} returns empty string, argument is set|,
  [qw|                                               pass |],
  sub {                                    sub { '' }, { } },
  [qw|                             team_foundation_server |],
  sub {                                                $rc },
  [qw|                                              turn% |]          ],
 [q|{turns}, {switch} returns nil|,
  [qw|                     pass |],
  sub {           sub { 0 }, { } },
  [                              ],
  sub {                      $rc },
  [qw|                   turn%0 |]                                    ],
 [q|{turns}, {switch} returns nil, argument is set|,
  [qw|                                      pass |],
  sub {                            sub { 0 }, { } },
  [qw|                                    siveco |],
  sub {                                       $rc },
  [qw|                                    turn%0 |]                   ],
 [q|{turns}, {switch} returns one item|,
  [qw|                          pass |],
  sub {       sub { q|opencvs| }, { } },
  [                                   ],
  sub {                           $rc },
  [qw|                  turn%opencvs |]                               ],
 [q|{turns}, {switch} returns one item, argument is set|,
  [qw|                                           pass |],
  sub {                        sub { q|opencvs| }, { } },
  [qw|                                       Perforce |],
  sub {                                            $rc },
  [qw|                                   turn%opencvs |]              ],
 [        q|{turns}, {switch} returns two items|,
  [qw|                                   pass |],
  sub { sub { qw| bitkeeper evolution | }, { } },
  [                                            ],
  sub {                                    $rc },
  [qw|                         turn%bitkeeper |]                      ],
 [q|{turns}, {switch} returns two items, argument is set|,
  [qw|                                            pass |],
  sub {          sub { qw| bitkeeper evolution | }, { } },
  [qw|                                            sccs |],
  sub {                                            @$rc },
  [qw|                        turn%bitkeeper evolution |]             ] );

plan tests => sum map          {
  ( grep( $_ eq q|pass|, @$_ ) ? 1 :
    grep( $_ eq q|fail|, @$_ ) ? 1 : 0 ) +
    grep( $_ eq q|noise|, @$_ ) }
    map {               $_->[1] } @data;

foreach my $unit ( @data )                      {
    my( $lfix, $rfix ) = $unit->[2]->();
    $st{START}{switch} = $lfix // $st{START}{switch};
    if( grep $_ eq q|copy|, @{$unit->[1]} )      {
                    AFSMTS_object_wrap $bb, $rfix }
    else                                         {
        AFSMTS_class_wrap { %plug, %$rfix }, \%st }
    AFSMTS_method_wrap $method, @{$unit->[3]};
    if( grep $_ eq q|pass|, @{$unit->[1]} )    {
        is_deeply [ $unit->[4]->() ], $unit->[5], qq|$unit->[0], queried|;
        grep $_ eq q|noise|, @{$unit->[1]}                            or next;
        like $stderr, $unit->[6]{$_}, qq|$unit->[0], $_|
                     foreach keys %{$unit->[6]} }
    elsif( grep $_ eq q|fail|, @{$unit->[1]} ) {
        like $@, $unit->[4], AFSMTS_croakson qq|$unit->[0], queried|;
        grep $_ eq q|noise|, @{$unit->[1]}                            or next;
        Test::More->can( index( $_, '-' ) ? q|like| : q|unlike| )->
        ( $stderr, $unit->[5]{$_}, qq|$unit->[0], $_| )
                     foreach keys %{$unit->[5]} }}

# vim: set filetype=perl



( run in 1.670 second using v1.01-cache-2.11-cpan-39bf76dae61 )