Beispiel #1
0
        public async Task TestActivateDripCampaignAsyncWithAllParameters()
        {
            Trace.WriteLine(String.Format("POST /drip_campaigns/{0}/activate with all parameters", DEFAULT_CAMPAIGN_ID));

            // Build the drip campaign object
            var recipient    = new EmailRecipient(DEFAULT_RECIPIENT_EMAIL_ADDRESS, DEFAULT_EMAIL_NAME);
            var dripCampaign = new DripCampaign(recipient);

            dripCampaign.cc.Add(new EmailRecipient(DEFAULT_CC_EMAIL_ADDRESS_1, DEFAULT_EMAIL_NAME));
            dripCampaign.cc.Add(new EmailRecipient(DEFAULT_CC_EMAIL_ADDRESS_2, DEFAULT_EMAIL_NAME));
            dripCampaign.bcc.Add(new EmailRecipient(DEFAULT_BCC_EMAIL_ADDRESS_1, DEFAULT_EMAIL_NAME));
            dripCampaign.bcc.Add(new EmailRecipient(DEFAULT_BCC_EMAIL_ADDRESS_2, DEFAULT_EMAIL_NAME));
            dripCampaign.sender.address  = DEFAULT_SENDER_EMAIL_ADDRESS;
            dripCampaign.sender.name     = DEFAULT_SENDER_NAME;
            dripCampaign.sender.reply_to = DEFAULT_REPLY_TO_EMAIL_ADDRESS;
            dripCampaign.tags.Add(DEFAULT_TAG_1);
            dripCampaign.tags.Add(DEFAULT_TAG_2);
            dripCampaign.tags.Add(DEFAULT_TAG_3);
            dripCampaign.locale      = DEFAULT_LOCALE;
            dripCampaign.esp_account = DEFAULT_ESP_ACCOUNT_ID;
            dripCampaign.email_data.Add("amount", "$12.00");

            // Make the API call
            try
            {
                var dripCampaignResponse = await dripCampaign.ActivateAsync(DEFAULT_CAMPAIGN_ID);

                // Validate the response
                SendwithusClientTest.ValidateResponse(dripCampaignResponse);
            }
            catch (AggregateException exception)
            {
                Assert.Fail(exception.ToString());
            }
        }
        public async Task TestBatchApiRequestsTenRequestsAsync()
        {
            Trace.WriteLine("POST /batch");

            // Start the batch request
            BatchApiRequest.StartNewBatchRequest();

            // Make the API calls to be batched (at least one of each type)
            try
            {
                await TemplateTest.BuildAndSendCreateTemplateRequestWithAllParametersAsync(); // POST

                await Snippet.GetSnippetsAsync();                                             // GET

                await Customer.GetCustomerAsync(CustomerTest.DEFAULT_CUSTOMER_EMAIL_ADDRESS); // GET

                await RenderTest.BuildAndSendRenderTemplateRequestWithAllParametersId();      // POST

                await Log.GetLogEventsAsync(BatchApiRequestTest.DEFAULT_LOG_ID);              // GET

                await Customer.GetCustomerAsync(CustomerTest.DEFAULT_CUSTOMER_EMAIL_ADDRESS); // GET

                await EmailTest.BuildAndSendEmailWithAllParametersAsync();                    // POST

                await DripCampaign.GetDripCampaignsAsync();                                   // GET

                await Customer.GetCustomerAsync(CustomerTest.DEFAULT_CUSTOMER_EMAIL_ADDRESS); // GET

                await Customer.GetCustomerAsync(CustomerTest.DEFAULT_CUSTOMER_EMAIL_ADDRESS); // GET

                // Make the batch Api Reqeust
                var batchResponses = await BatchApiRequest.SendBatchApiRequest();

                // Validate the response to the batch API request
                ValidateBatchApiCallResponses(batchResponses, 10);

                // Validate the response to the individual API calls
                ValidateIndividualBatchedApiCallResponse <Template>(batchResponses[0]);
                ValidateIndividualBatchedApiCallResponse <List <Snippet> >(batchResponses[1]);
                ValidateIndividualBatchedApiCallResponse <Customer>(batchResponses[2]);
                ValidateIndividualBatchedApiCallResponse <RenderTemplateResponse>(batchResponses[3]);
                ValidateIndividualBatchedApiCallResponse <List <Log> >(batchResponses[4]);
                ValidateIndividualBatchedApiCallResponse <Customer>(batchResponses[5]);
                ValidateIndividualBatchedApiCallResponse <EmailResponse>(batchResponses[6]);
                ValidateIndividualBatchedApiCallResponse <List <DripCampaignDetails> >(batchResponses[7]);
                ValidateIndividualBatchedApiCallResponse <Customer>(batchResponses[8]);
                ValidateIndividualBatchedApiCallResponse <Customer>(batchResponses[9]);
            }
            catch (AggregateException exception)
            {
                Assert.Fail(exception.ToString());
            }
        }
Beispiel #3
0
        public async Task TestGetDripCampaignAsync()
        {
            Trace.WriteLine(String.Format("GET /drip_campaigns/{0}", DEFAULT_CAMPAIGN_ID));

            // Make the API call
            try
            {
                var response = await DripCampaign.GetDripCampaignAsync(DEFAULT_CAMPAIGN_ID);

                // Validate the response
                SendwithusClientTest.ValidateResponse(response);
            }
            catch (AggregateException exception)
            {
                Assert.Fail(exception.ToString());
            }
        }
Beispiel #4
0
        public async Task TestGetDripCampaignsAsync()
        {
            Trace.WriteLine("GET /drip_campaigns");

            // Make the API call
            try
            {
                var dripCampaignDetails = await DripCampaign.GetDripCampaignsAsync();

                // Validate the response
                SendwithusClientTest.ValidateResponse(dripCampaignDetails);
            }
            catch (AggregateException exception)
            {
                Assert.Fail(exception.ToString());
            }
        }
Beispiel #5
0
        public async Task TestDeactivateFromAllDripCampaignsAsync()
        {
            Trace.WriteLine(String.Format("POST /drip_campaigns/{0}/deactivate", DEFAULT_CAMPAIGN_ID));

            // Make the API call
            try
            {
                var dripCampaignDeactivateResponse = await DripCampaign.DeactivateFromAllCampaignsAsync(DEFAULT_RECIPIENT_EMAIL_ADDRESS);

                // Validate the response
                SendwithusClientTest.ValidateResponse(dripCampaignDeactivateResponse);
            }
            catch (AggregateException exception)
            {
                Assert.Fail(exception.ToString());
            }
        }
Beispiel #6
0
        public async Task TestActivateDripCampaignWithInvalidParameters()
        {
            Trace.WriteLine(String.Format("POST /drip_campaigns/{0}/activate with invalid campaign ID", INVALID_CAMPAIGN_ID));

            // Build the drip campaign object
            var recipient    = new EmailRecipient(DEFAULT_RECIPIENT_EMAIL_ADDRESS);
            var dripCampaign = new DripCampaign(recipient);

            // Make the API call
            try {
                var response = await dripCampaign.ActivateAsync(INVALID_CAMPAIGN_ID);
            }
            catch (AggregateException exception)
            {
                // Make sure the response was HTTP 400 Bad Request
                SendwithusClientTest.ValidateException(exception, HttpStatusCode.BadRequest);
            }
        }
Beispiel #7
0
        public async Task TestActivateDripCampaignAsyncWithMinimumParameters()
        {
            Trace.WriteLine(String.Format("POST /drip_campaigns/{0}/activate with minimum parameters", DEFAULT_CAMPAIGN_ID));

            // Build the drip campaign object
            var recipient    = new EmailRecipient(DEFAULT_RECIPIENT_EMAIL_ADDRESS);
            var dripCampaign = new DripCampaign(recipient);

            // Make the API call
            try
            {
                var dripCampaignResponse = await dripCampaign.ActivateAsync(DEFAULT_CAMPAIGN_ID);

                // Validate the response
                SendwithusClientTest.ValidateResponse(dripCampaignResponse);
            }
            catch (AggregateException exception)
            {
                Assert.Fail(exception.ToString());
            }
        }
        public async Task TestBatchApiRequestsTwelveRequestsWithoutOverrideAsync()
        {
            Trace.WriteLine("POST /batch");

            // Start the batch request
            BatchApiRequest.StartNewBatchRequest();

            // Override the maximum number of API calls that can be included in this batch
            BatchApiRequest.OverrideMaximumBatchRequests(12);

            // Make the API calls to be batched (at least one of each type)
            try
            {
                await TemplateTest.BuildAndSendCreateTemplateRequestWithAllParametersAsync(); // POST

                await Snippet.GetSnippetsAsync();                                             // GET

                await Customer.GetCustomerAsync(CustomerTest.DEFAULT_CUSTOMER_EMAIL_ADDRESS); // GET

                await RenderTest.BuildAndSendRenderTemplateRequestWithAllParametersId();      // POST

                await Log.GetLogEventsAsync(BatchApiRequestTest.DEFAULT_LOG_ID);              // GET

                await Customer.GetCustomerAsync(CustomerTest.DEFAULT_CUSTOMER_EMAIL_ADDRESS); // GET

                await EmailTest.BuildAndSendEmailWithAllParametersAsync();                    // POST

                await DripCampaign.GetDripCampaignsAsync();                                   // GET

                await Customer.GetCustomerAsync(CustomerTest.DEFAULT_CUSTOMER_EMAIL_ADDRESS); // GET

                await Customer.GetCustomerAsync(CustomerTest.DEFAULT_CUSTOMER_EMAIL_ADDRESS); // GET

                await Customer.GetCustomerAsync(CustomerTest.DEFAULT_CUSTOMER_EMAIL_ADDRESS); // GET

                // Make the batch Api Request
                var batchResponses = await BatchApiRequest.SendBatchApiRequest();

                // Validate the response to the batch API request
                ValidateBatchApiCallResponses(batchResponses, 11);

                // Validate the response to the individual API calls
                ValidateIndividualBatchedApiCallResponse <Template>(batchResponses[0]);
                ValidateIndividualBatchedApiCallResponse <List <Snippet> >(batchResponses[1]);
                ValidateIndividualBatchedApiCallResponse <Customer>(batchResponses[2]);
                ValidateIndividualBatchedApiCallResponse <RenderTemplateResponse>(batchResponses[3]);
                ValidateIndividualBatchedApiCallResponse <List <Log> >(batchResponses[4]);
                ValidateIndividualBatchedApiCallResponse <Customer>(batchResponses[5]);
                ValidateIndividualBatchedApiCallResponse <EmailResponse>(batchResponses[6]);
                ValidateIndividualBatchedApiCallResponse <List <DripCampaignDetails> >(batchResponses[7]);
                ValidateIndividualBatchedApiCallResponse <Customer>(batchResponses[8]);
                ValidateIndividualBatchedApiCallResponse <Customer>(batchResponses[9]);
                ValidateIndividualBatchedApiCallResponse <Customer>(batchResponses[10]);
            }
            catch (InvalidOperationException exception)
            {
                Trace.WriteLine(String.Format("Successfully caught exception triggered by adding too many API calls to the batch API request. Error message: {0}", exception.Message));
                Assert.IsTrue(true);
            }
            finally
            {
                // Return the max batch request limit to its default value
                BatchApiRequest.SetMaximumBatchRequestsToDefault();
            }
        }
        public async Task TestBatchApiRequestsElevenRequestsWithoutOverrideAsync()
        {
            Trace.WriteLine("POST /batch");

            // Start the batch request
            BatchApiRequest.StartNewBatchRequest();

            try
            {
                // Make the API calls to be batched (at least one of each type)
                await TemplateTest.BuildAndSendCreateTemplateRequestWithAllParametersAsync(); // POST

                await Snippet.GetSnippetsAsync();                                             // GET

                await Customer.GetCustomerAsync(CustomerTest.DEFAULT_CUSTOMER_EMAIL_ADDRESS); // GET

                await RenderTest.BuildAndSendRenderTemplateRequestWithAllParametersId();      // POST

                await Log.GetLogEventsAsync(BatchApiRequestTest.DEFAULT_LOG_ID);              // GET

                await Customer.GetCustomerAsync(CustomerTest.DEFAULT_CUSTOMER_EMAIL_ADDRESS); // GET

                await EmailTest.BuildAndSendEmailWithAllParametersAsync();                    // POST

                await DripCampaign.GetDripCampaignsAsync();                                   // GET

                await Customer.GetCustomerAsync(CustomerTest.DEFAULT_CUSTOMER_EMAIL_ADDRESS); // GET

                await Customer.GetCustomerAsync(CustomerTest.DEFAULT_CUSTOMER_EMAIL_ADDRESS); // GET

                // Add the 11th API Request
                try
                {
                    await Customer.GetCustomerAsync(CustomerTest.DEFAULT_CUSTOMER_EMAIL_ADDRESS); // GET
                }
                catch (InvalidOperationException exception)
                {
                    Trace.WriteLine(String.Format("Successfully caught exception triggered by adding too many API calls to the batch API request. Error message: {0}", exception.Message));
                    Assert.IsTrue(true);
                }

                // Send the batch AP Request and make sure it still goes through (with the previous 10 requests included)
                var batchResponses = await BatchApiRequest.SendBatchApiRequest();

                // Validate the response to the batch API request
                ValidateBatchApiCallResponses(batchResponses, 10);

                // Validate the response to the individual API calls
                ValidateIndividualBatchedApiCallResponse <Template>(batchResponses[0]);
                ValidateIndividualBatchedApiCallResponse <List <Snippet> >(batchResponses[1]);
                ValidateIndividualBatchedApiCallResponse <Customer>(batchResponses[2]);
                ValidateIndividualBatchedApiCallResponse <RenderTemplateResponse>(batchResponses[3]);
                await Log.GetLogEventsAsync(BatchApiRequestTest.DEFAULT_LOG_ID); // GET

                ValidateIndividualBatchedApiCallResponse <Customer>(batchResponses[5]);
                ValidateIndividualBatchedApiCallResponse <EmailResponse>(batchResponses[6]);
                ValidateIndividualBatchedApiCallResponse <List <DripCampaignDetails> >(batchResponses[7]);
                ValidateIndividualBatchedApiCallResponse <Customer>(batchResponses[8]);
                ValidateIndividualBatchedApiCallResponse <Customer>(batchResponses[9]);
            }
            catch (AggregateException exception)
            {
                Assert.Fail(exception.ToString());
            }
        }