Skip to content

Commit 128ac92

Browse files
committed
Revert mail client is available feature
1 parent 678f77a commit 128ac92

File tree

3 files changed

+32
-71
lines changed

3 files changed

+32
-71
lines changed

IntegrationEngine.Core.Tests/Mail/MailClientTest.cs

Lines changed: 18 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ namespace IntegrationEngine.Core.Tests.Mail
1414
{
1515
public class MailClientTest : TestBase<MailClient>
1616
{
17-
public Mock<ITcpClient> MockTcpClient { get; set; }
1817
public Mock<ILog> MockLog { get; set; }
1918

2019
[SetUp]
@@ -26,17 +25,11 @@ public void Setup()
2625
HostName = "hostName",
2726
Port = 0,
2827
};
29-
MockTcpClient = new Mock<ITcpClient>();
30-
Subject.TcpClient = MockTcpClient.Object;
3128
}
3229

3330
[Test]
3431
public void ShouldLogExceptionAndReturnFalseIfMailServerIsNotAvailable()
3532
{
36-
MockTcpClient.Setup(x => x.Connect(
37-
Subject.MailConfiguration.HostName,
38-
Subject.MailConfiguration.Port))
39-
.Throws(new SocketException());
4033
MockLog.Setup(x => x.Error(It.IsAny<SocketException>()));
4134

4235
var actual = Subject.IsServerAvailable();
@@ -45,25 +38,26 @@ public void ShouldLogExceptionAndReturnFalseIfMailServerIsNotAvailable()
4538
MockLog.Verify(x => x.Error(It.IsAny<SocketException>()));
4639
}
4740

48-
[Test]
49-
public void ShouldReturnTrueIfMailServerIsAvailable()
50-
{
51-
var expectedText = "Mail server status: Available";
52-
MockLog.Setup(x => x.Debug(expectedText));
53-
MockTcpClient.Setup(x => x.Connect(
54-
Subject.MailConfiguration.HostName,
55-
Subject.MailConfiguration.Port));
56-
var stream = new MemoryStream();
57-
var responseInBytes = System.Text.Encoding.UTF8.GetBytes("OK");
58-
stream.Write(responseInBytes, 0, responseInBytes.Length);
59-
MockTcpClient.Setup(x => x.GetStream()).Returns(stream);
60-
MockTcpClient.Setup(x => x.Close());
41+
// @TODO Do not mock tcp client, instead test with listener or real mail server.
42+
//[Test]
43+
//public void ShouldReturnTrueIfMailServerIsAvailable()
44+
//{
45+
// var expectedText = "Mail server status: Available";
46+
// MockLog.Setup(x => x.Debug(expectedText));
47+
// MockTcpClient.Setup(x => x.Connect(
48+
// Subject.MailConfiguration.HostName,
49+
// Subject.MailConfiguration.Port));
50+
// var stream = new MemoryStream();
51+
// var responseInBytes = System.Text.Encoding.UTF8.GetBytes("OK");
52+
// stream.Write(responseInBytes, 0, responseInBytes.Length);
53+
// MockTcpClient.Setup(x => x.GetStream()).Returns(stream);
54+
// MockTcpClient.Setup(x => x.Close());
6155

62-
var actual = Subject.IsServerAvailable();
56+
// var actual = Subject.IsServerAvailable();
6357

64-
Assert.That(actual, Is.True);
65-
MockTcpClient.Verify(x => x.Close(), Times.Once);
66-
}
58+
// Assert.That(actual, Is.True);
59+
// MockTcpClient.Verify(x => x.Close(), Times.Once);
60+
//}
6761

6862
[Test]
6963
public void ShouldSendMailMessage()

IntegrationEngine.Core/Mail/MailClient.cs

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ public class MailClient : IMailClient
1313
public ISmtpClient SmtpClient { get; set; }
1414
public MailConfiguration MailConfiguration { get; set; }
1515
public ILog Log { get; set; }
16-
public ITcpClient TcpClient { get; set; }
1716

1817
public MailClient()
1918
{
@@ -42,26 +41,26 @@ public void Send(MailMessage mailMessage)
4241
public bool IsServerAvailable()
4342
{
4443
var isAvailable = false;
45-
try
44+
try
4645
{
47-
if (TcpClient == null)
48-
TcpClient = new TcpClientAdapter();
49-
TcpClient.Connect(MailConfiguration.HostName, MailConfiguration.Port);
50-
using (var stream = TcpClient.GetStream())
46+
using (var client = new TcpClient())
5147
{
52-
using (var writer = new StreamWriter(stream))
53-
using (var reader = new StreamReader(stream))
48+
client.Connect(MailConfiguration.HostName, MailConfiguration.Port);
49+
using (var stream = client.GetStream())
5450
{
55-
writer.WriteLine("EHLO " + MailConfiguration.HostName);
56-
writer.Flush();
57-
stream.Position = 0;
58-
reader.DiscardBufferedData();
59-
isAvailable = reader.ReadLine() != null;
51+
using (var writer = new StreamWriter(stream))
52+
using (var reader = new StreamReader(stream))
53+
{
54+
writer.WriteLine("EHLO " + MailConfiguration.HostName);
55+
writer.Flush();
56+
var response = reader.ReadLine();
57+
if (response != null)
58+
isAvailable = true;
59+
}
6060
}
6161
}
62-
TcpClient.Close();
6362
}
64-
catch(SocketException exception)
63+
catch (SocketException exception)
6564
{
6665
Log.Error(exception);
6766
isAvailable = false;

IntegrationEngine.Core/Mail/TcpClientAdapter.cs

Lines changed: 0 additions & 32 deletions
This file was deleted.

0 commit comments

Comments
 (0)