public void OnCancelled_ShouldCallOnCancelled_WhenResultIsCancelled()
        {
            var isAlwaysExecuted  = false;
            var isSuccessExecuted = false;
            var isFailureExecuted = false;
            var isCancellExecuted = false;
            var result            = ServiceResult <string> .AsCancel()
                                    .OnSuccess((r) =>
            {
                isSuccessExecuted = true;
                return(ServiceResult <string> .AsSuccess("ok"));
            })
                                    .OnFailure(r =>
            {
                isFailureExecuted = true;
            })
                                    .OnCancelled(r =>
            {
                isCancellExecuted = true;
            })
                                    .Always(r => isAlwaysExecuted = true);

            Assert.False(isSuccessExecuted);
            Assert.False(isFailureExecuted);
            Assert.True(isAlwaysExecuted);
            Assert.True(isCancellExecuted);
            Assert.True(result.IsCancelled);
        }
        public void AsCancel_ShouldSetFieldsCorrectly()
        {
            var result = ServiceResult.AsCancel();

            Assert.False(result.IsSuccessful);
            Assert.True(result.IsCancelled);
            Assert.Null(result.Exception);
            Assert.Null(result.Message);

            var genericResult = ServiceResult <Dummy> .AsCancel();

            Assert.False(genericResult.IsSuccessful);
            Assert.True(genericResult.IsCancelled);
            Assert.Null(genericResult.Exception);
            Assert.Null(genericResult.Message);
            Assert.Null(genericResult.Result);
        }