public void ResolvesSimpleProperties()
        {
            // Arrange
            var resolver = new DefaultPropertyResolver();
            var type     = typeof(Foo);

            // Act
            var props = resolver.ResolveProperties(type).Select(x => x.Property);

            // Assert
            Assert.Collection(props,
                              x => Assert.Equal(x, type.GetProperty("Object")),
                              x => Assert.Equal(x, type.GetProperty("String")),
                              x => Assert.Equal(x, type.GetProperty("Guid")),
                              x => Assert.Equal(x, type.GetProperty("Decimal")),
                              x => Assert.Equal(x, type.GetProperty("Double")),
                              x => Assert.Equal(x, type.GetProperty("Float")),
                              x => Assert.Equal(x, type.GetProperty("DateTime")),
                              x => Assert.Equal(x, type.GetProperty("DateTimeOffset")),
                              x => Assert.Equal(x, type.GetProperty("Timespan")),
                              x => Assert.Equal(x, type.GetProperty("Bytes")),
                              x => Assert.Equal(x, type.GetProperty("ReadonlyProp")),
                              x => Assert.Equal(x, type.GetProperty("PrivateSetterProp"))
                              );
        }
        public void IgnoresIgnoreAttribute()
        {
            // Arrange
            var resolver = new DefaultPropertyResolver();
            var type     = typeof(Bar);

            // Act
            var props = resolver.ResolveProperties(type).ToArray();

            // Assert
            var prop = Assert.Single(props);

            Assert.Equal(type.GetProperty("Id"), prop);
        }
        public void IgnoresNotMappedAttribute()
        {
            // Arrange
            var resolver = new DefaultPropertyResolver();
            var type     = typeof(Baz);

            // Act
            var props = resolver.ResolveProperties(type).Select(x => x.Property);

            // Assert
            var prop = Assert.Single(props);

            Assert.Equal(type.GetProperty("Id"), prop);
        }