SshClientTest_Dispose_Disconnected.cs 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. using Microsoft.VisualStudio.TestTools.UnitTesting;
  2. using Moq;
  3. namespace Renci.SshNet.Tests.Classes
  4. {
  5. [TestClass]
  6. public class SshClientTest_Dispose_Disconnected : 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. _sshClient.Disconnect();
  33. }
  34. protected override void Act()
  35. {
  36. _sshClient.Dispose();
  37. }
  38. [TestMethod]
  39. public void CreateSocketFactoryOnServiceFactoryShouldBeInvokedOnce()
  40. {
  41. ServiceFactoryMock.Verify(p => p.CreateSocketFactory(), Times.Once);
  42. }
  43. [TestMethod]
  44. public void CreateSessionOnServiceFactoryShouldBeInvokedOnce()
  45. {
  46. ServiceFactoryMock.Verify(p => p.CreateSession(_connectionInfo, SocketFactoryMock.Object),
  47. Times.Once);
  48. }
  49. [TestMethod]
  50. public void DisconnectOnSessionShouldNeverBeInvoked()
  51. {
  52. SessionMock.Verify(p => p.Disconnect(), Times.Never);
  53. }
  54. [TestMethod]
  55. public void DisposeOnSessionShouldBeInvokedOnce()
  56. {
  57. SessionMock.Verify(p => p.Dispose(), Times.Once);
  58. }
  59. [TestMethod]
  60. public void OnDisconnectingOnSessionShouldBeInvokedOnce()
  61. {
  62. SessionMock.Verify(p => p.OnDisconnecting(), Times.Once);
  63. }
  64. }
  65. }