Esempio n. 1
0
    public void Should_return_false_if_type_doesnt_match_the_enum_and_key()
    {
        StringBasedTypeConverter.CanConvertFrom(typeof(Guid)).Should().BeFalse();

        ExtensibleTestEnumTypeConverter.CanConvertFrom(typeof(Guid)).Should().BeFalse();
        ExtendedTestEnumTypeConverter.CanConvertFrom(typeof(Guid)).Should().BeFalse();
        DifferentAssemblyExtendedTestEnumTypeConverter.CanConvertFrom(typeof(Guid)).Should().BeFalse();
    }
Esempio n. 2
0
    public void Should_return_true_if_type_matches_the_key()
    {
        StringBasedTypeConverter.CanConvertFrom(typeof(string)).Should().BeTrue();

        ExtensibleTestEnumTypeConverter.CanConvertFrom(typeof(string)).Should().BeTrue();
        ExtendedTestEnumTypeConverter.CanConvertFrom(typeof(string)).Should().BeTrue();
        DifferentAssemblyExtendedTestEnumTypeConverter.CanConvertFrom(typeof(string)).Should().BeTrue();
    }
    public void Should_return_item_if_type_matches_the_enum()
    {
        StringBasedTypeConverter.ConvertTo(null, null, TestEnum.Item1, typeof(TestEnum)).Should().Be(TestEnum.Item1);

        ExtensibleTestEnumTypeConverter.ConvertTo(null, null, ExtensibleTestEnum.Item1, typeof(ExtensibleTestEnum)).Should().Be(ExtensibleTestEnum.Item1);
        ExtendedTestEnumTypeConverter.ConvertTo(null, null, ExtendedTestEnum.Item1, typeof(ExtendedTestEnum)).Should().Be(ExtendedTestEnum.Item1);
        DifferentAssemblyExtendedTestEnumTypeConverter.ConvertTo(null, null, DifferentAssemblyExtendedTestEnum.Item1, typeof(DifferentAssemblyExtendedTestEnum)).Should().Be(DifferentAssemblyExtendedTestEnum.Item1);
    }
    public void Should_return_key_if_type_matches_the_key()
    {
        StringBasedTypeConverter.ConvertTo(null, null, TestEnum.Item1, typeof(string)).Should().Be("item1");

        ExtensibleTestEnumTypeConverter.ConvertTo(null, null, ExtensibleTestEnum.Item1, typeof(string)).Should().Be("Item1");
        ExtendedTestEnumTypeConverter.ConvertTo(null, null, ExtendedTestEnum.Item1, typeof(string)).Should().Be("Item1");
        DifferentAssemblyExtendedTestEnumTypeConverter.ConvertTo(null, null, DifferentAssemblyExtendedTestEnum.Item1, typeof(string)).Should().Be("Item1");
    }
    public void Should_return_item_if_parameter_is_enum_already()
    {
        StringBasedTypeConverter.ConvertFrom(null, null, TestEnum.Item1).Should().Be(TestEnum.Item1);

        ExtensibleTestEnumTypeConverter.ConvertFrom(null, null, ExtensibleTestEnum.Item1).Should().Be(ExtensibleTestEnum.Item1);
        ExtendedTestEnumTypeConverter.ConvertFrom(null, null, ExtendedTestEnum.Item1).Should().Be(ExtendedTestEnum.Item1);
        DifferentAssemblyExtendedTestEnumTypeConverter.ConvertFrom(null, null, DifferentAssemblyExtendedTestEnum.Item1).Should().Be(DifferentAssemblyExtendedTestEnum.Item1);
    }
    public void Should_return_item_if_parameter_matches_the_key_type_and_item_exists()
    {
        StringBasedTypeConverter.ConvertFrom(null, null, "item1").Should().Be(TestEnum.Item1);

        ExtensibleTestEnumTypeConverter.ConvertFrom(null, null, "item1").Should().Be(ExtensibleTestEnum.Item1);
        ExtendedTestEnumTypeConverter.ConvertFrom(null, null, "item1").Should().Be(ExtendedTestEnum.Item1);
        DifferentAssemblyExtendedTestEnumTypeConverter.ConvertFrom(null, null, "item1").Should().Be(DifferentAssemblyExtendedTestEnum.Item1);
    }
    public void Should_return_null_if_key_is_null()
    {
        StringBasedTypeConverter.ConvertFrom(null, null, null).Should().BeNull();

        ExtensibleTestEnumTypeConverter.ConvertFrom(null, null, null).Should().BeNull();
        ExtendedTestEnumTypeConverter.ConvertFrom(null, null, null).Should().BeNull();
        DifferentAssemblyExtendedTestEnumTypeConverter.ConvertFrom(null, null, null).Should().BeNull();
    }
    public void Should_throw_if_parameter_type_doesnt_match_the_enum_and_key()
    {
        StringBasedTypeConverter.Invoking(c => c.ConvertTo(null, null, TestEnum.Item1, typeof(Guid)))
        .Should().Throw <NotSupportedException>().WithMessage("'StringConverter' is unable to convert 'System.String' to 'System.Guid'.");

        ExtensibleTestEnumTypeConverter.Invoking(c => c.ConvertTo(null, null, ExtensibleTestEnum.Item1, typeof(Guid)))
        .Should().Throw <NotSupportedException>().WithMessage("'StringConverter' is unable to convert 'System.String' to 'System.Guid'.");
        ExtendedTestEnumTypeConverter.Invoking(c => c.ConvertTo(null, null, ExtendedTestEnum.Item1, typeof(Guid)))
        .Should().Throw <NotSupportedException>().WithMessage("'StringConverter' is unable to convert 'System.String' to 'System.Guid'.");
        DifferentAssemblyExtendedTestEnumTypeConverter.Invoking(c => c.ConvertTo(null, null, DifferentAssemblyExtendedTestEnum.Item1, typeof(Guid)))
        .Should().Throw <NotSupportedException>().WithMessage("'StringConverter' is unable to convert 'System.String' to 'System.Guid'.");
    }
    public void Should_throw_if_parameter_type_doesnt_match_the_enum_and_key()
    {
        Action action = () => StringBasedTypeConverter.ConvertFrom(Guid.Empty);

        action.Should().Throw <NotSupportedException>();

        action = () => ExtensibleTestEnumTypeConverter.ConvertFrom(Guid.Empty);
        action.Should().Throw <NotSupportedException>();

        action = () => ExtendedTestEnumTypeConverter.ConvertFrom(Guid.Empty);
        action.Should().Throw <NotSupportedException>();

        action = () => DifferentAssemblyExtendedTestEnumTypeConverter.ConvertFrom(Guid.Empty);
        action.Should().Throw <NotSupportedException>();
    }