2
0

SshClientTest_Dispose_Connected.cs 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. using Microsoft.VisualStudio.TestTools.UnitTesting;
  2. using Moq;
  3. namespace Renci.SshNet.Tests.Classes
  4. {
  5. [TestClass]
  6. public class SshClientTest_Dispose_Connected : BaseClientTestBase
  7. {
  8. private SshClient _sshClient;
  9. private ConnectionInfo _connectionInfo;
  10. protected override void SetupData()
  11. {
  12. _connectionInfo = new ConnectionInfo("host", "user", new NoneAuthenticationMethod("userauth"));
  13. }
  14. protected override void SetupMocks()
  15. {
  16. var sequence = new MockSequence();
  17. ServiceFactoryMock.InSequence(sequence)
  18. .Setup(p => p.CreateSocketFactory())
  19. .Returns(SocketFactoryMock.Object);
  20. ServiceFactoryMock.InSequence(sequence)
  21. .Setup(p => p.CreateSession(_connectionInfo, SocketFactoryMock.Object))
  22. .Returns(SessionMock.Object);
  23. SessionMock.InSequence(sequence).Setup(p => p.Connect());
  24. SessionMock.InSequence(sequence).Setup(p => p.OnDisconnecting());
  25. SessionMock.InSequence(sequence).Setup(p => p.Dispose());
  26. }
  27. protected override void Arrange()
  28. {
  29. base.Arrange();
  30. _sshClient = new SshClient(_connectionInfo, false, ServiceFactoryMock.Object);
  31. _sshClient.Connect();
  32. }
  33. protected override void Act()
  34. {
  35. _sshClient.Dispose();
  36. }
  37. [TestMethod]
  38. public void CreateSocketFactoryOnServiceFactoryShouldBeInvokedOnce()
  39. {
  40. ServiceFactoryMock.Verify(p => p.CreateSocketFactory(), Times.Once);
  41. }
  42. [TestMethod]
  43. public void CreateSessionOnServiceFactoryShouldBeInvokedOnce()
  44. {
  45. ServiceFactoryMock.Verify(p => p.CreateSession(_connectionInfo, SocketFactoryMock.Object),
  46. Times.Once);
  47. }
  48. [TestMethod]
  49. public void DisconnectOnSessionShouldNeverBeInvoked()
  50. {
  51. SessionMock.Verify(p => p.Disconnect(), Times.Never);
  52. }
  53. [TestMethod]
  54. public void DisposeOnSessionShouldBeInvokedOnce()
  55. {
  56. SessionMock.Verify(p => p.Dispose(), Times.Once);
  57. }
  58. [TestMethod]
  59. public void OnDisconnectingOnSessionShouldBeInvokedOnce()
  60. {
  61. SessionMock.Verify(p => p.OnDisconnecting(), Times.Once);
  62. }
  63. }
  64. }