public void PayoutOrderSuccess() { // Arrange MGPayoutResult expectedResult = new MGPayoutResult() { IsSuccess = true, Code = "200", Message = null, Data = new MGPayoutData { orderID = "123456", merchantOrderID = "merch-order" } }; string messageSuccess = "{ \"code\": \"200\", \"data\": { \"orderID\": \"123456\", \"merchantOrderID\": \"merch-order\"} }"; var httpMock = Mocks.GetMockedHttp(HttpStatusCode.OK, messageSuccess); MGClient client = Mocks.GetMockedMGClient(httpClient: httpMock); var payoutRequest = new MGPayoutRequest { MerchantOrderID = "Q44mHY18", CustomerBankCode = "BBL", OrderAmount = "100.00", CustomerBankAccountNumber = "1234567", CustomerBankAccountName = "Don Jhoe", CustomerEmail = "*****@*****.**", CustomerBankBranch = "bankBranch", CustomerBankProvince = "province", CustomerBankArea = "bankArea", CustomerBankRoutingNumber = "000", OrderCurrency = "USD", MerchantOrderDesc = "desc", CustomerFirstName = "John", CustomerLastName = "Doe", CustomerBankAddress = "The Moon, hill 42", CustomerBankZipCode = "1303", CustomerPhone = "123", CustomerIP = "127.0.0.1", RedirectUrl = "https://example-merchant.com/payment/return", CheckoutUrl = "https://example-merchant.com/deposit", CallbackUrl = "https://example-merchant.com/callback", }; // Act MGPayoutResult actual = client.InitPayout(payoutRequest).Result; // Assert Assert.IsTrue(actual.IsSuccess); Assert.AreEqual(expectedResult.Code, actual.Code); Assert.AreEqual(expectedResult.Message, actual.Message); Assert.AreEqual(expectedResult.Data.orderID, actual.Data.orderID); Assert.AreEqual(expectedResult.Data.merchantOrderID, actual.Data.merchantOrderID); }
public void DepositSuccess() { // Arrange MGDepositResult expectedResult = new MGDepositResult() { IsSuccess = true, Code = "200", Message = null, Data = new DepositResponseData() { DepositUrl = "https://api.zotapay.com/api/v1/deposit/init/8b3a6b89697e8ac8f45d964bcc90c7ba41764acd/", MerchantOrderID = "QvE8dZshpKhaOmHY", OrderID = "8b3a6b89697e8ac8f45d964bcc90c7ba41764acd", } }; string messageSuccess = "{ \"code\": \"200\", \"data\": { \"depositUrl\": \"https://api.zotapay.com/api/v1/deposit/init/8b3a6b89697e8ac8f45d964bcc90c7ba41764acd/\", \"merchantOrderID\": \"QvE8dZshpKhaOmHY\", \"orderID\": \"8b3a6b89697e8ac8f45d964bcc90c7ba41764acd\" } }"; var httpMock = Mocks.GetMockedHttp(HttpStatusCode.OK, messageSuccess); MGClient client = Mocks.GetMockedMGClient(httpClient: httpMock); var DepositRequest = new MGDepositRequest { MerchantOrderID = "QvE8dZshpKhaOmHY", OrderAmount = "100.00", CustomerEmail = "*****@*****.**", OrderCurrency = "USD", MerchantOrderDesc = "desc", CustomerFirstName = "John", CustomerLastName = "Doe", CustomerAddress = "The Moon, hill 42", CustomerCity = "Sofia", CustomerCountryCode = "BG", CustomerZipCode = "1303", CustomerPhone = "123", CustomerIP = "127.0.0.1", RedirectUrl = "https://example-merchant.com/payment/return", CheckoutUrl = "https://example-merchant.com/deposit" }; // Act MGDepositResult actual = client.InitDeposit(DepositRequest).Result; // Assert Assert.IsTrue(actual.IsSuccess); Assert.AreEqual(expectedResult.Data.DepositUrl, actual.Data.DepositUrl); Assert.AreEqual(expectedResult.Data.MerchantOrderID, actual.Data.MerchantOrderID); Assert.AreEqual(expectedResult.Data.OrderID, actual.Data.OrderID); Assert.AreEqual(expectedResult.Code, actual.Code); Assert.AreEqual(expectedResult.Message, actual.Message); }
public void DepositCatchesUnexpectedResponse() { // Arrange string responseMessage = "!@#$%^&*() -- not a valid json message, that will cause an exception -- !@#$%^&*()"; var httpMock = Mocks.GetMockedHttp(HttpStatusCode.InternalServerError, responseMessage); MGClient client = Mocks.GetMockedMGClient(httpClient: httpMock); var DepositRequest = Mocks.GetFullDepositRequest(); string expectedErrorMessage = "Unexpected character encountered while parsing value: !. Path '', line 0, position 0.: \n" + "Raw Response: !@#$%^&*() -- not a valid json message, that will cause an exception -- !@#$%^&*()"; // Act MGDepositResult actual = client.InitDeposit(DepositRequest).Result; // Assert Assert.IsFalse(actual.IsSuccess); Assert.AreEqual(expectedErrorMessage, actual.Message); }
public void QueryRequestSuccess() { // Arrange var queryRequest = new MGQueryTxnRequest { OrderID = "1234567", MerchantOrderID = "merch-order-id", }; string messageSuccess = "{\"code\":\"200\",\"data\":{\"type\":\"SALE\",\"status\":\"APPROVED\",\"errorMessage\":\"\",\"endpointID\":\"1050\",\"processorTransactionID\":\"\",\"orderID\":\"8b3a6b89697e8ac8f45d964bcc90c7ba41764acd\",\"merchantOrderID\":\"QvE8dZshpKhaOmHY\",\"amount\":\"500.00\",\"currency\":\"THB\",\"customerEmail\":\"[email protected]\",\"customParam\":\"{\\\"UserId\\\":\\\"e139b447\\\"}\",\"extraData\":\"\",\"request\":{\"merchantID\":\"EXAMPLE-MERCHANT-ID\",\"orderID\":\"8b3a6b89697e8ac8f45d964bcc90c7ba41764acd\",\"merchantOrderID\":\"QvE8dZshpKhaOmHY\",\"timestamp\":\"1564617600\"}}}"; var httpMock = Mocks.GetMockedHttp(HttpStatusCode.OK, messageSuccess); var client = Mocks.GetMockedMGClient(httpClient: httpMock); // Act var actual = client.CheckOrderStatus(queryRequest).Result; // Assert Assert.IsTrue(actual.IsSuccess); Assert.AreEqual("APPROVED", actual.Data.status); }
public void DepositUnsuccessful() { // Arrange MGDepositResult expectedResult = new MGDepositResult() { IsSuccess = false, Code = "400", Message = "endpoint currency mismatch", Data = null, }; string responseMessage = "{ \"code\": \"400\", \"message\": \"endpoint currency mismatch\" } "; var httpMock = Mocks.GetMockedHttp(HttpStatusCode.BadRequest, responseMessage); MGClient client = Mocks.GetMockedMGClient(httpClient: httpMock); var DepositRequest = Mocks.GetFullDepositRequest(); // Act MGDepositResult actual = client.InitDeposit(DepositRequest).Result; // Assert Assert.IsFalse(actual.IsSuccess); Assert.AreEqual(expectedResult.Data, actual.Data); Assert.AreEqual(expectedResult.Code, actual.Code); Assert.AreEqual(expectedResult.Message, actual.Message); }