public void InsertCaptureErrorTestMethod() { IResponseBusiness <Entity.Payment> valueReturned = null; Payment paymentBusiness = new Business.Payment(new Entity.User()); Entity.Capture capture = new Entity.Capture() { Id = 0, Image = System.Text.Encoding.UTF8.GetBytes(new char[] { 'z', 'a' }), Payment = null, PaymentId = 0 }; valueReturned = paymentBusiness.InsertCapture(capture); Assert.IsTrue(valueReturned.IsError); }
/// <summary> /// Crea un movimiento a partir de una captura de imagen /// </summary> /// <param name="capture">Entidad que contiene la imagen capturada</param> /// <returns><c>IResponseBusiness<Entity.Payment></c></returns> /// <exception cref="System.ArgumentNullException">capture</exception> public IResponseBusiness <Entity.Payment> InsertCapture(Entity.Capture capture) { if (capture == null) { throw new ArgumentNullException("capture"); } IResponseBusiness <Entity.Payment> response = new ResponseBusiness <Entity.Payment>() { Entity = null, IsError = true, Message = string.Empty }; Entity.Payment payment = null; if (capture.Payment == null) //Se crea Payment con valores por defecto { capture.Payment = new Entity.Payment(); // Se instancia Payment para que la validación de la captura no de error por la falta de Payment Business.Capture captureBusiness = new Business.Capture(_user); IResponseValidate validateCapture = captureBusiness.Validate(capture); if (validateCapture.IsValid) { PaymentMethodDetail paymentMethodDetailBusiness = new PaymentMethodDetail(this._user, _context); Status statusBusiness = new Status(_user, _context); payment = new Entity.Payment(); payment.Date = DateTime.Now; payment.Description = string.Empty; payment.IsScheduled = false; payment.PaymentMethodDetail = paymentMethodDetailBusiness.GetDefault(); payment.PaymentType = (int)Entity.Enums.PaymentTypes.None; payment.Status = statusBusiness.GetDefault(); payment.User = this._user; payment.Value = 0; payment.Captures.Add(capture); capture.Payment = payment; _context.Payments.Add(payment); } else { response.Message = validateCapture.Message; } } else { payment = capture.Payment; _context.Captures.Add(capture); } try { _context.SaveChanges(); } catch (DbUpdateConcurrencyException cex) { response.Message = _resourceReacher.GetString("PaymentSaveDbUpdateConcurrencyException"); } catch (DbUpdateException uex) { response.Message = _resourceReacher.GetString("PaymentSaveDbUpdateException"); } catch (DbEntityValidationException eex) { response.Message = _resourceReacher.GetString("PaymentSaveDbEntityValidationException"); } catch (NotSupportedException sex) { response.Message = _resourceReacher.GetString("PaymentSaveNotSupportedException"); } catch (ObjectDisposedException dex) { response.Message = _resourceReacher.GetString("PaymentSaveObjectDisposedException"); } catch (InvalidOperationException iex) { response.Message = _resourceReacher.GetString("PaymentSaveInvalidOperationException"); } finally { if (string.IsNullOrEmpty(response.Message)) { response.Entity = payment; response.IsError = false; } } return(response); }