public void FormatValueFromDirectory_InvalidStringFomrat_CatchesExceptionAndRethrowsAsMappingException()
        {
            //prepare
            var mapping = new EnumPropertyMapping <EnumPropertyMappingTest>(_mappingArguments, false);

            //act
            Executing.This(() => mapping.FormatValueFromDirectory(new DirectoryAttribute("name", "a"), "dn"))
            .Should().Throw <MappingException>().And.Exception
            .Satisfies(e => e.InnerException.As <ArgumentException>() != null);
        }
        public void FormatValueFromDirectory_ZeroLengthAndNotNullable_ThrowsMappingException()
        {
            //prepare
            _mappingArguments.PropertyType = typeof(EnumTest);
            var mapping = new EnumPropertyMapping <EnumPropertyMappingTest>(_mappingArguments, false);

            //act
            Executing.This(() => mapping.FormatValueFromDirectory(new DirectoryAttribute("name"), "dn"))
            .Should().Throw <MappingException>();
        }
        public void FormatValueFromDirectory_MappedAsString_ReturnsEnumTestFromString()
        {
            //prepare
            var mapping = new EnumPropertyMapping <EnumPropertyMappingTest>(_mappingArguments, false);

            //act
            var value = mapping.FormatValueFromDirectory(new DirectoryAttribute("name", "Value2"), "dn");

            //assert
            value.Should().Be.EqualTo(EnumTest.Value2);
        }
        public void FormatValueFromDirectory_NullAndNullable_ReturnsNull()
        {
            //prepare
            _mappingArguments.PropertyType = typeof(EnumTest?);
            var mapping = new EnumPropertyMapping <EnumPropertyMappingTest>(_mappingArguments, false);

            //act
            var value = mapping.FormatValueFromDirectory(null, "dn");

            //assert
            value.Should().Be.Null();
        }