SshClientTest_Dispose_Disconnected.cs 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. using Microsoft.VisualStudio.TestTools.UnitTesting;
  2. using Moq;
  3. namespace Renci.SshNet.Tests.Classes
  4. {
  5. [TestClass]
  6. public class SshClientTest_Dispose_Disconnected
  7. {
  8. private Mock<IServiceFactory> _serviceFactoryMock;
  9. private Mock<ISession> _sessionMock;
  10. private SshClient _sshClient;
  11. private ConnectionInfo _connectionInfo;
  12. [TestInitialize]
  13. public void Setup()
  14. {
  15. Arrange();
  16. Act();
  17. }
  18. [TestCleanup]
  19. public void Cleanup()
  20. {
  21. }
  22. protected void Arrange()
  23. {
  24. _connectionInfo = new ConnectionInfo("host", "user", new NoneAuthenticationMethod("userauth"));
  25. _serviceFactoryMock = new Mock<IServiceFactory>(MockBehavior.Strict);
  26. _sessionMock = new Mock<ISession>(MockBehavior.Strict);
  27. var sequence = new MockSequence();
  28. _serviceFactoryMock.InSequence(sequence).Setup(p => p.CreateSession(_connectionInfo)).Returns(_sessionMock.Object);
  29. _sessionMock.InSequence(sequence).Setup(p => p.Connect());
  30. _sessionMock.InSequence(sequence).Setup(p => p.OnDisconnecting());
  31. _sessionMock.InSequence(sequence).Setup(p => p.Disconnect());
  32. _sessionMock.InSequence(sequence).Setup(p => p.Dispose());
  33. _sshClient = new SshClient(_connectionInfo, false, _serviceFactoryMock.Object);
  34. _sshClient.Connect();
  35. _sshClient.Disconnect();
  36. }
  37. protected void Act()
  38. {
  39. _sshClient.Dispose();
  40. }
  41. [TestMethod]
  42. public void CreateSessionOnServiceFactoryShouldBeInvokedOnce()
  43. {
  44. _serviceFactoryMock.Verify(p => p.CreateSession(_connectionInfo), Times.Once);
  45. }
  46. [TestMethod]
  47. public void DisconnectOnSessionShouldBeInvokedOnce()
  48. {
  49. _sessionMock.Verify(p => p.Disconnect(), Times.Once);
  50. }
  51. [TestMethod]
  52. public void DisposeOnSessionShouldBeInvokedOnce()
  53. {
  54. _sessionMock.Verify(p => p.Dispose(), Times.Once);
  55. }
  56. [TestMethod]
  57. public void OnDisconnectingOnSessionShouldBeInvokedOnce()
  58. {
  59. _sessionMock.Verify(p => p.OnDisconnecting(), Times.Once);
  60. }
  61. }
  62. }