public void EnumManager_Should_GetString_For_Valid_Value_Without_Initalization() { string parsedValue; Assert.IsTrue( EnumManager <SmallEnum> .TryGetString(SmallEnum.One, out parsedValue), "String retrieval failed for known enum."); Assert.AreEqual(oneString, parsedValue, oneValue.ToString() + " converted to unexpected string " + parsedValue); }
public void EnumManager_Should_Return_False_For_Invalid_Enum_Values() { string parsedValue; SmallEnum invalidEnum = (SmallEnum)1000; Assert.IsFalse( EnumManager <SmallEnum> .TryGetString(invalidEnum, out parsedValue), "String retrieval didn't failed for excessive value."); }
// This could be any kind of request handler. Details aren't that important. public string GetMoreResults(string[] requestData) { // Do some processing. ResultState state = DoSomeWorkTrusted(); // Since any value can be cast to an enum, we use a Try pattern to ensure this is a valid enum. string resultString; EnumManager <ResultState> .TryGetString(state, out resultString); return(resultString); }
// This could be any kind of request handler. Details aren't that important. public string GetResults(string[] requestData) { // Do some processing. ResultState state = DoSomeWorkUntrusted(); // Since any value can be cast to an enum, we use a Try pattern to ensure this is a valid enum. string resultString; if (EnumManager <ResultState> .TryGetString(state, out resultString)) { return(resultString); } else { // DoSomeWork may not be trusted to return a valid value, handle its error here. return("Unable to parse"); } }
public void EnumManager_PreInitalized_TryGetString_Performance() { EnumManager <LargeEnum> .Initalize(); string value; string otherValue = String.Empty; int length = validStrings.Length; for (int i = 0; i < ITERATIONS; ++i) { EnumManager <LargeEnum> .TryGetString(validEnums[i % length], out value); otherValue = value; } Console.WriteLine(otherValue); }