github.com/mundipagg/boleto-api@v0.0.0-20230620145841-3f9ec742599f/bradescoNetEmpresa/bradescoNetEmpresa_test.go (about)

     1  package bradescoNetEmpresa
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/mundipagg/boleto-api/mock"
     7  	"github.com/mundipagg/boleto-api/models"
     8  	"github.com/mundipagg/boleto-api/test"
     9  	"github.com/stretchr/testify/assert"
    10  )
    11  
    12  var boletoTypeParameters = []test.Parameter{
    13  	{Input: models.Title{BoletoType: ""}, Expected: "02"},
    14  	{Input: models.Title{BoletoType: "NSA"}, Expected: "02"},
    15  	{Input: models.Title{BoletoType: "BDP"}, Expected: "02"},
    16  	{Input: models.Title{BoletoType: "CH"}, Expected: "01"},
    17  	{Input: models.Title{BoletoType: "DM"}, Expected: "02"},
    18  	{Input: models.Title{BoletoType: "DS"}, Expected: "04"},
    19  	{Input: models.Title{BoletoType: "NP"}, Expected: "12"},
    20  	{Input: models.Title{BoletoType: "RC"}, Expected: "17"},
    21  	{Input: models.Title{BoletoType: "OUT"}, Expected: "99"},
    22  }
    23  
    24  func TestProcessBoleto_WhenServiceRespondsSuccessfully_ShouldHasSuccessfulBoletoResponse(t *testing.T) {
    25  	mock.StartMockService("9012")
    26  	input := newStubBoletoRequestBradescoNetEmpresa().WithAmountInCents(200).Build()
    27  	bank := New()
    28  
    29  	output, _ := bank.ProcessBoleto(input)
    30  
    31  	test.AssertProcessBoletoWithSuccess(t, output)
    32  }
    33  
    34  func TestProcessBoleto_WhenServiceRespondsFailed_ShouldHasFailedBoletoResponse(t *testing.T) {
    35  	mock.StartMockService("9011")
    36  	input := newStubBoletoRequestBradescoNetEmpresa().WithAmountInCents(201).Build()
    37  	bank := New()
    38  
    39  	output, _ := bank.ProcessBoleto(input)
    40  
    41  	test.AssertProcessBoletoFailed(t, output)
    42  }
    43  
    44  func TestProcessBoleto_WhenServiceRespondsCertificateFailed_ShouldHasFailedBoletoResponse(t *testing.T) {
    45  	mock.StartMockService("9010")
    46  	input := newStubBoletoRequestBradescoNetEmpresa().WithAmountInCents(202).Build()
    47  	bank := New()
    48  
    49  	output, _ := bank.ProcessBoleto(input)
    50  
    51  	test.AssertProcessBoletoFailed(t, output)
    52  }
    53  
    54  func TestGetBoletoType_WhenCalled_ShouldBeMapTypeSuccessful(t *testing.T) {
    55  	BradescoNetEmpresaRequestStub := newStubBoletoRequestBradescoNetEmpresa().Build()
    56  	for _, fact := range boletoTypeParameters {
    57  		BradescoNetEmpresaRequestStub.Title = fact.Input.(models.Title)
    58  		_, result := getBoletoType(BradescoNetEmpresaRequestStub)
    59  		assert.Equal(t, fact.Expected, result, "Deve mapear o boleto type corretamente")
    60  	}
    61  }
    62  
    63  func TestTemplateResponse_WhenRequestHasSpecialCharacter_ShouldBeParsedSuccessful(t *testing.T) {
    64  	mock.StartMockService("9013")
    65  	input := newStubBoletoRequestBradescoNetEmpresa().WithAmountInCents(204).WithBuyerName("Usuario 	Teste").Build()
    66  	bank := New()
    67  
    68  	output, _ := bank.ProcessBoleto(input)
    69  
    70  	test.AssertProcessBoletoWithSuccess(t, output)
    71  }