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 }