Fix UnitTests.

This commit is contained in:
Christian Kratky
2020-04-03 23:08:54 +02:00
parent db906eca24
commit 7a24970035
2 changed files with 6 additions and 23 deletions
@@ -1,32 +1,16 @@
using System;
using System.ComponentModel;
using System.Linq;
namespace MQTTnet.Extensions
{
public static class UserPropertyExtension
{
public static string GetUserProperty(this MqttApplicationMessage message, string propertyName, StringComparison comparisonType = StringComparison.OrdinalIgnoreCase)
public static string GetUserProperty(this MqttApplicationMessage message, string propertyName, StringComparison comparisonType = StringComparison.Ordinal)
{
if (message == null) throw new ArgumentNullException(nameof(message));
if (propertyName == null) throw new ArgumentNullException(nameof(propertyName));
return message.UserProperties?.SingleOrDefault(up => up.Name.Equals(propertyName, comparisonType))?.Value;
}
public static T GetUserProperty<T>(this MqttApplicationMessage message, string propertyName, StringComparison comparisonType = StringComparison.OrdinalIgnoreCase)
{
var value = GetUserProperty(message, propertyName, comparisonType);
var typeDescriptor = TypeDescriptor.GetConverter(typeof(T));
try
{
return (T) typeDescriptor.ConvertFromString(value);
}
catch (Exception ex)
{
throw new InvalidOperationException($"Cannot convert value({value ?? "null"}) of UserProperty({propertyName}) to {typeof(T).FullName}.", ex);
}
}
}
}