public void GetAllPropertyEnumeratorTest() { var test = new TestClass(); var anon = new { Str = "Test2", Int = 9000, Date = new DateTime(1900, 1, 1) }; test.StringProperty = "Test"; test.IntProperty = 9999; test.DateTimeProperty = new DateTime(2000, 1, 1); var enum1 = test.GetAllPropertyEnumerator(); var enum2 = anon.GetAllPropertyEnumerator(); Assert.AreEqual<string>((string)enum1.First().Item2, "Test"); Assert.AreEqual<int>((int)enum1.Skip(1).First().Item2, 9999); Assert.AreEqual<DateTime>((DateTime)enum1.Skip(2).First().Item2, new DateTime(2000, 1, 1)); Assert.AreEqual<string>((string)enum2.First().Item2, "Test2"); Assert.AreEqual<int>((int)enum2.Skip(1).First().Item2, 9000); Assert.AreEqual<DateTime>((DateTime)enum2.Skip(2).First().Item2, new DateTime(1900, 1, 1)); }