public void CreateRefundForUnFinalizedProposedOrder() { int availableDiscountCents = ClientModuleIntegrationTestingUtilities.GetAvailableDiscountCredit(LevelUpTestConfiguration.Current.ConsumerQrData); const int giftCardAmountToUseInCents = 1000; ClientModuleIntegrationTestingUtilities.RemoveAnyGiftCardCreditOnConsumerUserAccount(); ClientModuleIntegrationTestingUtilities.AddGiftCardCreditOnConsumerUserAccount(giftCardAmountToUseInCents); const int taxAmountInCents = 100; int costOfItemInCents = availableDiscountCents + giftCardAmountToUseInCents + taxAmountInCents + 500; IManageProposedOrders orderClient = ClientModuleIntegrationTestingUtilities.GetSandboxedLevelUpModule <IManageProposedOrders>(); var proposedOrder = orderClient.CreateProposedOrder(ClientModuleIntegrationTestingUtilities.SandboxedLevelUpMerchantAccessToken, LevelUpTestConfiguration.Current.MerchantLocationId, LevelUpTestConfiguration.Current.ConsumerQrData, costOfItemInCents, costOfItemInCents, taxAmountInCents, 0, null, null, null, null, true, null); ICreateRefund refundClient = ClientModuleIntegrationTestingUtilities.GetSandboxedLevelUpModule <ICreateRefund>(); refundClient.RefundOrder(ClientModuleIntegrationTestingUtilities.SandboxedLevelUpMerchantAccessToken, proposedOrder.ProposedOrderIdentifier); }
public void ProposedOrderWithPartialAuth_ShouldSucceed() { int giftCardAmount = 1000; ClientModuleIntegrationTestingUtilities.RemoveAnyGiftCardCreditOnConsumerWithNoLinkedPaymentUserAccount(); ClientModuleIntegrationTestingUtilities.AddGiftCardCreditOnConsumerWithNoLinkedPaymentUserAccount(giftCardAmount); var credit = ClientModuleIntegrationTestingUtilities.GetAvailableDiscountCredit(LevelUpTestConfiguration.Current.ConsumerWithNoLinkedPaymentQrData); int spendAmount = (1000 + giftCardAmount + credit); IManageProposedOrders orderClient = ClientModuleIntegrationTestingUtilities.GetSandboxedLevelUpModule <IManageProposedOrders>(); var proposedOrder = orderClient.CreateProposedOrder(ClientModuleIntegrationTestingUtilities.SandboxedLevelUpMerchantAccessToken, LevelUpTestConfiguration.Current.MerchantLocationId, LevelUpTestConfiguration.Current.ConsumerWithNoLinkedPaymentQrData, spendAmount, spendAmount, 0, 0, null, null, null, null, true, false, null); Assert.AreEqual(proposedOrder.DiscountAmountCents, credit); var completedOrder = orderClient.CompleteProposedOrder(ClientModuleIntegrationTestingUtilities.SandboxedLevelUpMerchantAccessToken, LevelUpTestConfiguration.Current.MerchantLocationId, LevelUpTestConfiguration.Current.ConsumerWithNoLinkedPaymentQrData, proposedOrder.ProposedOrderIdentifier, spendAmount, spendAmount, 0, 0, proposedOrder.DiscountAmountCents, null, null, null, null, true, false, null); Assert.AreEqual(completedOrder.SpendAmount, credit + giftCardAmount); Assert.AreNotEqual(completedOrder.SpendAmount, spendAmount); ICreateRefund refundClient = ClientModuleIntegrationTestingUtilities.GetSandboxedLevelUpModule <ICreateRefund>(); refundClient.RefundOrder(ClientModuleIntegrationTestingUtilities.SandboxedLevelUpMerchantAccessToken, completedOrder.OrderIdentifier); }
public void CreateRefundForNonExistantOrder() { ICreateRefund refundInterface = ClientModuleIntegrationTestingUtilities.GetSandboxedLevelUpModule <ICreateRefund>(); Assert.Throws <LevelUpApiException>(() => { refundInterface.RefundOrder(ClientModuleIntegrationTestingUtilities.SandboxedLevelUpMerchantAccessToken, "aaa"); }); }
public void RefundOrderShouldSucceedSansManagerConfirmation() { const string uuid = "bf143c9084810132faf95a123bd6cde9"; const string created_at = "2015-01-22T11:29:22-05:00"; const int location_id = 19; const int loyalty_id = 20; const string refunded_at = "2015-01-22T14:28:05-05:00"; const string user_display_name = "TestCredsT."; const int earn_amount = 0; const int merchant_funded_credit_amount = 0; const int spend_amount = 10; const int tip_amount = 0; const int total_amount = 10; string expectedRequestUrl = string.Format(ClientModuleFunctionalTestingUtilities.SANDBOX_URL_PREFIX + "/v15/orders/{0}/refund", uuid); RestResponse expectedResponse = new RestResponse { StatusCode = HttpStatusCode.OK, Content = string.Format("{{" + "\"order\":{{" + "\"created_at\":\"{0}\"," + "\"location_id\":{1}," + "\"loyalty_id\":{2}," + "\"refunded_at\":\"{3}\"," + "\"user_display_name\":\"{4}\"," + "\"uuid\":\"{5}\"," + "\"earn_amount\":{6}," + "\"merchant_funded_credit_amount\":{7}," + "\"spend_amount\":{8}," + "\"tip_amount\":{9}," + "\"total_amount\":{10}" + "}}" + "}}", created_at, location_id, loyalty_id, refunded_at, user_display_name, uuid, earn_amount, merchant_funded_credit_amount, spend_amount, tip_amount, total_amount) }; string expectedRequest = string.Empty; ICreateRefund client = ClientModuleFunctionalTestingUtilities.GetMockedLevelUpModule <ICreateRefund, RefundRequest>( expectedResponse, expectedRequest, expectedRequestUrl: expectedRequestUrl); var order = client.RefundOrder("not_checking_this", uuid); Assert.AreEqual(order.EarnAmount, earn_amount); Assert.AreEqual(order.LocationId, location_id); Assert.AreEqual(order.LoyaltyId, loyalty_id); Assert.AreEqual(order.MerchantFundedCreditAmount, merchant_funded_credit_amount); Assert.AreEqual(order.OrderIdentifier, uuid); Assert.AreEqual(order.SpendAmount, spend_amount); Assert.AreEqual(order.TipAmount, tip_amount); Assert.AreEqual(order.UserName, user_display_name); Assert.AreEqual(order.TimeOfRefund, refunded_at); Assert.AreEqual(order.CreatedAt, created_at); }
public void ProposedOrderWithDiscountAndGiftCard_ShouldSucceed() { int availableDiscountCents = ClientModuleIntegrationTestingUtilities.GetAvailableDiscountCredit(LevelUpTestConfiguration.Current.ConsumerQrData); const int giftCardAmountToUseInCents = 1000; ClientModuleIntegrationTestingUtilities.RemoveAnyGiftCardCreditOnConsumerUserAccount(); ClientModuleIntegrationTestingUtilities.AddGiftCardCreditOnConsumerUserAccount(giftCardAmountToUseInCents); const int taxAmountInCents = 100; // Make sure that gift card, credit card, and discount(if available) will all be requried as part of this test payment. int costOfItemInCents = availableDiscountCents + giftCardAmountToUseInCents + taxAmountInCents + 500; IManageProposedOrders orderClient = ClientModuleIntegrationTestingUtilities.GetSandboxedLevelUpModule <IManageProposedOrders>(); var proposedOrder = orderClient.CreateProposedOrder(ClientModuleIntegrationTestingUtilities.SandboxedLevelUpMerchantAccessToken, LevelUpTestConfiguration.Current.MerchantLocationId, LevelUpTestConfiguration.Current.ConsumerQrData, costOfItemInCents, costOfItemInCents, taxAmountInCents, 0, null, null, null, null, true, false, null); Assert.AreEqual(proposedOrder.DiscountAmountCents, availableDiscountCents); int taxAmountAfterDiscountApplied = (taxAmountInCents * (costOfItemInCents - proposedOrder.DiscountAmountCents)) / costOfItemInCents; var completedOrder = orderClient.CompleteProposedOrder(ClientModuleIntegrationTestingUtilities.SandboxedLevelUpMerchantAccessToken, LevelUpTestConfiguration.Current.MerchantLocationId, LevelUpTestConfiguration.Current.ConsumerQrData, proposedOrder.ProposedOrderIdentifier, costOfItemInCents, costOfItemInCents, taxAmountAfterDiscountApplied, 0, proposedOrder.DiscountAmountCents, null, null, null, null, true, false, null); Assert.AreEqual(completedOrder.GiftCardTipAmount, 0); Assert.AreEqual(completedOrder.GiftCardTotalAmount, giftCardAmountToUseInCents); Assert.AreEqual(completedOrder.GiftCardTipAmount, 0); Assert.AreEqual(completedOrder.TipAmount, 0); Assert.AreEqual(completedOrder.SpendAmount, costOfItemInCents); ICreateRefund refundClient = ClientModuleIntegrationTestingUtilities.GetSandboxedLevelUpModule <ICreateRefund>(); refundClient.RefundOrder(ClientModuleIntegrationTestingUtilities.SandboxedLevelUpMerchantAccessToken, completedOrder.OrderIdentifier); }