1 // ****************************************************************
2 // Copyright 2007, Charlie Poole
3 // This is free software licensed under the NUnit license. You may
4 // obtain a copy of the license at http://nunit.org/?p=license&r=2.4
5 // ****************************************************************
12 public class EventListenerTextWriter
: TextWriter
14 private EventListener eventListener
;
15 private TestOutputType type
;
17 public EventListenerTextWriter( EventListener eventListener
, TestOutputType type
)
19 this.eventListener
= eventListener
;
22 override public void Write(char aChar
)
24 this.eventListener
.TestOutput( new TestOutput( aChar
.ToString(), this.type
) );
27 override public void Write(string aString
)
29 this.eventListener
.TestOutput( new TestOutput( aString
, this.type
) );
32 override public void WriteLine(string aString
)
34 this.eventListener
.TestOutput( new TestOutput( aString
+ this.NewLine
, this.type
) );
37 override public System
.Text
.Encoding Encoding
39 get { return Encoding.Default; }
44 /// This wrapper adds buffering to improve cross-domain performance.
46 public class BufferedEventListenerTextWriter
: TextWriter
48 private EventListener eventListener
;
49 private TestOutputType type
;
50 private const int MAX_BUFFER
= 1024;
51 private StringBuilder sb
= new StringBuilder( MAX_BUFFER
);
53 public BufferedEventListenerTextWriter( EventListener eventListener
, TestOutputType type
)
55 this.eventListener
= eventListener
;
59 public override Encoding Encoding
63 return Encoding
.Default
;
67 override public void Write(char ch
)
76 override public void Write(string str
)
85 override public void WriteLine(string str
)
90 sb
.Append( base.NewLine
);
95 override public void Flush()
101 TestOutput output
= new TestOutput(sb
.ToString(), this.type
);
102 this.eventListener
.TestOutput( output
);
108 private void CheckBuffer()
110 if ( sb
.Length
>= MAX_BUFFER
)