public void testPostToCreateDonationAndDistributionUnauthenticated() { var contactId = 999999; var donationId = 6186818; var charge = new StripeCharge() { Id = "ch_crdscharge86868", BalanceTransaction = new StripeBalanceTransaction() { Fee = 987 } }; var createDonationDTO = new CreateDonationDTO { ProgramId = "3", //crossroads Amount = 86868, DonorId = 394256, EmailAddress = "*****@*****.**", PaymentType = "bank" }; var donor = new ContactDonor { ContactId = contactId, DonorId = 424242, SetupDate = new DateTime(), StatementFreq = "1", StatementMethod = "2", StatementType = "3", ProcessorId = "cus_test1234567", Email = "moc.tset@tset" }; fixture.Request.Headers.Authorization = null; gatewayDonorServiceMock.Setup(mocked => mocked.GetContactDonorForEmail(createDonationDTO.EmailAddress)).Returns(donor); stripeServiceMock.Setup(mocked => mocked.ChargeCustomer(donor.ProcessorId, createDonationDTO.Amount, donor.DonorId)). Returns(charge); donorServiceMock.Setup(mocked => mocked. CreateDonationAndDistributionRecord(It.Is<DonationAndDistributionRecord>( d => d.DonationAmt == createDonationDTO.Amount && d.FeeAmt == charge.BalanceTransaction.Fee && d.DonorId == donor.DonorId && d.ProgramId.Equals(createDonationDTO.ProgramId) && d.PledgeId == null && d.ChargeId.Equals(charge.Id) && d.PymtType.Equals(createDonationDTO.PaymentType) && d.ProcessorId.Equals(donor.ProcessorId) && !d.RegisteredDonor && !d.Anonymous && !d.RecurringGift && d.RecurringGiftId == null && d.DonorAcctId == null && d.CheckScannerBatchName == null && d.DonationStatus == null && d.CheckNumber == null))) .Returns(donationId); IHttpActionResult result = fixture.Post(createDonationDTO); donorServiceMock.VerifyAll(); stripeServiceMock.VerifyAll(); donorServiceMock.VerifyAll(); Assert.IsNotNull(result); Assert.IsInstanceOf(typeof(OkNegotiatedContentResult<DonationDTO>), result); var okResult = (OkNegotiatedContentResult<DonationDTO>)result; Assert.AreEqual(6186818, donationId); var resultDto = ((OkNegotiatedContentResult<DonationDTO>)result).Content; Assert.IsNotNull(resultDto); Assert.AreEqual(donor.Email, resultDto.Email); }
public void testPostToCreateDonationAndDistributionWithPledgeAuthenticated() { var contactId = 999999; var donationId = 6186818; var charge = new StripeCharge() { Id = "ch_crdscharge86868", BalanceTransaction = new StripeBalanceTransaction() { Fee = 987 } }; var createDonationDTO = new CreateDonationDTO { ProgramId = "3", //crossroads Amount = 86868, DonorId = 394256, EmailAddress = "*****@*****.**", PledgeCampaignId = 23, PledgeDonorId = 42, GiftMessage = "Don't look a Gift Horse in the Mouth!", PaymentType = "junk bonds" }; var donor = new ContactDonor { ContactId = contactId, DonorId = 424242, SetupDate = new DateTime(), StatementFreq = "1", StatementMethod = "2", StatementType = "3", ProcessorId = "cus_test1234567", Email = "moc.tset@tset" }; var pledgeId = 3456; var pledge = new Pledge { DonorId = 1, PledgeCampaignId = 2, PledgeId = pledgeId, PledgeStatusId = 1 }; authenticationServiceMock.Setup(mocked => mocked.GetContactId(authType + " " + authToken)).Returns(contactId); donorServiceMock.Setup(mocked => mocked.GetContactDonor(contactId)) .Returns(donor); mpPledgeService.Setup(mocked => mocked.GetPledgeByCampaignAndDonor(createDonationDTO.PledgeCampaignId.Value, createDonationDTO.PledgeDonorId.Value)).Returns(pledge); mpDonationService.Setup(mocked => mocked.SendMessageFromDonor(pledgeId, createDonationDTO.GiftMessage)); stripeServiceMock.Setup( mocked => mocked.ChargeCustomer(donor.ProcessorId, createDonationDTO.Amount, donor.DonorId)) .Returns(charge); donorServiceMock.Setup(mocked => mocked. CreateDonationAndDistributionRecord(It.Is<DonationAndDistributionRecord>( d => d.DonationAmt == createDonationDTO.Amount && d.FeeAmt == charge.BalanceTransaction.Fee && d.DonorId == donor.DonorId && d.ProgramId.Equals(createDonationDTO.ProgramId) && d.PledgeId == pledgeId && d.ChargeId.Equals(charge.Id) && d.PymtType.Equals(createDonationDTO.PaymentType) && d.ProcessorId.Equals(donor.ProcessorId) && d.RegisteredDonor && !d.Anonymous && !d.RecurringGift && d.RecurringGiftId == null && d.DonorAcctId == null && d.CheckScannerBatchName == null && d.DonationStatus == null && d.CheckNumber == null))) .Returns(donationId); IHttpActionResult result = fixture.Post(createDonationDTO); authenticationServiceMock.VerifyAll(); donorServiceMock.VerifyAll(); stripeServiceMock.VerifyAll(); donorServiceMock.VerifyAll(); mpPledgeService.VerifyAll(); Assert.IsNotNull(result); Assert.IsInstanceOf(typeof(OkNegotiatedContentResult<DonationDTO>), result); var okResult = (OkNegotiatedContentResult<DonationDTO>)result; Assert.AreEqual(6186818, donationId); var resultDto = ((OkNegotiatedContentResult<DonationDTO>)result).Content; Assert.IsNotNull(resultDto); Assert.AreEqual(donor.Email, resultDto.Email); }