public void Parse_WithValidNameButUndefined_ShouldThrowInvalidOperationException()
 {
     Assert.Throws <InvalidOperationException>(
         () =>
     {
         var result = FirstEnum.Parse <FirstEnum>(TestEnum.Value.Second.ToString());
     }
         );
 }
 public void Parse_WithInvalidName_ShouldThrowFormatException()
 {
     Assert.Throws <FormatException>(
         () =>
     {
         var result = FirstEnum.Parse <FirstEnum>("SomeString");
     }
         );
 }
        public void Parse_WithValidName_ShouldReturnObjectEnumWithCorrespondingValue()
        {
            var testString = TestEnum.Value.First.ToString();

            var result = (TestEnum.Value)FirstEnum.Parse <FirstEnum>(testString);

            Assert.AreEqual(
                TestEnum.Value.First,
                result
                );
        }