Пример #1
0
        public void GetEnumValueByCustomValue_Performance_Test()
        {
            /* 1 times takes 4 ms
             * 100 times takes 9 ms
             * 100.000 times takes 10200 ms
             * with caching
             * 1 times takes 5 ms
             * 100 times takes 0 ms
             * 100.000 times takes 1214 ms
             * TryGetValue in dictionary
             * 1 times takes 5 ms
             * 100 times takes 0 ms
             * 100.000 times takes 750 ms
             */
            using (Benchmark.InMiliseconds().ToConsole("1 times takes {0} ms"))
            {
                EnumExtendedInfoAttribute.GetEnumValueByCustomValue <TestEnum>(23);
            }

            using (Benchmark.InMiliseconds().ToConsole("100 times takes {0} ms"))
            {
                for (int i = 0; i < 100; i++)
                {
                    EnumExtendedInfoAttribute.GetEnumValueByCustomValue <TestEnum>(23);
                }
            }

            using (Benchmark.InMiliseconds().ToConsole("100.000 times takes {0} ms"))
            {
                for (int i = 0; i < 100000; i++)
                {
                    EnumExtendedInfoAttribute.GetEnumValueByCustomValue <TestEnum>(23);
                }
            }
        }
Пример #2
0
        public void GetExtendedInfoByEnumValue_Performance_Test()
        {
            /* 1 times takes 3 ms
             * 100 times takes 0 ms
             * 100.000 times takes 89 ms
             * TryGetValue in dictionary
             * 1 times takes 1 ms
             * 100 times takes 0 ms
             * 100.000 times takes 40 ms
             */
            using (Benchmark.InMiliseconds().ToConsole("1 times takes {0} ms"))
            {
                var a = EnumExtendedInfoAttribute.GetExtendedInfoByEnumValue(TestEnum.Decimal).CustomValue;
            }

            using (Benchmark.InMiliseconds().ToConsole("100 times takes {0} ms"))
            {
                for (int i = 0; i < 100; i++)
                {
                    var a = EnumExtendedInfoAttribute.GetExtendedInfoByEnumValue(TestEnum.Decimal).CustomValue;
                }
            }

            using (Benchmark.InMiliseconds().ToConsole("100.000 times takes {0} ms"))
            {
                for (int i = 0; i < 100000; i++)
                {
                    var a = EnumExtendedInfoAttribute.GetExtendedInfoByEnumValue(TestEnum.Decimal).CustomValue;
                }
            }
        }
Пример #3
0
        public void GetExtendedInfoByEnumValueAndGetCustomValues_Performance_Test()
        {
            /* 1 times takes 3 ms
             * 100 times takes 0 ms
             * 100.000 times takes 38 ms
             */
            using (Benchmark.InMiliseconds().ToConsole("1 times takes {0} ms"))
            {
                EnumExtendedInfoAttribute.GetExtendedInfoByEnumValue(TestFlagEnum.Pending | TestFlagEnum.Integer).GetCustomValues();
            }

            using (Benchmark.InMiliseconds().ToConsole("100 times takes {0} ms"))
            {
                for (int i = 0; i < 100; i++)
                {
                    EnumExtendedInfoAttribute.GetExtendedInfoByEnumValue(TestFlagEnum.Pending | TestFlagEnum.Integer).GetCustomValues();
                }
            }

            using (Benchmark.InMiliseconds().ToConsole("100.000 times takes {0} ms"))
            {
                for (int i = 0; i < 100000; i++)
                {
                    EnumExtendedInfoAttribute.GetExtendedInfoByEnumValue(TestFlagEnum.Pending | TestFlagEnum.Integer).GetCustomValues();
                }
            }
        }
Пример #4
0
        public void GetExtendedInfoByEnumValue_TwoDifferentEnums()
        {
            Assert.AreEqual("...", EnumExtendedInfoAttribute.GetExtendedInfoByEnumValue(TestEnum.Pending).CustomValue as string);
            Assert.AreEqual("misc", EnumExtendedInfoAttribute.GetExtendedInfoByEnumValue(TestEnum.Misc).CustomValue);

            Assert.AreEqual("M", EnumExtendedInfoAttribute.GetExtendedInfoByEnumValue(AnoterTestEnum.Male).CustomValue as string);
            Assert.AreEqual("F", EnumExtendedInfoAttribute.GetExtendedInfoByEnumValue(AnoterTestEnum.Female).CustomValue as string);
        }
Пример #5
0
        public void GetExtendedInfoByEnumValue_ValueWithAttributeWithNameAndWithValueName_ReturnsAttributeInstanceWithValueNameAsPassedIntoAttribute()
        {
            Assert.AreEqual("...", EnumExtendedInfoAttribute.GetExtendedInfoByEnumValue(TestEnum.Pending).CustomValue as string);

            var customValues = EnumExtendedInfoAttribute.GetExtendedInfoByEnumValue(TestFlagEnum.Pending | TestFlagEnum.Integer).GetCustomValues();

            Assert.Contains("...", customValues);
            Assert.Contains(23, customValues);
            Assert.That(customValues[0], Is.EqualTo("..."));
            Assert.That(customValues.Length, Is.EqualTo(2));
        }
Пример #6
0
        public void GetExtendedInfoByEnumValue_ValueWithAttributeWithName_ReturnsAttributeInstanceWithNameAsPassedIntoAttribute()
        {
            Assert.AreEqual("waiting", EnumExtendedInfoAttribute.GetExtendedInfoByEnumValue(TestEnum.Pending).Name);
            Assert.AreEqual("misc", EnumExtendedInfoAttribute.GetExtendedInfoByEnumValue(TestEnum.Misc).Name);

            Assert.AreEqual("waiting", EnumExtendedInfoAttribute.GetExtendedInfoByEnumValue(TestFlagEnum.Pending).Name);
            Assert.AreEqual("misc", EnumExtendedInfoAttribute.GetExtendedInfoByEnumValue(TestFlagEnum.Misc).Name);

            Assert.AreEqual("waiting, misc", EnumExtendedInfoAttribute.GetExtendedInfoByEnumValue(TestFlagEnum.Pending | TestFlagEnum.Misc).Name);

            // Names for flag enum
            var names = EnumExtendedInfoAttribute.GetExtendedInfoByEnumValue(TestFlagEnum.Pending | TestFlagEnum.Misc).GetNames();

            Assert.Contains("waiting", names);
            Assert.Contains("misc", names);
        }
Пример #7
0
 public void GetExtendedInfoByEnumValue_ValueWithoutAttribute_ReturnsAttriburteInstanceWithValueAsName()
 {
     Assert.AreEqual("NonPending", EnumExtendedInfoAttribute.GetExtendedInfoByEnumValue(TestEnum.NonPending).Name);
 }
Пример #8
0
 public void GetExtendedInfoByEnumValue_ValueWithAttributeWithoutName_ReturnsAttributeInstanceWithValueAsName()
 {
     Assert.AreEqual("Something", EnumExtendedInfoAttribute.GetExtendedInfoByEnumValue(TestEnum.Something).Name);
 }
Пример #9
0
 public void GetEnumValueByCustomValue_Decimal_FindsStringRepresentation()
 {
     Assert.AreEqual(TestEnum.Decimal, EnumExtendedInfoAttribute.GetEnumValueByCustomValue <TestEnum>(0.2M));
     Assert.Throws <ArgumentException>(delegate { EnumExtendedInfoAttribute.GetEnumValueByCustomValue <TestEnum>(12M); });
 }
Пример #10
0
 public void GetEnumValueByCustomValue_NonExistingValueName_ThrowsArgumentException()
 {
     Assert.Throws <ArgumentException>(delegate { EnumExtendedInfoAttribute.GetEnumValueByCustomValue <TestEnum>("nie ma"); });
 }
Пример #11
0
 public void GetEnumValueByCustomValue_InvalidTypeNotEnum_ThrowsArgumentException()
 {
     Assert.Throws <ArgumentException>(delegate { EnumExtendedInfoAttribute.GetEnumValueByCustomValue <string>("nie ma"); });
 }
Пример #12
0
 public void GetEnumValueByCustomValue_ValidValueName_ReturnsValidValue(object databaseRepresentation, TestEnum expectedValue)
 {
     Assert.AreEqual(expectedValue, EnumExtendedInfoAttribute.GetEnumValueByCustomValue <TestEnum>(databaseRepresentation));
 }
Пример #13
0
 public void GetExtendedInfoByEnumValue_NullValue_ReturnsEmptyAttributeWithNullValuesAndNames()
 {
     Assert.AreEqual(null, EnumExtendedInfoAttribute.GetExtendedInfoByEnumValue((TestEnum?)null).CustomValue);
     Assert.AreEqual(null, EnumExtendedInfoAttribute.GetExtendedInfoByEnumValue((TestEnum?)null).Name);
 }
Пример #14
0
        public void GetExtendedInfoByEnumValue_ValueWithAttributeWithNameAndWithoutValueName_ReturnsAttributeInstanceWithValueNameAsName()
        {
            Assert.AreEqual("misc", EnumExtendedInfoAttribute.GetExtendedInfoByEnumValue(TestEnum.Misc).CustomValue as string);

            Assert.AreEqual("misc", EnumExtendedInfoAttribute.GetExtendedInfoByEnumValue(TestFlagEnum.Misc).CustomValue as string);
        }
Пример #15
0
        public void GetExtendedInfoByEnumValue_ValueWithAttributeWithoutNameAndWithValueName_ReturnsAttributeInstanceWithValueNameAsPassedIntoAttribute()
        {
            Assert.AreEqual("dbName", EnumExtendedInfoAttribute.GetExtendedInfoByEnumValue(TestEnum.Something).CustomValue as string);

            Assert.AreEqual("dbName", EnumExtendedInfoAttribute.GetExtendedInfoByEnumValue(TestFlagEnum.Something).CustomValue as string);
        }
Пример #16
0
 public void GetExtendedInfoByEnumValue_CustomValueLooksLikeDecimal_ReturnsDecimal()
 {
     Assert.AreEqual(0.2m, EnumExtendedInfoAttribute.GetExtendedInfoByEnumValue(TestEnum.Decimal).CustomValue);
     Assert.AreEqual(typeof(decimal), EnumExtendedInfoAttribute.GetExtendedInfoByEnumValue(TestEnum.Decimal).CustomValue.GetType());
 }