Skip to content

Commit

Permalink
feat: integration tests
Browse files Browse the repository at this point in the history
  • Loading branch information
jpdev01 committed Dec 28, 2024
1 parent 4966904 commit c5c595e
Show file tree
Hide file tree
Showing 7 changed files with 109 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,10 @@ public static CustomerAccountFetcher fetcher(String id) {
return new CustomerAccountFetcher(id);
}

public static CustomerAccountReader reader() {
return new CustomerAccountReader();
}

public String getObject() {
return object;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package io.github.jpdev.asaassdk.rest.customeraccount;

import io.github.jpdev.asaassdk.http.Domain;
import io.github.jpdev.asaassdk.rest.action.Reader;

public class CustomerAccountReader extends Reader<CustomerAccount> {

@Override
public String getResourceUrl() {
return Domain.CUSTOMER_ACCOUNT.toString();
}

@Override
public Class<CustomerAccount> getResourceClass() {
return CustomerAccount.class;
}
}
9 changes: 5 additions & 4 deletions src/main/java/io/github/jpdev/asaassdk/utils/Money.java
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
package io.github.jpdev.asaassdk.utils;

import java.math.BigDecimal;
import java.math.RoundingMode;

public class Money {

public static BigDecimal create(BigDecimal bigDecimal) {
bigDecimal.setScale(2, BigDecimal.ROUND_HALF_UP);
return bigDecimal;
public static BigDecimal create(BigDecimal originalValue) {
return originalValue.setScale(2, RoundingMode.HALF_UP);
}

public static BigDecimal create(double value) {
return create(new BigDecimal(value));
BigDecimal parsed = new BigDecimal(value);
return create(parsed);
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.github.jpdev.asaassdk;
package integration.io.github.jpdev.asaassdk;

import io.github.jpdev.asaassdk.http.Asaas;

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
package integration.io.github.jpdev.asaassdk.rest.payment;

import integration.io.github.jpdev.asaassdk.AsaasClientMock;
import io.github.jpdev.asaassdk.rest.customeraccount.CustomerAccount;
import io.github.jpdev.asaassdk.rest.payment.Payment;
import io.github.jpdev.asaassdk.utils.BillingType;
import io.github.jpdev.asaassdk.utils.Money;
import org.junit.jupiter.api.*;

import java.math.BigDecimal;
import java.util.Calendar;
import java.util.Date;
import java.util.UUID;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;

public class PaymentTest {

@BeforeAll
static void setup() {
AsaasClientMock.create();
}

@Test
@Tag("integration")
@DisplayName("Integração | Criação de cobrança Pix")
@Order(1)
void testCreatePixKey() {
CustomerAccount customerAccount = CustomerAccount.reader().read().getData().stream().findFirst().orElse(null);
if (customerAccount == null) {
customerAccount = CustomerAccount.creator()
.setName("Teste unitário")
.setCpfCnpj("06928316000124")
.setEmail("[email protected]")
.create();
}

BigDecimal value = Money.create(5.01);
Date dueDate = getDueDate();
String description = "Teste unitário";
String externalReference = UUID.randomUUID().toString();

Payment payment = Payment.creator()
.setBillingType(BillingType.PIX)
.setCustomer(customerAccount.getId())
.setValue(value)
.setDueDate(dueDate)
.setDescription(description)
.setExternalReference(externalReference)
.create();

assertNotNull(payment, "Cobrança não criada.");
assertEquals(BillingType.PIX, payment.getBillingType(), "Tipo de cobrança incorreto.");
assertEquals(value, Money.create(payment.getValue()), "Valor da cobrança incorreto.");
assertEquals(dueDate, payment.getDueDate(), "Data de vencimento incorreta.");
assertEquals(description, payment.getDescription(), "Descrição da cobrança incorreta.");
assertEquals(externalReference, payment.getExternalReference(), "Referência externa incorreta.");
}

private Date getDueDate() {
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
calendar.add(Calendar.DAY_OF_MONTH, 1);

calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);

return calendar.getTime();
}
}
Original file line number Diff line number Diff line change
@@ -1,16 +1,11 @@
package io.github.jpdev.asaassdk.rest.pix.transaction;
package integration.io.github.jpdev.asaassdk.rest.pix.transaction;

import io.github.jpdev.asaassdk.AsaasClientMock;
import io.github.jpdev.asaassdk.http.Asaas;
import io.github.jpdev.asaassdk.rest.action.ResourceSet;
import integration.io.github.jpdev.asaassdk.AsaasClientMock;
import io.github.jpdev.asaassdk.rest.pix.enums.PixAddressKeyType;
import io.github.jpdev.asaassdk.rest.transfer.Transfer;
import io.github.jpdev.asaassdk.rest.transfer.children.response.TransferOperationType;
import io.github.jpdev.asaassdk.utils.Money;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.*;

import java.math.BigDecimal;
import java.util.List;
Expand All @@ -27,6 +22,7 @@ static void setup() {
}

@Test
@Tag("integration")
@DisplayName("Integração | Criação de transação Pix com chave")
@Order(1)
void testCreatePixKey() {
Expand All @@ -46,6 +42,7 @@ void testCreatePixKey() {
}

@Test
@Tag("integration")
@DisplayName("Integração | Leitura de transação Pix")
@Order(2)
void testListing() {
Expand All @@ -61,6 +58,7 @@ void testListing() {
}

@Test
@Tag("integration")
@DisplayName("Integração | Leitura de transação Pix por ID")
@Order(3)
void testReadById() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
package io.github.jpdev.asaassdk.http;
package unit.io.github.jpdev.asaassdk.http;

import static org.junit.jupiter.api.Assumptions.assumeTrue;
import static org.junit.jupiter.api.Assertions.*;

import io.github.jpdev.asaassdk.AsaasClientMock;
import integration.io.github.jpdev.asaassdk.AsaasClientMock;
import io.github.jpdev.asaassdk.exception.ConnectionException;
import io.github.jpdev.asaassdk.http.Asaas;
import io.github.jpdev.asaassdk.rest.payment.Payment;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.DisplayName;
Expand Down

0 comments on commit c5c595e

Please sign in to comment.