diff Lib/IMPL/Test/TAPListener.pm @ 0:03e58a454b20

Создан репозитарий
author Sergey
date Tue, 14 Jul 2009 12:54:37 +0400
parents
children 16ada169ca75
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Lib/IMPL/Test/TAPListener.pm	Tue Jul 14 12:54:37 2009 +0400
@@ -0,0 +1,70 @@
+package IMPL::Test::TAPListener;
+use strict;
+use warnings;
+
+use base qw(IMPL::Object IMPL::Object::Serializable);
+use IMPL::Class::Property;
+use IMPL::Test::Result;
+
+BEGIN {
+    private property _Output => prop_all;
+    private property _testNo => prop_all;
+}
+
+sub CTOR {
+    my ($this,$out) = @_;
+    
+    $this->_Output($out || *STDOUT);
+    $this->_testNo(1);
+}
+
+sub RunPlan {
+    my ($this,$plan) = @_;
+    
+    my $out = $this->_Output;
+    
+    print $out "1..",$plan->Count,"\n";
+}
+
+sub EndPlan {
+    
+}
+
+sub RunUnit {
+    my ($this,$unit) = @_;
+    
+    my $out = $this->_Output;
+    
+    print $out "#\n",join("\n",map "# $_", split /\n/, "Running unit: " . $unit->UnitName, ),"\n#\n";
+}
+
+sub EndUnit {
+    
+}
+
+sub RunTest {
+    
+}
+
+sub EndTest {
+    my ($this,$test,$result) = @_;
+    
+    my $out = $this->_Output;
+    my $n = $this->_testNo;
+    
+    $this->_testNo($n+1);
+    
+    print $out (
+            $result->State == IMPL::Test::Result::SUCCESS ?
+            "ok $n " . join("\n# ", split(/\n/, $result->Name) )
+                :
+            "not ok $n " . (eval { $result->Exception->isa('IMPL::Test::SkipException') } ? '# SKIP ' : '') . join("\n# ", split(/\n/, $result->Name."\n".$result->Exception || '') )
+        ),"\n";
+        
+}
+
+sub save {
+    
+}
+
+1;