ChannelTestBase.cs 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. using Microsoft.Extensions.Logging.Abstractions;
  2. using Microsoft.VisualStudio.TestTools.UnitTesting;
  3. using Moq;
  4. namespace Renci.SshNet.Tests.Classes.Channels
  5. {
  6. public abstract class ChannelTestBase
  7. {
  8. internal Mock<ISession> SessionMock { get; private set; }
  9. internal Mock<IConnectionInfo> ConnectionInfoMock { get; private set; }
  10. [TestInitialize]
  11. public void Initialize()
  12. {
  13. Arrange();
  14. Act();
  15. }
  16. protected abstract void SetupData();
  17. protected void CreateMocks()
  18. {
  19. SessionMock = new Mock<ISession>(MockBehavior.Strict);
  20. SessionMock.Setup(p => p.SessionLoggerFactory).Returns(NullLoggerFactory.Instance);
  21. ConnectionInfoMock = new Mock<IConnectionInfo>(MockBehavior.Strict);
  22. }
  23. protected abstract void SetupMocks();
  24. protected virtual void Arrange()
  25. {
  26. SetupData();
  27. CreateMocks();
  28. SetupMocks();
  29. }
  30. protected abstract void Act();
  31. }
  32. }