public void ConvertTo_NewValue_ReturnNewSuccessResultWithNewValue() { // Arrange: var oldValue = 5; var result = new SuccessResult <int> { Value = oldValue }; var newValue = oldValue + 1.5; // Act: var newResult = result.ConvertTo(newValue); // Assert: var successResult = newResult.Should().BeOfType <SuccessResult <double> >().Subject; successResult.Should().NotBeSameAs(result); successResult.Value.Should().Be(newValue); }