From 449bd41cb35281ab106949ff91f09c41b5362964 Mon Sep 17 00:00:00 2001 From: Drew Tingen Date: Tue, 14 Jul 2020 14:38:03 -0400 Subject: [PATCH] feat: Adding GetPropertyInfo test --- .../Extensions/ReflectionExtensionsTest.cs | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/ICD.Common.Utils.Tests/Extensions/ReflectionExtensionsTest.cs b/ICD.Common.Utils.Tests/Extensions/ReflectionExtensionsTest.cs index 3555b09..8b0dac8 100644 --- a/ICD.Common.Utils.Tests/Extensions/ReflectionExtensionsTest.cs +++ b/ICD.Common.Utils.Tests/Extensions/ReflectionExtensionsTest.cs @@ -192,6 +192,31 @@ namespace ICD.Common.Utils.Tests.Extensions } + [Test] + public void GetPropertyInfoTest() + { + var testClass = new PropertyTestClass(); + + // Test GetPropertyInfo at various levels + Assert.AreEqual(testClass.GetType().GetProperty("PropertyString"), + testClass.GetPropertyInfo("PropertyString"), + "First level property not expected value"); + Assert.AreEqual(testClass.InternalClass.GetType().GetProperty("InternalPropertyString"), + testClass.GetPropertyInfo("InternalClass", "InternalPropertyString"), + "Second level property not expected value"); + Assert.AreEqual(testClass.InternalClass.DeepClass.GetType().GetProperty("DeepPropertyString"), + testClass.GetPropertyInfo("InternalClass", "DeepClass", "DeepPropertyString"), + "Third level property not expected value"); + + // Property that doesn't exits should return null + Assert.IsNull(testClass.GetPropertyInfo("InternalClass", "DeepClass", "NonExistent")); + Assert.IsNull(testClass.GetPropertyInfo("FakeFirstLevel", "FakeSecondLevel" , "FakeThridLevel")); + Assert.IsNull(testClass.GetPropertyInfo("InternalClass", "FakeSecondLevel", "ThirdLevelCanNotBeReal")); + Assert.IsNull(testClass.GetPropertyInfo("InternalClass", "FakeSecondLevel")); + Assert.IsNull(testClass.GetPropertyInfo("FakeFirstLevel")); + + } + #endregion } }