public void ShouldIgnoreExcludedProperties()
        {
            var types = new InspectedPropertyTypes <AlmostEmptyClass>();

            var result = types.Get();

            Assert.Single(result);
            Assert.Contains(result, t => t == typeof(AlmostEmptyClass));
        }
        public void SamePropertyAsParentShouldNotCauseStackOverflow()
        {
            var types = new InspectedPropertyTypes <Human>();

            var result = types.Get();

            Assert.Single(result);
            Assert.Contains(result, t => t == typeof(Human));
        }
        public void ShouldHandleListGracefully()
        {
            var types = new InspectedPropertyTypes <Zoo>();

            var result = types.Get();

            Assert.Equal(2, result.Length);
            Assert.Contains(result, t => t == typeof(Zoo));
            Assert.Contains(result, t => t == typeof(Animal));
        }
        public void ShouldHandleSingleProperty()
        {
            var types = new InspectedPropertyTypes <Vehicle>();

            var result = types.Get();

            Assert.Equal(2, result.Length);
            Assert.Contains(result, t => t == typeof(Vehicle));
            Assert.Contains(result, t => t == typeof(Engine));
        }