From e8718d78a4f582df18eedf62ad7fc3a3b9a071cc Mon Sep 17 00:00:00 2001 From: Franklin Date: Mon, 4 Mar 2024 09:13:09 -0500 Subject: [PATCH] Add order creation tests --- example/order.dart | 64 +++++++++++++++++++++ test/orders_api_test.dart | 116 +++++++++++++++++++++++++++++++++++++- 2 files changed, 179 insertions(+), 1 deletion(-) create mode 100644 example/order.dart diff --git a/example/order.dart b/example/order.dart new file mode 100644 index 0000000..3ca360c --- /dev/null +++ b/example/order.dart @@ -0,0 +1,64 @@ +import 'package:conekta/conekta.dart'; +import 'package:one_of/one_of.dart'; +import 'package:built_collection/built_collection.dart'; +import 'package:built_value/json_object.dart'; +Future main() async { + var instance = Conekta(); + instance.setBearerAuth("bearerAuth", "key_0HATKNkopS0O42pOp1Ilpcc"); + final api = instance.getOrdersApi(); + + var customerInfo = OrderRequestCustomerInfo((b) => b + ..oneOf = OneOf1(value: CustomerInfo((b) => b + ..corporate = false + ..name = 'Marvin Fuller' + ..email = 'email@gmail.com' + ..phone = '55-5555-5555' + ) + )); + var metadata = MapBuilder() + ..[('key1')] = JsonObject({'value': 'data1'}) + ..[('key2')] = JsonObject({'value': 'data2'}); + + var fiscalEntityAddress = $FiscalEntityAddressBuilder() + ..street1 = '250 Alexis St' + ..city = 'Red Deer' + ..state = 'Alberta' + ..country = 'CA' + ..postalCode = 'T4N 0B8' + ..externalNumber = '123' + ; + var fiscalEntity = OrderFiscalEntityRequestBuilder() + ..taxId = 'XAXX010101000' + ..email = 'email@email.com' + ..metadata = metadata + ..address =fiscalEntityAddress.build() + ; + var shippingContact = $CustomerShippingContactsBuilder() + ..phone = '55-5555-5555' + ..receiver = 'Marvin Fuller' + ..betweenStreets = 'Melrose St' + ..metadata = metadata + ..address.replace(CustomerShippingContactsAddress((b) => b + ..street1 = '250 Alexis St' + ..city = 'Red Deer' + ..state = 'Alberta' + ..country = 'CA' + ..postalCode = 'T4N 0B8' + )); + + final orderRequest = OrderRequest((b) => b + ..currency = 'MXN' + ..customerInfo.replace(customerInfo) + ..shippingContact = shippingContact.build() + ..fiscalEntity = fiscalEntity + ..lineItems = ListBuilder([ + $Product((b) => b + ..name = 'Box of Chocolates' + ..unitPrice = 2000 + ..quantity = 1 + ) + ]) + ); + var response = await api.createOrder(orderRequest: orderRequest); + print(response.data); +} diff --git a/test/orders_api_test.dart b/test/orders_api_test.dart index 17a6d36..1046dae 100644 --- a/test/orders_api_test.dart +++ b/test/orders_api_test.dart @@ -1,6 +1,10 @@ import 'package:test/test.dart'; import 'package:conekta/conekta.dart'; import 'base.dart'; +import 'package:one_of/one_of.dart'; +import 'package:built_collection/built_collection.dart'; +import 'package:built_value/json_object.dart'; + /// tests for OrdersApi void main() { @@ -24,7 +28,117 @@ void main() { // //Future createOrder(OrderRequest orderRequest, { String acceptLanguage, String xChildCompanyId }) async test('test createOrder', () async { - // TODO + + var customerInfo = OrderRequestCustomerInfo((b) => b + ..oneOf = OneOf1(value: CustomerInfoJustCustomerId((b) => b + ..customerId = 'cus_2tKcHxhTz7xU5SymF') + )); + var metadata = MapBuilder() + ..[('key1')] = JsonObject({'value': 'data1'}) + ..[('key2')] = JsonObject({'value': 'data2'}); + + var fiscalEntityAddress = $FiscalEntityAddressBuilder() + ..street1 = '250 Alexis St' + ..city = 'Red Deer' + ..state = 'Alberta' + ..country = 'CA' + ..postalCode = 'T4N 0B8' + ..externalNumber = '123' + ; + var fiscalEntity = OrderFiscalEntityRequestBuilder() + ..taxId = 'XAXX010101000' + ..email = 'email@email.com' + ..metadata = metadata + ..address =fiscalEntityAddress.build() + ; + var shippingContact = $CustomerShippingContactsBuilder() + ..phone = '55-5555-5555' + ..receiver = 'Marvin Fuller' + ..betweenStreets = 'Melrose St' + ..metadata = metadata + ..address.replace(CustomerShippingContactsAddress((b) => b + ..street1 = '250 Alexis St' + ..city = 'Red Deer' + ..state = 'Alberta' + ..country = 'CA' + ..postalCode = 'T4N 0B8' + )); + + final orderRequest = OrderRequest((b) => b + ..currency = 'MXN' + ..customerInfo.replace(customerInfo) + ..shippingContact = shippingContact.build() + ..fiscalEntity = fiscalEntity + ); + var response = await api.createOrder(orderRequest: orderRequest); + + expect(response.data, isNotNull); + expect(2000, response.data?.amount); + }); + + // Create order + // + // Create a new order. + // + //Future createOrder(OrderRequest orderRequest, { String acceptLanguage, String xChildCompanyId }) async + test('test createOrder creating customer ', () async { + + var customerInfo = OrderRequestCustomerInfo((b) => b + ..oneOf = OneOf1(value: CustomerInfo((b) => b + ..corporate = false + ..name = 'Marvin Fuller' + ..email = 'email@gmail.com' + ..phone = '55-5555-5555' + ) + )); + var metadata = MapBuilder() + ..[('key1')] = JsonObject({'value': 'data1'}) + ..[('key2')] = JsonObject({'value': 'data2'}); + + var fiscalEntityAddress = $FiscalEntityAddressBuilder() + ..street1 = '250 Alexis St' + ..city = 'Red Deer' + ..state = 'Alberta' + ..country = 'CA' + ..postalCode = 'T4N 0B8' + ..externalNumber = '123' + ; + var fiscalEntity = OrderFiscalEntityRequestBuilder() + ..taxId = 'XAXX010101000' + ..email = 'email@email.com' + ..metadata = metadata + ..address =fiscalEntityAddress.build() + ; + var shippingContact = $CustomerShippingContactsBuilder() + ..phone = '55-5555-5555' + ..receiver = 'Marvin Fuller' + ..betweenStreets = 'Melrose St' + ..metadata = metadata + ..address.replace(CustomerShippingContactsAddress((b) => b + ..street1 = '250 Alexis St' + ..city = 'Red Deer' + ..state = 'Alberta' + ..country = 'CA' + ..postalCode = 'T4N 0B8' + )); + + final orderRequest = OrderRequest((b) => b + ..currency = 'MXN' + ..customerInfo.replace(customerInfo) + ..shippingContact = shippingContact.build() + ..fiscalEntity = fiscalEntity + ..lineItems = ListBuilder([ + $Product((b) => b + ..name = 'Box of Chocolates' + ..unitPrice = 2000 + ..quantity = 1 + ) + ]) + ); + var response = await api.createOrder(orderRequest: orderRequest); + + expect(response.data, isNotNull); + expect(2000, response.data?.amount); }); // Get Order