2
2
using System . Threading ;
3
3
using Microsoft . VisualStudio . TestTools . UnitTesting ;
4
4
using Moq ;
5
+ using Renci . SshNet . Connection ;
5
6
using Renci . SshNet . Messages . Transport ;
6
7
7
8
namespace Renci . SshNet . Tests . Classes
8
9
{
9
10
[ TestClass ]
10
- public class BaseClientTest_Connected_KeepAliveInterval_NegativeOne
11
+ public class BaseClientTest_Connected_KeepAliveInterval_NegativeOne : BaseClientTestBase
11
12
{
12
- private Mock < IServiceFactory > _serviceFactoryMock ;
13
- private Mock < ISession > _sessionMock ;
14
13
private BaseClient _client ;
15
14
private ConnectionInfo _connectionInfo ;
16
15
private TimeSpan _keepAliveInterval ;
17
16
private int _keepAliveCount ;
18
17
19
- [ TestInitialize ]
20
- public void Setup ( )
21
- {
22
- Arrange ( ) ;
23
- Act ( ) ;
24
- }
25
-
26
- [ TestCleanup ]
27
- public void Cleanup ( )
28
- {
29
- if ( _client != null )
30
- {
31
- _sessionMock . Setup ( p => p . OnDisconnecting ( ) ) ;
32
- _sessionMock . Setup ( p => p . Dispose ( ) ) ;
33
- _client . Dispose ( ) ;
34
- }
35
- }
36
-
37
- private void SetupData ( )
18
+ protected override void SetupData ( )
38
19
{
39
20
_connectionInfo = new ConnectionInfo ( "host" , "user" , new PasswordAuthenticationMethod ( "user" , "pwd" ) ) ;
40
21
_keepAliveInterval = TimeSpan . FromMilliseconds ( 100d ) ;
41
22
_keepAliveCount = 0 ;
42
23
}
43
24
44
- private void CreateMocks ( )
45
- {
46
- _serviceFactoryMock = new Mock < IServiceFactory > ( MockBehavior . Strict ) ;
47
- _sessionMock = new Mock < ISession > ( MockBehavior . Strict ) ;
48
- }
49
-
50
- private void SetupMocks ( )
25
+ protected override void SetupMocks ( )
51
26
{
52
- _serviceFactoryMock . Setup ( p => p . CreateSession ( _connectionInfo ) )
27
+ _serviceFactoryMock . Setup ( p => p . CreateSocketFactory ( ) )
28
+ . Returns ( _socketFactoryMock . Object ) ;
29
+ _serviceFactoryMock . Setup ( p => p . CreateSession ( _connectionInfo , _socketFactoryMock . Object ) )
53
30
. Returns ( _sessionMock . Object ) ;
54
31
_sessionMock . Setup ( p => p . Connect ( ) ) ;
55
32
_sessionMock . Setup ( p => p . IsConnected ) . Returns ( true ) ;
@@ -58,18 +35,26 @@ private void SetupMocks()
58
35
. Callback ( ( ) => Interlocked . Increment ( ref _keepAliveCount ) ) ;
59
36
}
60
37
61
- protected void Arrange ( )
38
+ protected override void Arrange ( )
62
39
{
63
- SetupData ( ) ;
64
- CreateMocks ( ) ;
65
- SetupMocks ( ) ;
40
+ base . Arrange ( ) ;
66
41
67
42
_client = new MyClient ( _connectionInfo , false , _serviceFactoryMock . Object ) ;
68
43
_client . Connect ( ) ;
69
44
_client . KeepAliveInterval = _keepAliveInterval ;
70
45
}
71
46
72
- protected void Act ( )
47
+ protected override void TearDown ( )
48
+ {
49
+ if ( _client != null )
50
+ {
51
+ _sessionMock . Setup ( p => p . OnDisconnecting ( ) ) ;
52
+ _sessionMock . Setup ( p => p . Dispose ( ) ) ;
53
+ _client . Dispose ( ) ;
54
+ }
55
+ }
56
+
57
+ protected override void Act ( )
73
58
{
74
59
// allow keep-alive to be sent once
75
60
Thread . Sleep ( 150 ) ;
@@ -84,10 +69,16 @@ public void KeepAliveIntervalShouldReturnConfiguredValue()
84
69
Assert . AreEqual ( TimeSpan . FromMilliseconds ( - 1 ) , _client . KeepAliveInterval ) ;
85
70
}
86
71
72
+ [ TestMethod ]
73
+ public void CreateSocketFactoryOnServiceFactoryShouldBeInvokedOnce ( )
74
+ {
75
+ _serviceFactoryMock . Verify ( p => p . CreateSocketFactory ( ) , Times . Once ) ;
76
+ }
77
+
87
78
[ TestMethod ]
88
79
public void CreateSessionOnServiceFactoryShouldBeInvokedOnce ( )
89
80
{
90
- _serviceFactoryMock . Verify ( p => p . CreateSession ( _connectionInfo ) , Times . Once ) ;
81
+ _serviceFactoryMock . Verify ( p => p . CreateSession ( _connectionInfo , _socketFactoryMock . Object ) , Times . Once ) ;
91
82
}
92
83
93
84
[ TestMethod ]
0 commit comments