Пример #1
0
        // Braintree enforces a 50-cards-per-user restriction, so we can't keep adding/removing cards for the test user.
        public void CreateCreditCards()
        {
            ICreateCreditCards  createInterface  = ClientModuleIntegrationTestingUtilities.GetSandboxedLevelUpModule <ICreateCreditCards>();
            IDestroyCreditCards destroyInterface = ClientModuleIntegrationTestingUtilities.GetSandboxedLevelUpModule <IDestroyCreditCards>();
            IQueryCreditCards   queryInterface   = ClientModuleIntegrationTestingUtilities.GetSandboxedLevelUpModule <IQueryCreditCards>();

            CreditCard created = createInterface.CreateCreditCard(ClientModuleIntegrationTestingUtilities.SandboxedLevelUpMerchantAccessToken,
                                                                  ClientModuleIntegrationTestingUtilities.SandboxIntegrationTestCreditCard);

            List <CreditCard> creditCards = new List <CreditCard>(queryInterface.ListCreditCards(ClientModuleIntegrationTestingUtilities.SandboxedLevelUpMerchantAccessToken));

            Assert.AreEqual(creditCards.FindAll(x => x.Id == created.Id).Count, 1);

            destroyInterface.DeleteCreditCard(ClientModuleIntegrationTestingUtilities.SandboxedLevelUpMerchantAccessToken, created.Id);

            creditCards = new List <CreditCard> (queryInterface.ListCreditCards(ClientModuleIntegrationTestingUtilities.SandboxedLevelUpMerchantAccessToken));
            Assert.AreEqual(creditCards.FindAll(x => x.Id == created.Id).Count, 0);

            // Note: The card won't actually be deleted in the cleanup for this test, just deactivated.  AFAIK cards cannot be deleted via
            // the api, and they just languish in a deactivated state.  As a result, the sandbox merchant account that is used for integration
            // tests may wind up with a bunch of old credit card entries.
        }
        public void DeleteCreditCardShouldSucceed()
        {
            const int    id  = 305999;
            const int    bin = 123456;
            const int    expiration_month = 7;
            const int    expiration_year  = 2015;
            const bool   promoted         = true;
            const string description      = "JCBendingin1234";
            const string last_4           = "1234";
            const string state            = "inactive";
            const string @type            = "JCB";

            string expectedRequestUrl = string.Format("https://sandbox.thelevelup.com/v14/credit_cards/{0}", id);

            RestResponse expectedResponse = new RestResponse
            {
                StatusCode = HttpStatusCode.OK,
                Content    = string.Format("{{" +
                                           "\"credit_card\":{{" +
                                           "\"bin\":\"{0}\"," +
                                           "\"description\":\"{1}\"," +
                                           "\"expiration_month\":{2}," +
                                           "\"expiration_year\":{3}," +
                                           "\"id\":{4}," +
                                           "\"last_4\":\"{5}\"," +
                                           "\"promoted\":{6}," +
                                           "\"state\":\"{7}\"," +
                                           "\"type\":\"{8}\"" +
                                           "}}" +
                                           "}}",
                                           bin, description, expiration_month, expiration_year, id, last_4, promoted, state, @type)
            };

            IDestroyCreditCards client = ClientModuleUnitTestingUtilities.GetMockedLevelUpModule <IDestroyCreditCards>(
                expectedResponse, expectedRequestUrl: expectedRequestUrl);

            client.DeleteCreditCard("not_checking_this", id);
        }
Пример #3
0
        [Test] // Braintree enforces a 50-cards-per-user restriction, so we can't keep adding/removing cards for the test user.
        public void DestroyCard()
        {
            IQueryCreditCards   queryClient   = ClientModuleIntegrationTestingUtilities.GetSandboxedLevelUpModule <IQueryCreditCards>();
            IDestroyCreditCards destroyClient = ClientModuleIntegrationTestingUtilities.GetSandboxedLevelUpModule <IDestroyCreditCards>();
            ICreateCreditCards  createClient  = ClientModuleIntegrationTestingUtilities.GetSandboxedLevelUpModule <ICreateCreditCards>();

            var toCreate = createClient.CreateCreditCard(ClientModuleIntegrationTestingUtilities.SandboxedLevelUpUserAccessToken,
                                                         ClientModuleIntegrationTestingUtilities.SandboxIntegrationTestCreditCard);

            var cards = queryClient.ListCreditCards(ClientModuleIntegrationTestingUtilities.SandboxedLevelUpUserAccessToken);

            Assert.AreEqual(cards.Count, 1);
            Assert.AreEqual(cards[0].Active, true);
            Assert.AreEqual(cards[0].Id, toCreate.Id);

            destroyClient.DeleteCreditCard(ClientModuleIntegrationTestingUtilities.SandboxedLevelUpUserAccessToken, toCreate.Id);

            cards = queryClient.ListCreditCards(ClientModuleIntegrationTestingUtilities.SandboxedLevelUpUserAccessToken);
            Assert.AreEqual(cards.Count, 0);

            createClient.CreateCreditCard(ClientModuleIntegrationTestingUtilities.SandboxedLevelUpUserAccessToken,
                                          ClientModuleIntegrationTestingUtilities.SandboxIntegrationTestCreditCard);
        }
Пример #4
0
        [Test]  // Braintree enforces a 50-cards-per-user restriction, so we can't keep adding/removing cards for the
                // test user.  This test requires adding/removing cards.
        public void QueryCreditCards()
        {
            IQueryCreditCards   queryInterface   = ClientModuleIntegrationTestingUtilities.GetSandboxedLevelUpModule <IQueryCreditCards>();
            ICreateCreditCards  createInterface  = ClientModuleIntegrationTestingUtilities.GetSandboxedLevelUpModule <ICreateCreditCards>();
            IDestroyCreditCards destroyInterface = ClientModuleIntegrationTestingUtilities.GetSandboxedLevelUpModule <IDestroyCreditCards>();

            var existingCards = queryInterface.ListCreditCards(ClientModuleIntegrationTestingUtilities.SandboxedLevelUpUserAccessToken);

            foreach (var card in existingCards)
            {
                destroyInterface.DeleteCreditCard(ClientModuleIntegrationTestingUtilities.SandboxedLevelUpUserAccessToken, card.Id);
            }

            Assert.AreEqual(queryInterface.ListCreditCards(ClientModuleIntegrationTestingUtilities.SandboxedLevelUpUserAccessToken).Count, 0);

            createInterface.CreateCreditCard(ClientModuleIntegrationTestingUtilities.SandboxedLevelUpUserAccessToken,
                                             ClientModuleIntegrationTestingUtilities.SandboxIntegrationTestCreditCard);

            var newCards = queryInterface.ListCreditCards(ClientModuleIntegrationTestingUtilities.SandboxedLevelUpUserAccessToken);

            Assert.AreEqual(newCards.Count, 1);
            Assert.AreEqual(newCards[0].State.ToLower(), "active");
            Assert.AreEqual(newCards[0].Promoted, true);
        }