@@ -7,35 +7,28 @@ namespace Abc.Zebus.MessageDsl.Tool.Tests;
77[ TestFixture ]
88public class ToolTests
99{
10- private TextWriter _originalOut = null ! ;
11- private TextReader _originalIn = null ! ;
10+ #pragma warning disable NUnit1032
11+ private StringReader _input = null ! ;
1212 private StringWriter _output = null ! ;
13+ private StringWriter _errorOutput = null ! ;
14+ #pragma warning restore NUnit1032
1315
1416 [ SetUp ]
15- public void Setup ( )
17+ public void SetUp ( )
1618 {
17- _originalOut = Console . Out ;
18- _originalIn = Console . In ;
19+ _input = new StringReader ( "" ) ;
1920 _output = new StringWriter ( ) ;
20- Console . SetOut ( _output ) ;
21- }
22-
23- [ TearDown ]
24- public void TearDown ( )
25- {
26- Console . SetOut ( _originalOut ) ;
27- Console . SetIn ( _originalIn ) ;
28-
29- _output ? . Dispose ( ) ;
21+ _errorOutput = new StringWriter ( ) ;
3022 }
3123
3224 [ Test ]
3325 public void should_generate_csharp_with_namespace ( )
3426 {
35- Console . SetIn ( new StringReader ( "TestMessage()" ) ) ;
27+ _input = new StringReader ( "TestMessage()" ) ;
3628
37- var exitCode = Program . Main ( [ "--namespace" , "TestNS" , "--format" , "CSharp" ] ) ;
29+ var exitCode = Run ( [ "--namespace" , "TestNS" , "--format" , "CSharp" ] ) ;
3830 Assert . That ( exitCode , Is . EqualTo ( 0 ) ) ;
31+
3932 var outputString = _output . ToString ( ) ;
4033 Assert . That ( outputString , Does . Contain ( "namespace TestNS" ) ) ;
4134 Assert . That ( outputString , Does . Contain ( "class TestMessage" ) ) ;
@@ -49,8 +42,9 @@ public void should_generate_proto_output_with_empty_namespace_when_not_provided(
4942 {
5043 File . WriteAllText ( tempFile , "TestMessage()" ) ;
5144
52- var exitCode = Program . Main ( [ tempFile , "--format" , "Proto" ] ) ;
45+ var exitCode = Run ( [ tempFile , "--format" , "Proto" ] ) ;
5346 Assert . That ( exitCode , Is . EqualTo ( 0 ) ) ;
47+
5448 var outputString = _output . ToString ( ) ;
5549 Assert . That ( outputString . Contains ( "message TestMessage" ) ) ;
5650 }
@@ -63,23 +57,26 @@ public void should_generate_proto_output_with_empty_namespace_when_not_provided(
6357 [ Test ]
6458 public void should_error_on_file_not_found ( )
6559 {
66- var exitCode = Program . Main ( [ "invalid_file.msg" ] ) ;
60+ var exitCode = Run ( [ "invalid_file.msg" ] ) ;
6761 Assert . That ( exitCode , Is . EqualTo ( 1 ) ) ;
6862 }
6963
7064 [ Test ]
7165 public void should_error_on_directory ( )
7266 {
7367 var aDirectory = Environment . CurrentDirectory ;
74- var exitCode = Program . Main ( [ aDirectory ] ) ;
68+ var exitCode = Run ( [ aDirectory ] ) ;
7569 Assert . That ( exitCode , Is . EqualTo ( 1 ) ) ;
7670 }
7771
7872 [ Test ]
7973 public void should_error_on_invalid_msg ( )
8074 {
81- Console . SetIn ( new StringReader ( "InvalidSyntax" ) ) ;
82- var exitCode = Program . Main ( [ ] ) ;
75+ _input = new StringReader ( "InvalidSyntax" ) ;
76+ var exitCode = Run ( [ ] ) ;
8377 Assert . That ( exitCode , Is . EqualTo ( 1 ) ) ;
8478 }
79+
80+ private int Run ( string [ ] args )
81+ => Program . Run ( args , _input , _output , _errorOutput ) ;
8582}
0 commit comments