From c505d4d500657614aa9610bb636e852cb1e42d27 Mon Sep 17 00:00:00 2001 From: cherrykark Date: Wed, 12 Oct 2016 13:25:27 -0500 Subject: [PATCH 1/5] Update CreateCustomerRequest to include CustomerId This would allow the customerId to be passed in on request rather than have it be automatically generated --- SecureNetRestApiSDK/Api/Requests/CreateCustomerRequest.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SecureNetRestApiSDK/Api/Requests/CreateCustomerRequest.cs b/SecureNetRestApiSDK/Api/Requests/CreateCustomerRequest.cs index c0d2ea4..9c91837 100644 --- a/SecureNetRestApiSDK/Api/Requests/CreateCustomerRequest.cs +++ b/SecureNetRestApiSDK/Api/Requests/CreateCustomerRequest.cs @@ -7,7 +7,7 @@ namespace SecureNetRestApiSDK.Api.Requests public class CreateCustomerRequest : SecureNetRequest { #region Properties - + public string CustomerId { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public string PhoneNumber { get; set; } From 5c210090a8dfd113b43d8040eddfd0dc25b8b1f6 Mon Sep 17 00:00:00 2001 From: cherrykark Date: Wed, 12 Oct 2016 13:35:58 -0500 Subject: [PATCH 2/5] Update CustomerControllerTests It adds tests to accommodate providing the customerId --- .../Controllers/CustomersControllerTests.cs | 90 +++++++++++++++++++ 1 file changed, 90 insertions(+) diff --git a/SecureNetRestApiSDK_UnitTest/Controllers/CustomersControllerTests.cs b/SecureNetRestApiSDK_UnitTest/Controllers/CustomersControllerTests.cs index 0ec727d..3f2708b 100644 --- a/SecureNetRestApiSDK_UnitTest/Controllers/CustomersControllerTests.cs +++ b/SecureNetRestApiSDK_UnitTest/Controllers/CustomersControllerTests.cs @@ -33,6 +33,96 @@ public void SecureNet_Vault_Create_Retrieve_Update_And_Delete_Customer_Requests_ // Delete the Customer //TODO } + + [TestMethod] + public void SecureNet_Vault_Create_Retrieve_Update_Customer_Request_Providing_Id() + { + const string custId = "PASSED"; + + //Create the Customer + var customerId = SecureNet_Vault_Create_Customer_Request_With_Id_Returns_Successfully(custId); + + // Retrieve the Customer + SecureNet_Vault_Retrieve_Customer_Request_Returns_Successfully(customerId); + + // Update the Customer + SecureNet_Vault_Update_Customer_Request_Returns_Successfully(customerId); + } + + /// + /// Successful response returned from a Create Customer request when customer id is provided. + /// https://apidocs.securenet.com/docs/vault.html?lang=csharp#createcustomer + /// + public string SecureNet_Vault_Create_Customer_Request_With_Id_Returns_Successfully(string customerId) + { + // Arrange + var request = new CreateCustomerRequest + { + CustomerId = customerId, + FirstName = "Jack", + LastName = "Tester", + PhoneNumber = "402-122-1211", + EmailAddress = "Some@Emailaddress.net", + SendEmailReceipts = true, + Notes = "test notes", + Address = new Address + { + Line1 = "123 Main St.", + City = "Omaha", + State = "NE", + Zip = "68122" + }, + Company = "Test Company", + UserDefinedFields = new List + { + new UserDefinedField + { + UdfName = "Udf1", + UdfValue = "Udf1_Value" + }, + new UserDefinedField + { + UdfName = "Udf2", + UdfValue = "Udf2_Value" + }, + new UserDefinedField + { + UdfName = "Udf3", + UdfValue = "Udf3_Value" + }, + new UserDefinedField + { + UdfName = "Udf4", + UdfValue = "Udf4_Value" + }, + new UserDefinedField + { + UdfName = "Udf5", + UdfValue = "Udf5_Value" + }, + }, + DeveloperApplication = new DeveloperApplication + { + DeveloperId = 10000692, + Version = "1.2" + } + }; + + var apiContext = new APIContext(); + var controller = new CustomersController(); + + // Act + var response = controller.ProcessRequest(apiContext, request); + + // Assert + Assert.IsNotNull(response); + Assert.IsTrue(response.Success); + Assert.IsNotNull(response.CustomerId); + Assert.IsTrue(response.CustomerId.Length > 0); + Assert.AreEqual(request.CustomerId, response.CustomerId); + Assert.AreEqual(customerId, response.CustomerId); + return response.CustomerId; + } /// /// Successful response returned from a Create Customer request. From aeec4fae714d8e7595dba27b468bb26a24854b18 Mon Sep 17 00:00:00 2001 From: cherrykark Date: Wed, 12 Oct 2016 14:31:12 -0500 Subject: [PATCH 3/5] Update CustomersControllerTests.cs --- .../Controllers/CustomersControllerTests.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SecureNetRestApiSDK_UnitTest/Controllers/CustomersControllerTests.cs b/SecureNetRestApiSDK_UnitTest/Controllers/CustomersControllerTests.cs index 3f2708b..32894b3 100644 --- a/SecureNetRestApiSDK_UnitTest/Controllers/CustomersControllerTests.cs +++ b/SecureNetRestApiSDK_UnitTest/Controllers/CustomersControllerTests.cs @@ -103,7 +103,7 @@ public string SecureNet_Vault_Create_Customer_Request_With_Id_Returns_Successful }, DeveloperApplication = new DeveloperApplication { - DeveloperId = 10000692, + DeveloperId = 12345678, Version = "1.2" } }; From e74b4ca5f108f4b97a5d2789870d4db89cf6d304 Mon Sep 17 00:00:00 2001 From: cherrykark Date: Wed, 12 Oct 2016 14:58:50 -0500 Subject: [PATCH 4/5] Add PaymentMethodId to AddPaymentMethodRequest --- SecureNetRestApiSDK/Api/Requests/AddPaymentMethodRequest.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/SecureNetRestApiSDK/Api/Requests/AddPaymentMethodRequest.cs b/SecureNetRestApiSDK/Api/Requests/AddPaymentMethodRequest.cs index f7b0ed2..a462859 100644 --- a/SecureNetRestApiSDK/Api/Requests/AddPaymentMethodRequest.cs +++ b/SecureNetRestApiSDK/Api/Requests/AddPaymentMethodRequest.cs @@ -10,6 +10,7 @@ public class AddPaymentMethodRequest : SecureNetRequest #region Properties public string CustomerId { get; set; } + public string PaymentMethodId { get; set; } public Card Card { get; set; } public string Phone { get; set; } public string Notes { get; set; } From c2902a28c358eec8fe51342f50823e4f8a7dc7ca Mon Sep 17 00:00:00 2001 From: cherrykark Date: Wed, 12 Oct 2016 15:07:32 -0500 Subject: [PATCH 5/5] Update CustomerControllerTests Allow setting PaymentMethodId on CreatePaymentMethodRequest --- .../Controllers/CustomersControllerTests.cs | 73 ++++++++++++++++--- 1 file changed, 63 insertions(+), 10 deletions(-) diff --git a/SecureNetRestApiSDK_UnitTest/Controllers/CustomersControllerTests.cs b/SecureNetRestApiSDK_UnitTest/Controllers/CustomersControllerTests.cs index 32894b3..840aa15 100644 --- a/SecureNetRestApiSDK_UnitTest/Controllers/CustomersControllerTests.cs +++ b/SecureNetRestApiSDK_UnitTest/Controllers/CustomersControllerTests.cs @@ -9,10 +9,10 @@ namespace SecureNetRestApiSDK_UnitTest.Controllers { - [TestClass] + [TestClass] public class CustomersControllerTests { - #region SecureNet Vault + #region SecureNet Vault /// /// Unit Tests for Create, Retrieve, Update and Delete Customer requests. Tests combined in one method to pass the @@ -22,7 +22,7 @@ public class CustomersControllerTests public void SecureNet_Vault_Create_Retrieve_Update_And_Delete_Customer_Requests_Returns_Successfully() { // Create the Customer - string customerId = SecureNet_Vault_Create_Customer_Request_Returns_Successfully(); + string customerId = SecureNet_Vault_Create_Customer_Request_Returns_Successfully(); // Retrieve the Customer SecureNet_Vault_Retrieve_Customer_Request_Returns_Successfully(customerId); @@ -32,19 +32,16 @@ public void SecureNet_Vault_Create_Retrieve_Update_And_Delete_Customer_Requests_ // Delete the Customer //TODO - } - - [TestMethod] + } + + [TestMethod] public void SecureNet_Vault_Create_Retrieve_Update_Customer_Request_Providing_Id() { const string custId = "PASSED"; - //Create the Customer var customerId = SecureNet_Vault_Create_Customer_Request_With_Id_Returns_Successfully(custId); - // Retrieve the Customer SecureNet_Vault_Retrieve_Customer_Request_Returns_Successfully(customerId); - // Update the Customer SecureNet_Vault_Update_Customer_Request_Returns_Successfully(customerId); } @@ -119,7 +116,7 @@ public string SecureNet_Vault_Create_Customer_Request_With_Id_Returns_Successful Assert.IsTrue(response.Success); Assert.IsNotNull(response.CustomerId); Assert.IsTrue(response.CustomerId.Length > 0); - Assert.AreEqual(request.CustomerId, response.CustomerId); + Assert.AreEqual(request.CustomerId, response.CustomerId); Assert.AreEqual(customerId, response.CustomerId); return response.CustomerId; } @@ -318,6 +315,62 @@ public void SecureNet_Vault_Create_Retrieve_Charge_Update_And_Delete_Payment_Acc // Delete the Customer //TODO } + [TestMethod] + public void SecureNet_Vault_Create_Payment_Account_With_Id_Returns_Successfully() + { + const string customerId = "CERT1"; + //Create the Payment Account + const string payment = "PAY1"; + string paymentMethodId = SecureNet_Value_Create_Payment_Account_Request_With_Payment_Id_Returns_Successfully(customerId, payment); + //Retrieve the Payment Account + SecureNet_Vault_Retrieve_Payment_Account_Request_Returns_Successfully(customerId, paymentMethodId); + } + + public string SecureNet_Value_Create_Payment_Account_Request_With_Payment_Id_Returns_Successfully(string customerId, string paymentId) + { + // Arrange + var request = new AddPaymentMethodRequest + { + CustomerId = customerId, + PaymentMethodId = paymentId, + Card = new Card + { + Number = "6011905000000004", + ExpirationDate = "01/2017", + Address = new Address + { + Line1 = "123 Main St.", + City = "Austin", + State = "TX", + Zip = "78759" + }, + FirstName = "Jack", + LastName = "Test" + }, + Phone = "816-250-7865", + Notes = "Create A Vault Account", + AccountDuplicateCheckIndicator = 0, + Primary = false, + DeveloperApplication = new DeveloperApplication + { + DeveloperId = 12345678, + Version = "1.2" + } + }; + var apiContext = new APIContext(); + var controller = new CustomersController(); + + // Act + var response = controller.ProcessRequest(apiContext, request); + + // Assert + Assert.IsNotNull(response); + Assert.IsTrue(response.Success); + Assert.IsNotNull(response.VaultPaymentMethod); + Assert.IsNotNull(response.VaultPaymentMethod.PaymentId); + Assert.AreEqual(paymentId, response.VaultPaymentMethod.PaymentId); + return response.VaultPaymentMethod.PaymentId; + } /// /// Successful response returned from a Create Payment Account request.