Exemplo n.º 1
0
        public void RaiseException_FromInvalidMetatag()
        {
            var ex1 = Assert.Throws <ArgumentNullException>(() =>
                                                            EnumUtil.FromTag <MyEnum>(null, "invalid"));

            var ex2 = Assert.Throws <ArgumentNullException>(() =>
                                                            EnumUtil.FromTag <MyEnum>("    ", "invalid"));

            var ex3 = Assert.Throws <ArgumentNullException>(() =>
                                                            EnumUtil.FromTag <MyEnum>(CustomIdKey, null));

            var ex4 = Assert.Throws <ArgumentNullException>(() =>
                                                            EnumUtil.FromTag <MyEnum>(CustomIdKey, "    "));

            var ex5 = Assert.Throws <InvalidCastException>(() =>
                                                           EnumUtil.FromTag <MyEnum>(CustomIdKey, "invalid"));

            Assert.Equal("tagKey", ex1.ParamName);
            Assert.Equal("tagKey", ex2.ParamName);
            Assert.Equal("tagValue", ex3.ParamName);
            Assert.Equal("tagValue", ex4.ParamName);
            Assert.Equal(
                "The Enum could not be converted because there is no value signed with the informed tag",
                ex5.Message);
        }
Exemplo n.º 2
0
        public void Parse_FromValidMetatag()
        {
            var firstOption  = EnumUtil.FromTag <MyEnum>(DescriptionKey, "My First Option");
            var thirdOption1 = EnumUtil.FromTag <MyEnum>(DescriptionKey, "My Third Option");
            var secondOption = EnumUtil.FromTag <MyEnum>(CustomIdKey, "second-option");
            var thirdOption2 = EnumUtil.FromTag <MyEnum>(CustomIdKey, nameof(MyEnum.ThirdOption));

            Assert.Equal(MyEnum.FirstOption, firstOption);
            Assert.Equal(MyEnum.SecondOption, secondOption);
            Assert.Equal(MyEnum.ThirdOption, thirdOption1);
            Assert.Equal(MyEnum.ThirdOption, thirdOption2);
        }