diff --git a/iothub/device/samples/convention-based-samples/TemperatureController/SystemTextJsonWritablePropertyResponse.cs b/iothub/device/samples/convention-based-samples/TemperatureController/SystemTextJsonWritablePropertyResponse.cs
index d0bb306ed7..97a8a84d64 100644
--- a/iothub/device/samples/convention-based-samples/TemperatureController/SystemTextJsonWritablePropertyResponse.cs
+++ b/iothub/device/samples/convention-based-samples/TemperatureController/SystemTextJsonWritablePropertyResponse.cs
@@ -18,13 +18,13 @@ public sealed class SystemTextJsonWritablePropertyResponse : IWritablePropertyRe
///
/// Convenience constructor for specifying the properties.
///
- /// The unserialized property value.
+ /// The unserialized property value.
/// The acknowledgment code, usually an HTTP Status Code e.g. 200, 400.
/// The acknowledgment version, as supplied in the property update request.
/// The acknowledgment description, an optional, human-readable message about the result of the property update.
- public SystemTextJsonWritablePropertyResponse(object propertyValue, int ackCode, long ackVersion, string ackDescription = default)
+ public SystemTextJsonWritablePropertyResponse(object value, int ackCode, long ackVersion, string ackDescription = default)
{
- Value = propertyValue;
+ Value = value;
AckCode = ackCode;
AckVersion = ackVersion;
AckDescription = ackDescription;
diff --git a/iothub/device/tests/ClientPropertyCollectionTests.cs b/iothub/device/tests/ClientPropertyCollectionTests.cs
new file mode 100644
index 0000000000..71c58426c2
--- /dev/null
+++ b/iothub/device/tests/ClientPropertyCollectionTests.cs
@@ -0,0 +1,320 @@
+// Copyright (c) Microsoft. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+using System;
+using System.Collections.Generic;
+using FluentAssertions;
+using Microsoft.Azure.Devices.Shared;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+namespace Microsoft.Azure.Devices.Client.Tests
+{
+ [TestClass]
+ [TestCategory("Unit")]
+ public class ClientPropertyCollectionTests
+ {
+ private const string BoolPropertyName = "boolProperty";
+ private const string DoublePropertyName = "doubleProperty";
+ private const string FloatPropertyName = "floatProperty";
+ private const string IntPropertyName = "intProperty";
+ private const string ShortPropertyName = "shortProperty";
+ private const string StringPropertyName = "stringPropertyName";
+ private const string ObjectPropertyName = "objectPropertyName";
+ private const string ArrayPropertyName = "arrayPropertyName";
+ private const string MapPropertyName = "mapPropertyName";
+ private const string DateTimePropertyName = "dateTimePropertyName";
+
+ private const bool BoolPropertyValue = false;
+ private const double DoublePropertyValue = 1.001;
+ private const float FloatPropertyValue = 1.2f;
+ private const int IntPropertyValue = 12345678;
+ private const short ShortPropertyValue = 1234;
+ private const string StringPropertyValue = "propertyValue";
+
+ private const string ComponentName = "testableComponent";
+ private const string WritablePropertyDescription = "testableWritablePropertyDescription";
+ private const string UpdatedPropertyValue = "updatedPropertyValue";
+
+ private static readonly DateTimeOffset s_dateTimePropertyValue = DateTimeOffset.Now;
+ private static readonly CustomClientProperty s_objectPropertyValue = new CustomClientProperty { Id = 123, Name = "testName" };
+
+ private static readonly List