public void WhenNoMemberThenCantChangeAccessor()
        {
            string accessValue = null;

            var mapper = new AccessorPropertyMapper(typeof(MyClass), null, x => accessValue = x);

            mapper.Access(Accessor.Field);
            accessValue.Should().Be.EqualTo("none");
        }
        public void WhenMapPropertyWithFieldOnBaseClassThenChooseRigthFieldAccessor()
        {
            string accessValue = null;
            var    mapper      = new AccessorPropertyMapper(typeof(Income), "Details", x => accessValue = x);

            mapper.Access(Accessor.Field);

            accessValue.Should().Be.EqualTo("field.camelcase-underscore");
        }
        public void WhenMapPropertyNosetterCamelCaseThenChooseRigthFieldAccessor()
        {
            string accessValue = null;
            var    mapper      = new AccessorPropertyMapper(typeof(MyClass), "NosetterCamelCase", x => accessValue = x);

            mapper.Access(Accessor.NoSetter);

            accessValue.Should().Be.EqualTo("nosetter.camelcase");
        }
        public void WhenMapReadOnlyPropertyThenReadonlyAccessor()
        {
            string accessValue = null;
            var    mapper      = new AccessorPropertyMapper(typeof(MyClass), "ReadOnly", x => accessValue = x);

            mapper.Access(Accessor.ReadOnly);

            accessValue.Should().Be.EqualTo("readonly");
        }
        public void WhenMapPropertyWithFieldPascalcaseUnderscoreThenChooseRigthFieldAccessor()
        {
            string accessValue = null;
            var    mapper      = new AccessorPropertyMapper(typeof(MyClass), "WithFieldPascalcaseUnderscore", x => accessValue = x);

            mapper.Access(Accessor.Field);

            accessValue.Should().Be.EqualTo("field.pascalcase-underscore");
        }