public void TestListingValidFieldsDepth1()
		{
			var extractor = new ReflectionBasedValueExtractor();
			var model = new Model();

			List<String> actualItems = extractor.DiscoverValidValuePaths(model, 1).ToList();

			var expectedItems = new List<String>()
			{
				"PublicField",
				"PublicProperty",
				"ChildList",
				"ChildList.Count",
			};

			CollectionAssert.AreEquivalent(expectedItems, actualItems);
		}
		public void TestListingValidFieldsWithArray()
		{
			var extractor = new ReflectionBasedValueExtractor();
			var model = new
			{
				Name = "",
				ArrayItems = new Model[] { }
			};

			List<String> actualItems = extractor.DiscoverValidValuePaths(model, 2).ToList();

			var expectedItems = new List<String>()
			{
				"Name",
				"ArrayItems",
				"ArrayItems.Length",
				"ArrayItems.PublicField",
				"ArrayItems.PublicProperty",
				"ArrayItems.ChildList",
				"ArrayItems.ChildList.Count",
			};

			CollectionAssert.AreEquivalent(expectedItems, actualItems);
		}