public void PaymentInstrumentsIsNotNullAndEmptyOnCreationOfNewMedicalVendorPayment() { var payment = new MedicalVendorPayment(); Assert.IsNotNull(payment.PaymentInstruments); Assert.IsEmpty(payment.PaymentInstruments); }
public void MakePaymentDoesNotBombWhenAllParametersAreCorrectAndPersistenceSucceeds() { var dataRecorderMetaData = new DataRecorderMetaData { DataRecorderCreator = new OrganizationRoleUser(), DataRecorderModifier = new OrganizationRoleUser() }; var check = new Check { DataRecorderMetaData = dataRecorderMetaData }; var medicalVendorPayment = new MedicalVendorPayment { PaymentInstruments = new List <PaymentInstrument> { check } }; var medicalVendorPaymentEntity = new PhysicianPaymentEntity(); ExpectGetDataAccessAdapterAndDispose(); ExpectSaveEntity(true, true, medicalVendorPaymentEntity); ExpectSaveEntityTransaction(medicalVendorPayment, medicalVendorPaymentEntity, false); ExpectSaveEntityCollection(_validInvoiceIds.Count); ExpectSaveEntity(true, true); ExpectSaveEntity(true); Expect.Call(_validator.IsValid(medicalVendorPayment)).Return(true); _mocks.ReplayAll(); _medicalVendorPaymentRepository.MakePayment(medicalVendorPayment, _validInvoiceIds); _mocks.VerifyAll(); }
public void MakePaymentPersistsPaymentToStorageWhenEverythingIsValid() { DataRecorderMetaData dataRecorderMetaData = _dataRecorderMetaDataFactory. CreateDataRecorderMetaData(VALID_ORGANIZATION_ROLE_USER); var check = new Check { DataRecorderMetaData = dataRecorderMetaData, Amount = 5.01m, PayableTo = "PayableTo" }; var medicalVendorPayment = new MedicalVendorPayment { DataRecorderMetaData = dataRecorderMetaData, PaymentStatus = PaymentStatus.Unpaid, }; medicalVendorPayment.PaymentInstruments.Add(check); var medicalVendorInvoiceIdsToApplyPaymentTo = new List <long> { VALID_MEDICAL_VENDOR_INVOICE_ID }; _medicalVendorPaymentRepository.MakePayment(medicalVendorPayment, medicalVendorInvoiceIdsToApplyPaymentTo); }
public void MakePaymentThrowsExceptionWhenPaymentInstrumentCollectionIsEmpty() { var medicalVendorPayment = new MedicalVendorPayment(); medicalVendorPayment.PaymentInstruments.Clear(); _mocks.ReplayAll(); _medicalVendorPaymentRepository.MakePayment(medicalVendorPayment, _validInvoiceIds); _mocks.VerifyAll(); }
public void PaymentAmountReturnsAmountOfSinglePaymentInstrument() { var payment = new MedicalVendorPayment(); payment.PaymentInstruments.Add(new Check { Amount = 25m }); decimal expectedPaymentAmount = payment.PaymentInstruments[0].Amount; Assert.AreEqual(expectedPaymentAmount, payment.PaymentAmount); }
public void MakePaymentThrowsExceptionWhenPaymentIsNotValid() { var medicalVendorPayment = new MedicalVendorPayment { PaymentInstruments = new List <PaymentInstrument> { new Check() } }; Expect.Call(_validator.IsValid(medicalVendorPayment)).Return(false); Expect.Call(_validator.GetBrokenRuleErrorMessages()).Return(new List <string>()); _mocks.ReplayAll(); _medicalVendorPaymentRepository.MakePayment(medicalVendorPayment, _validInvoiceIds); _mocks.VerifyAll(); }
public void PaymentAmountReturnsSumOfThreePaymentInstrumentAmounts() { var payment = new MedicalVendorPayment(); payment.PaymentInstruments.Add(new Check { Amount = 25m }); payment.PaymentInstruments.Add(new Check { Amount = 55m }); payment.PaymentInstruments.Add(new Check { Amount = 33m }); decimal expectedPaymentAmount = payment.PaymentInstruments.Sum(p => p.Amount); Assert.AreEqual(expectedPaymentAmount, payment.PaymentAmount); }
public void GetMedicalVendorPaymentReturnsMedicalVendorPaymentForExistingId() { const int medicalVendorPaymentId = 34; const bool medicalVendorPaymentIdExists = true; ExpectGetDataAccessAdapterAndDispose(); ExpectFetchEntity(medicalVendorPaymentIdExists); ExpectGetPaymentInstrumentsForMedicalVendorPayment(medicalVendorPaymentId); ExpectCreateMedicalVendorPayment(); _mocks.ReplayAll(); MedicalVendorPayment medicalVendorPayment = _medicalVendorPaymentRepository. GetMedicalVendorPayment(medicalVendorPaymentId); _mocks.VerifyAll(); Assert.IsNotNull(medicalVendorPayment, "No medical vendor payment was returned."); }
public void MakePaymentThrowsExceptionWhenSavingPaymentToPersistenceFails() { var medicalVendorPayment = new MedicalVendorPayment { PaymentInstruments = new List <PaymentInstrument> { new Check() } }; var medicalVendorPaymentEntity = new PhysicianPaymentEntity(); ExpectGetDataAccessAdapterAndDispose(); ExpectSaveEntity(false, true, medicalVendorPaymentEntity); ExpectSaveEntityTransaction(medicalVendorPayment, medicalVendorPaymentEntity, true); Expect.Call(_validator.IsValid(medicalVendorPayment)).Return(true); _mocks.ReplayAll(); _medicalVendorPaymentRepository.MakePayment(medicalVendorPayment, _validInvoiceIds); _mocks.VerifyAll(); }
public void MapSetsPaymentStatusToByteValueOfUnpaidWhenUnpaidGiven() { var medicalVendorPayment = new MedicalVendorPayment { PaymentStatus = PaymentStatus.Unpaid, DataRecorderMetaData = new DataRecorderMetaData { DataRecorderCreator = new OrganizationRoleUser(3), DateCreated = new DateTime() } }; _mocks.ReplayAll(); PhysicianPaymentEntity medicalVendorPaymentEntity = _mapper.Map(medicalVendorPayment); _mocks.VerifyAll(); Assert.AreEqual((byte)medicalVendorPayment.PaymentStatus, medicalVendorPaymentEntity.PaymentStatus); }
public MedicalVendorPayment GetMedicalVendorPayment(int medicalVendorPaymentId) { var physicianPaymentEntity = new PhysicianPaymentEntity(medicalVendorPaymentId); using (var myAdapter = PersistenceLayer.GetDataAccessAdapter()) { if (!myAdapter.FetchEntity(physicianPaymentEntity)) { throw new ObjectNotFoundInPersistenceException <MedicalVendorPayment> (medicalVendorPaymentId); } } var paymentInstruments = _paymentInstrumentRepository. GetPaymentInstrumentsForPayment(medicalVendorPaymentId); MedicalVendorPayment medicalVendorPayment = _mapper.Map(physicianPaymentEntity); medicalVendorPayment.PaymentInstruments = paymentInstruments; return(medicalVendorPayment); }
public void MapSetsModifierIdAndDateToNullWhenModifierIsNull() { var medicalVendorPayment = new MedicalVendorPayment { DataRecorderMetaData = new DataRecorderMetaData { DataRecorderCreator = new OrganizationRoleUser(3), DateCreated = new DateTime() } }; medicalVendorPayment.DataRecorderMetaData.DataRecorderModifier = null; _mocks.ReplayAll(); PhysicianPaymentEntity medicalVendorPaymentEntity = _mapper.Map(medicalVendorPayment); _mocks.VerifyAll(); Assert.IsNull(medicalVendorPaymentEntity.DataRecoderModifierId); Assert.IsNull(medicalVendorPaymentEntity.DateModifed); }
public void MapMapsPaymentPropertiesToCorrectEntityProperties() { var medicalVendorPayment = new MedicalVendorPayment(3) { Notes = "Notes", DataRecorderMetaData = new DataRecorderMetaData { DataRecorderCreator = new OrganizationRoleUser(3), DateCreated = new DateTime() } }; _mocks.ReplayAll(); PhysicianPaymentEntity medicalVendorPaymentEntity = _mapper.Map(medicalVendorPayment); _mocks.VerifyAll(); Assert.AreEqual(medicalVendorPayment.Id, medicalVendorPaymentEntity.PhysicianPaymentId); Assert.AreEqual(medicalVendorPayment.Notes, medicalVendorPaymentEntity.Notes); Assert.AreEqual(medicalVendorPayment.DataRecorderMetaData.DataRecorderCreator.Id, medicalVendorPaymentEntity.DataRecoderCreatorId); Assert.AreEqual(medicalVendorPayment.DataRecorderMetaData.DateCreated, medicalVendorPaymentEntity.DateCreated); }
public void TearDown() { _medicalVendorPayment = null; _medicalVendorPaymentValidator = null; }
public void PaymentAmountReturns0WhenPaymentInstrumentsCollectionIsEmpty() { var payment = new MedicalVendorPayment(); Assert.AreEqual(0m, payment.PaymentAmount); }
private void ExpectSaveEntityTransaction(MedicalVendorPayment medicalVendorPayment, PhysicianPaymentEntity medicalVendorPaymentEntity, bool rollBack) { Expect.Call(_mockedMapper.Map(medicalVendorPayment)).Return(medicalVendorPaymentEntity); ExpectTransaction("MedicalVendorPaymentRepository.MakePayment", !rollBack); }
public void SetUp() { _medicalVendorPayment = GetValidMedicalVendorPayment(); _medicalVendorPaymentValidator = new Validator <MedicalVendorPayment>(new MedicalVendorPaymentValidationRuleFactory()); }
public void MakePayment(MedicalVendorPayment medicalVendorPayment, List <long> medicalVendorInvoiceIdsToApplyPaymentTo) { if (medicalVendorPayment == null) { throw new ArgumentNullException("medicalVendorPayment"); } if (medicalVendorInvoiceIdsToApplyPaymentTo == null) { throw new ArgumentNullException("medicalVendorInvoiceIdsToApplyPaymentTo"); } if (medicalVendorPayment.PaymentInstruments.Count == 0 || medicalVendorInvoiceIdsToApplyPaymentTo.Count == 0) { throw new EmptyCollectionException(); } if (!_validator.IsValid(medicalVendorPayment)) { throw new InvalidObjectException <MedicalVendorPayment>(_validator); } PhysicianPaymentEntity medicalVendorPaymentEntity = _mapper.Map(medicalVendorPayment); using (var myAdapter = PersistenceLayer.GetDataAccessAdapter()) { myAdapter.StartTransaction(IsolationLevel.ReadCommitted, "MedicalVendorPaymentRepository.MakePayment"); try { // Persist payment. if (!myAdapter.SaveEntity(medicalVendorPaymentEntity, true)) { throw new PersistenceFailureException(); } // Persist payment instrument(s) & associate with payment. foreach (Check check in medicalVendorPayment.PaymentInstruments) { long?dataRecoderModifierId = null; if (check.DataRecorderMetaData.DataRecorderModifier != null) { dataRecoderModifierId = check.DataRecorderMetaData.DataRecorderModifier.Id; } var checkEntity = new CheckEntity { AccountNumber = check.AccountNumber, CheckNumber = check.CheckNumber, RoutingNumber = check.RoutingNumber, BankName = check.BankName, Memo = check.Memo, DataRecoderCreatorId = check.DataRecorderMetaData.DataRecorderCreator.Id, DateCreated = check.DataRecorderMetaData.DateCreated, DataRecoderModifierId = dataRecoderModifierId, DateModified = check.DataRecorderMetaData.DateModified, Amount = check.Amount, PayableTo = check.PayableTo, CheckDate = check.CheckDate }; if (!myAdapter.SaveEntity(checkEntity, true)) { throw new PersistenceFailureException(); } var paymentCheckDetailEntity = new MVPaymentCheckDetailsEntity(checkEntity.CheckId, medicalVendorPaymentEntity.PhysicianPaymentId); if (!myAdapter.SaveEntity(paymentCheckDetailEntity)) { throw new PersistenceFailureException(); } } // Associate payment with invoice(s). long medicalVendorPaymentId = medicalVendorPaymentEntity.PhysicianPaymentId; var medicalVendorPaymentInvoiceEntities = new EntityCollection <PhysicianPaymentInvoiceEntity>(); foreach (var medicalVendorInvoiceId in medicalVendorInvoiceIdsToApplyPaymentTo) { medicalVendorPaymentInvoiceEntities.Add(new PhysicianPaymentInvoiceEntity (medicalVendorPaymentId, medicalVendorInvoiceId)); } myAdapter.SaveEntityCollection(medicalVendorPaymentInvoiceEntities); myAdapter.Commit(); } catch (Exception) { myAdapter.Rollback(); throw; } } }