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 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)); }