[NUI] Add Tizen.NUI.Tests for tct developing (#2090)
[platform/core/csapi/tizenfx.git] / test / Tizen.NUI.Tests / nunit.framework / Internal / Execution / TextCapture.cs
1 // ***********************************************************************
2 // Copyright (c) 2014 Charlie Poole
3 //
4 // Permission is hereby granted, free of charge, to any person obtaining
5 // a copy of this software and associated documentation files (the
6 // "Software"), to deal in the Software without restriction, including
7 // without limitation the rights to use, copy, modify, merge, publish,
8 // distribute, sublicense, and/or sell copies of the Software, and to
9 // permit persons to whom the Software is furnished to do so, subject to
10 // the following conditions:
11 // 
12 // The above copyright notice and this permission notice shall be
13 // included in all copies or substantial portions of the Software.
14 // 
15 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22 // ***********************************************************************
23 #define PORTABLE
24 #define TIZEN
25 #define NUNIT_FRAMEWORK
26 #define NUNITLITE
27 #define NET_4_5
28 #define PARALLEL
29 #if !SILVERLIGHT && !NETCF && !PORTABLE
30 using System;
31 using System.IO;
32 //using System.Runtime.Remoting.Messaging;
33
34 namespace NUnit.Framework.Internal.Execution
35 {
36     /// <summary>
37     /// The TextCapture class intercepts console output and writes it
38     /// to the current execution context, if one is present on the thread.
39     /// If no execution context is found, the output is written to a
40     /// default destination, normally the original destination of the
41     /// intercepted output.
42     /// </summary>
43     public class TextCapture : TextWriter
44     {
45         private TextWriter _defaultWriter;
46
47         /// <summary>
48         /// Construct a TextCapture object
49         /// </summary>
50         /// <param name="defaultWriter">The default destination for non-intercepted output</param>
51         public TextCapture(TextWriter defaultWriter)
52         {
53             _defaultWriter = defaultWriter;
54         }
55
56         /// <summary>
57         /// Gets the Encoding in use by this TextWriter
58         /// </summary>
59         public override System.Text.Encoding Encoding
60         {
61             get { return _defaultWriter.Encoding; }
62         }
63
64         /// <summary>
65         /// Writes a single character
66         /// </summary>
67         /// <param name="value">The char to write</param>
68         public override void Write(char value)
69         {
70             var context = TestExecutionContext.GetTestExecutionContext();
71
72             if (context != null && context.CurrentResult != null)
73                 context.CurrentResult.OutWriter.Write(value);
74             else
75                 _defaultWriter.Write(value);
76         }
77
78         /// <summary>
79         /// Writes a string
80         /// </summary>
81         /// <param name="value">The string to write</param>
82         public override void Write(string value)
83         {
84             var context = TestExecutionContext.GetTestExecutionContext();
85
86             if (context != null && context.CurrentResult != null)
87                 context.CurrentResult.OutWriter.Write(value);
88             else
89                 _defaultWriter.Write(value);
90         }
91
92         /// <summary>
93         /// Writes a string followed by a line terminator
94         /// </summary>
95         /// <param name="value">The string to write</param>
96         public override void WriteLine(string value)
97         {
98             var context = TestExecutionContext.GetTestExecutionContext();
99
100             if (context != null && context.CurrentResult != null)
101                 context.CurrentResult.OutWriter.WriteLine(value);
102             else
103                 _defaultWriter.WriteLine(value);
104         }
105     }
106 }
107 #endif