public void GetPropertyNamesTest() { var key = "one[two].three"; var i = 0; var expected = new string[] { "one", "[two]", "three" }; foreach (var propName in ObjectUtil.GetPropertyNames(key)) { Assert.AreEqual(expected[i], propName); i++; } Assert.AreEqual(3, i); // Make sure the method works correctly when it ends with an // indexed property. key = "one[two]"; i = 0; foreach (var propName in ObjectUtil.GetPropertyNames(key)) { Assert.AreEqual(expected[i], propName); i++; } Assert.AreEqual(2, i); }