github.com/mundipagg/boleto-api@v0.0.0-20230620145841-3f9ec742599f/bradescoShopFacil/bradescoShopFacil_test.go (about) 1 package bradescoShopFacil 2 3 import ( 4 "testing" 5 "time" 6 7 "github.com/mundipagg/boleto-api/mock" 8 "github.com/mundipagg/boleto-api/models" 9 "github.com/mundipagg/boleto-api/test" 10 "github.com/stretchr/testify/assert" 11 ) 12 13 var boletoTypeParameters = []test.Parameter{ 14 {Input: models.Title{BoletoType: ""}, Expected: "01"}, 15 {Input: models.Title{BoletoType: "NSA"}, Expected: "01"}, 16 {Input: models.Title{BoletoType: "BDP"}, Expected: "01"}, 17 {Input: models.Title{BoletoType: "DM"}, Expected: "01"}, 18 {Input: models.Title{BoletoType: "DS"}, Expected: "12"}, 19 {Input: models.Title{BoletoType: "NP"}, Expected: "02"}, 20 {Input: models.Title{BoletoType: "RC"}, Expected: "05"}, 21 {Input: models.Title{BoletoType: "OUT"}, Expected: "99"}, 22 } 23 24 func TestProcessBoleto_WhenServiceRespondsSuccessfully_ShouldHasSuccessfulBoletoResponse(t *testing.T) { 25 mock.StartMockService("9015") 26 input := newStubBoletoRequestBradescoShopFacil().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("9014") 36 input := newStubBoletoRequestBradescoShopFacil().WithAmountInCents(400).Build() 37 bank := New() 38 39 output, _ := bank.ProcessBoleto(input) 40 41 test.AssertProcessBoletoFailed(t, output) 42 } 43 44 func TestBarcodeGenerationBradescoShopFacil(t *testing.T) { 45 const expected = "23795796800000001990001250012446693212345670" 46 expireDate, _ := time.Parse("02-01-2006", "01-08-2019") 47 boleto := newStubBoletoRequestBradescoShopFacil().WithAgreementAgency("1").WithAgreementAccount("1234567").WithExpirationDate(expireDate).WithAmountInCents(199).WithOurNumber(124466932).Build() 48 49 bc := getBarcode(*boleto) 50 51 assert.Equal(t, expected, bc.toString(), "Deve-se montar o código de barras do BradescoShopFacil") 52 } 53 54 func TestRemoveDigitFromAccount(t *testing.T) { 55 const expected = "23791796800000001992372250012446693300056000" 56 57 bc := barcode{ 58 account: "0005600", 59 bankCode: "237", 60 currencyCode: "9", 61 agency: "2372", 62 dateDueFactor: "7968", 63 ourNumber: "00124466933", 64 zero: "0", 65 wallet: "25", 66 value: "0000000199", 67 } 68 69 assert.Equal(t, expected, bc.toString(), "Deve-se montar identificar e remover o digito da conta") 70 } 71 72 func TestGetBoletoType_WhenCalled_ShouldBeMapTypeSuccessful(t *testing.T) { 73 BradescoShopFacilStub := newStubBoletoRequestBradescoShopFacil().Build() 74 for _, fact := range boletoTypeParameters { 75 BradescoShopFacilStub.Title = fact.Input.(models.Title) 76 _, result := getBoletoType(BradescoShopFacilStub) 77 assert.Equal(t, fact.Expected, result, "Deve mapear o boleto type corretamente") 78 } 79 }