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); } } }
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; } } }
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(); } } }
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); }
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)); }
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); }
public void GetExtendedInfoByEnumValue_ValueWithoutAttribute_ReturnsAttriburteInstanceWithValueAsName() { Assert.AreEqual("NonPending", EnumExtendedInfoAttribute.GetExtendedInfoByEnumValue(TestEnum.NonPending).Name); }
public void GetExtendedInfoByEnumValue_ValueWithAttributeWithoutName_ReturnsAttributeInstanceWithValueAsName() { Assert.AreEqual("Something", EnumExtendedInfoAttribute.GetExtendedInfoByEnumValue(TestEnum.Something).Name); }
public void GetEnumValueByCustomValue_Decimal_FindsStringRepresentation() { Assert.AreEqual(TestEnum.Decimal, EnumExtendedInfoAttribute.GetEnumValueByCustomValue <TestEnum>(0.2M)); Assert.Throws <ArgumentException>(delegate { EnumExtendedInfoAttribute.GetEnumValueByCustomValue <TestEnum>(12M); }); }
public void GetEnumValueByCustomValue_NonExistingValueName_ThrowsArgumentException() { Assert.Throws <ArgumentException>(delegate { EnumExtendedInfoAttribute.GetEnumValueByCustomValue <TestEnum>("nie ma"); }); }
public void GetEnumValueByCustomValue_InvalidTypeNotEnum_ThrowsArgumentException() { Assert.Throws <ArgumentException>(delegate { EnumExtendedInfoAttribute.GetEnumValueByCustomValue <string>("nie ma"); }); }
public void GetEnumValueByCustomValue_ValidValueName_ReturnsValidValue(object databaseRepresentation, TestEnum expectedValue) { Assert.AreEqual(expectedValue, EnumExtendedInfoAttribute.GetEnumValueByCustomValue <TestEnum>(databaseRepresentation)); }
public void GetExtendedInfoByEnumValue_NullValue_ReturnsEmptyAttributeWithNullValuesAndNames() { Assert.AreEqual(null, EnumExtendedInfoAttribute.GetExtendedInfoByEnumValue((TestEnum?)null).CustomValue); Assert.AreEqual(null, EnumExtendedInfoAttribute.GetExtendedInfoByEnumValue((TestEnum?)null).Name); }
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); }
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); }
public void GetExtendedInfoByEnumValue_CustomValueLooksLikeDecimal_ReturnsDecimal() { Assert.AreEqual(0.2m, EnumExtendedInfoAttribute.GetExtendedInfoByEnumValue(TestEnum.Decimal).CustomValue); Assert.AreEqual(typeof(decimal), EnumExtendedInfoAttribute.GetExtendedInfoByEnumValue(TestEnum.Decimal).CustomValue.GetType()); }