コード例 #1
0
    public void Should_return_derived_type()
    {
        EnumWithDerivedType.Get(2).Should().Be(EnumWithDerivedType.ItemOfDerivedType);

        AbstractEnum.Get(1).Should().Be(AbstractEnum.Item);

        ExtensibleTestEnum.Get("DerivedItem").Should().Be(ExtensibleTestEnum.DerivedItem);
        ExtendedTestEnum.Get("DerivedItem").Should().Be(ExtendedTestEnum.DerivedItem);
        DifferentAssemblyExtendedTestEnum.Get("DerivedItem").Should().Be(DifferentAssemblyExtendedTestEnum.DerivedItem);
    }
コード例 #2
0
    public void Should_return_null_if_null_is_provided()
    {
        TestEnum.Get(null).Should().BeNull();
        ValidTestEnum.Get(null).Should().BeNull();

        ExtensibleTestEnum.Get(null).Should().BeNull();
        ExtendedTestEnum.Get(null).Should().BeNull();
        DifferentAssemblyExtendedTestEnum.Get(null).Should().BeNull();
        ExtensibleTestValidatableEnum.Get(null).Should().BeNull();
        ExtendedTestValidatableEnum.Get(null).Should().BeNull();
    }
コード例 #3
0
    public void Should_return_false_if_null_is_provided()
    {
        EmptyEnum.TryGet(null, out var item).Should().BeFalse();
        item.Should().BeNull();

        ExtensibleTestEnum.TryGet(null, out var extensibleItem).Should().BeFalse();
        extensibleItem.Should().BeNull();

        ExtendedTestEnum.TryGet(null, out var extendedItem).Should().BeFalse();
        extendedItem.Should().BeNull();

        DifferentAssemblyExtendedTestEnum.TryGet(null, out var differentAssemblyExtendedItem).Should().BeFalse();
        differentAssemblyExtendedItem.Should().BeNull();
    }
コード例 #4
0
    public void Should_return_false_if_enum_dont_have_item_with_provided_key()
    {
        TestEnum.TryGet("unknown", out var item).Should().BeFalse();
        item.Should().BeNull();

        ExtensibleTestEnum.TryGet("unknown", out var extensibleItem).Should().BeFalse();
        extensibleItem.Should().BeNull();

        ExtendedTestEnum.TryGet("unknown", out var extendedItem).Should().BeFalse();
        extendedItem.Should().BeNull();

        DifferentAssemblyExtendedTestEnum.TryGet("unknown", out var differentAssemblyExtendedItem).Should().BeFalse();
        differentAssemblyExtendedItem.Should().BeNull();
    }
コード例 #5
0
    public void Should_throw_if_key_is_unknown_to_non_validatable_enum()
    {
        Action action = () => ValidTestEnum.Get("invalid");

        action.Should().Throw <UnknownEnumIdentifierException>().WithMessage("There is no item of type 'ValidTestEnum' with the identifier 'invalid'.");

        action = () => ExtensibleTestEnum.Get("invalid");
        action.Should().Throw <UnknownEnumIdentifierException>().WithMessage("There is no item of type 'ExtensibleTestEnum' with the identifier 'invalid'.");

        action = () => ExtendedTestEnum.Get("invalid");
        action.Should().Throw <UnknownEnumIdentifierException>().WithMessage("There is no item of type 'ExtendedTestEnum' with the identifier 'invalid'.");

        action = () => DifferentAssemblyExtendedTestEnum.Get("invalid");
        action.Should().Throw <UnknownEnumIdentifierException>().WithMessage("There is no item of type 'DifferentAssemblyExtendedTestEnum' with the identifier 'invalid'.");
    }
コード例 #6
0
    public void Should_return_item_with_provided_key()
    {
        TestEnum.Get("item2").Should().Be(TestEnum.Item2);

        ValidTestEnum.Get("item1").Should().Be(ValidTestEnum.Item1);

        ExtensibleTestEnum.Get("Item1").Should().Be(ExtensibleTestEnum.Item1);
        ExtendedTestEnum.Get("Item1").Should().Be(ExtendedTestEnum.Item1);
        ExtendedTestEnum.Get("Item2").Should().Be(ExtendedTestEnum.Item2);
        DifferentAssemblyExtendedTestEnum.Get("Item1").Should().Be(DifferentAssemblyExtendedTestEnum.Item1);
        DifferentAssemblyExtendedTestEnum.Get("Item2").Should().Be(DifferentAssemblyExtendedTestEnum.Item2);

        ExtensibleTestValidatableEnum.Get("Item1").Should().Be(ExtensibleTestValidatableEnum.Item1);
        ExtendedTestValidatableEnum.Get("Item1").Should().Be(ExtendedTestValidatableEnum.Item1);
        ExtendedTestValidatableEnum.Get("Item2").Should().Be(ExtendedTestValidatableEnum.Item2);
    }
コード例 #7
0
    public void Should_return_true_if_item_with_provided_key_exists()
    {
        TestEnum.TryGet("item2", out var item).Should().BeTrue();
        item.Should().Be(TestEnum.Item2);

        ExtensibleTestEnum.TryGet("Item1", out var extensibleItem).Should().BeTrue();
        extensibleItem.Should().Be(ExtensibleTestEnum.Item1);

        ExtendedTestEnum.TryGet("Item1", out var extendedItem).Should().BeTrue();
        extendedItem.Should().Be(ExtendedTestEnum.Item1);

        ExtendedTestEnum.TryGet("Item2", out extendedItem).Should().BeTrue();
        extendedItem.Should().Be(ExtendedTestEnum.Item2);

        DifferentAssemblyExtendedTestEnum.TryGet("Item1", out var differentAssemblyExtendedItem).Should().BeTrue();
        differentAssemblyExtendedItem.Should().Be(DifferentAssemblyExtendedTestEnum.Item1);

        DifferentAssemblyExtendedTestEnum.TryGet("Item2", out differentAssemblyExtendedItem).Should().BeTrue();
        differentAssemblyExtendedItem.Should().Be(DifferentAssemblyExtendedTestEnum.Item2);
    }