test ResultCode for invalid credentials (no userName but password) (#1270)

fix order of parameters in exceptions AreEqual(expected, actual)
This commit is contained in:
Volker Milbrandt
2021-11-13 10:02:55 +01:00
committed by GitHub
parent 258df6bb14
commit 47cd5aa3cd
@@ -1,4 +1,4 @@
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.VisualStudio.TestTools.UnitTesting; using Microsoft.VisualStudio.TestTools.UnitTesting;
using MQTTnet.Adapter; using MQTTnet.Adapter;
using MQTTnet.Client; using MQTTnet.Client;
@@ -34,28 +34,29 @@ namespace MQTTnet.Tests.Server
var ex = await Assert.ThrowsExceptionAsync<MqttConnectingFailedException>(async () => await client.ConnectAsync(clientOptions)); var ex = await Assert.ThrowsExceptionAsync<MqttConnectingFailedException>(async () => await client.ConnectAsync(clientOptions));
Assert.IsInstanceOfType(ex.InnerException, typeof(MqttProtocolViolationException)); Assert.IsInstanceOfType(ex.InnerException, typeof(MqttProtocolViolationException));
Assert.AreEqual("Error while authenticating. If the User Name Flag is set to 0, the Password Flag MUST be set to 0 [MQTT-3.1.2-22].", ex.Message, false); Assert.AreEqual("Error while authenticating. If the User Name Flag is set to 0, the Password Flag MUST be set to 0 [MQTT-3.1.2-22].", ex.Message, false);
Assert.AreEqual(MqttClientConnectResultCode.UnspecifiedError, ex.ResultCode);
} }
} }
[TestMethod] [TestMethod]
public Task Handle_Wrong_UserName() public Task Handle_Wrong_UserName()
{ {
return TestCredentials("x", "Password1"); return TestCredentials("x", "Password1");
} }
[TestMethod] [TestMethod]
public Task Handle_Wrong_Password() public Task Handle_Wrong_Password()
{ {
return TestCredentials("UserName", "x"); return TestCredentials("UserName", "x");
} }
[TestMethod] [TestMethod]
public Task Handle_Wrong_UserName_And_Password() public Task Handle_Wrong_UserName_And_Password()
{ {
return TestCredentials("x", "x"); return TestCredentials("x", "x");
} }
async Task TestCredentials(string userName, string password) private async Task TestCredentials(string userName, string password)
{ {
using (var testEnvironment = CreateTestEnvironment()) using (var testEnvironment = CreateTestEnvironment())
{ {
@@ -68,7 +69,7 @@ namespace MQTTnet.Tests.Server
{ {
c.ReasonCode = MqttConnectReasonCode.BadUserNameOrPassword; c.ReasonCode = MqttConnectReasonCode.BadUserNameOrPassword;
} }
if (c.Password != "Password1") if (c.Password != "Password1")
{ {
c.ReasonCode = MqttConnectReasonCode.BadUserNameOrPassword; c.ReasonCode = MqttConnectReasonCode.BadUserNameOrPassword;
@@ -83,7 +84,7 @@ namespace MQTTnet.Tests.Server
.Build(); .Build();
var ex = await Assert.ThrowsExceptionAsync<MqttConnectingFailedException>(async () => await client.ConnectAsync(clientOptions)); var ex = await Assert.ThrowsExceptionAsync<MqttConnectingFailedException>(async () => await client.ConnectAsync(clientOptions));
Assert.AreEqual(ex.Result.ResultCode, MqttClientConnectResultCode.BadUserNameOrPassword); Assert.AreEqual(MqttClientConnectResultCode.BadUserNameOrPassword, ex.Result.ResultCode);
} }
} }
} }