public void Deserialize_of_generic_result_adds_object_in_context_when_success_result()
        {
            DeserializationTestObject language = new DeserializationTestObject {
                Number = 232, String = "C#"
            };
            Result <DeserializationTestObject> failResult = Result.Success(language);
            var serialized = Serialize(failResult);

            Result <DeserializationTestObject> result = Deserialize <Result <DeserializationTestObject> >(serialized);

            result.Value.ShouldBeEquivalentTo(language);
        }
        public void Deserialize_adds_error_object_in_serialization_context_when_failure_result()
        {
            DeserializationTestObject errorObject = new DeserializationTestObject {
                Number = 500, String = "Error message"
            };
            Result <object, DeserializationTestObject> failResult = Result.Failure <object, DeserializationTestObject>(errorObject);
            var serialized = Serialize(failResult);

            Result <object, DeserializationTestObject> result = Deserialize <Result <object, DeserializationTestObject> >(serialized);

            result.Error.ShouldBeEquivalentTo(errorObject);
        }
        public void Deserialization_of_unit_result_when_failure()
        {
            DeserializationTestObject errorObject = new DeserializationTestObject {
                Number = 500, String = "Error message"
            };
            UnitResult <DeserializationTestObject> failResult = UnitResult.Failure(errorObject);
            var serialized = Serialize(failResult);

            UnitResult <DeserializationTestObject> result = Deserialize <UnitResult <DeserializationTestObject> >(serialized);

            result.Error.Should().BeEquivalentTo(errorObject);
        }