public void Select_should_map_a_failed_exceptional_to_another_successful_exceptional() { Exceptional <int> exceptional = new InvalidOperationException("invalid"); var anotherExp = exceptional.Select((i) => i.ToString()); anotherExp.Should().BeAssignableTo <Exceptional <string> >(); anotherExp.IsException.Should().BeTrue(); anotherExp.OnException(vs => { vs.Should().BeOfType <InvalidOperationException>(); vs.Message.Should().Be("invalid"); }); }