github.com/mundipagg/boleto-api@v0.0.0-20230620145841-3f9ec742599f/models/boleto_test.go (about) 1 package models 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 ) 8 9 var isBankNumberValidParameters = []ModelTestParameter{ 10 {Input: BoletoRequest{BankNumber: BancoDoBrasil}, Expected: true}, 11 {Input: BoletoRequest{BankNumber: Bradesco}, Expected: true}, 12 {Input: BoletoRequest{BankNumber: Caixa}, Expected: true}, 13 {Input: BoletoRequest{BankNumber: Citibank}, Expected: true}, 14 {Input: BoletoRequest{BankNumber: Itau}, Expected: true}, 15 {Input: BoletoRequest{BankNumber: Pefisa}, Expected: true}, 16 {Input: BoletoRequest{BankNumber: Santander}, Expected: true}, 17 {Input: BoletoRequest{BankNumber: Stone}, Expected: true}, 18 {Input: BoletoRequest{BankNumber: 0}, Expected: false}, 19 } 20 21 var bankNumberAndDigitParameters = []ModelTestParameter{ 22 {Input: BoletoRequest{BankNumber: BancoDoBrasil}, Expected: "001-9"}, 23 {Input: BoletoRequest{BankNumber: Bradesco}, Expected: "237-2"}, 24 {Input: BoletoRequest{BankNumber: Caixa}, Expected: "104-0"}, 25 {Input: BoletoRequest{BankNumber: Citibank}, Expected: "745-5"}, 26 {Input: BoletoRequest{BankNumber: Itau}, Expected: "341-7"}, 27 {Input: BoletoRequest{BankNumber: Pefisa}, Expected: "174"}, 28 {Input: BoletoRequest{BankNumber: Santander}, Expected: "033-7"}, 29 {Input: BoletoRequest{BankNumber: Stone}, Expected: "197-1"}, 30 {Input: BoletoRequest{BankNumber: 0}, Expected: ""}, 31 } 32 33 func Test_IsBankNumberValid(t *testing.T) { 34 for _, fact := range isBankNumberValidParameters { 35 input := fact.Input.(BoletoRequest) 36 result := input.BankNumber.IsBankNumberValid() 37 assert.Equal(t, fact.Expected.(bool), result) 38 } 39 } 40 41 func Test_GetBoletoBankNumberAndDigit(t *testing.T) { 42 for _, fact := range bankNumberAndDigitParameters { 43 input := fact.Input.(BoletoRequest) 44 result := input.BankNumber.GetBoletoBankNumberAndDigit() 45 assert.Equal(t, fact.Expected.(string), result) 46 } 47 } 48 49 func Test_HasErrorResponse(t *testing.T) { 50 withError := GetBoletoResponseError("CODE", "message") 51 resultWithError := withError.HasErrors() 52 assert.True(t, resultWithError) 53 54 withoutError := BoletoResponse{} 55 resultWithputError := withoutError.HasErrors() 56 assert.False(t, resultWithputError) 57 } 58 59 func Test_ViewToJson(t *testing.T) { 60 view := arrangeBoletoView() 61 62 result := view.ToJSON() 63 64 assert.Contains(t, result, `"bankNumber":"001-9"`) 65 assert.Contains(t, result, `"barcode":"123456789012345678901234567890"`) 66 assert.Contains(t, result, `"digitableLine":"123467890123456790134567890"`) 67 assert.Contains(t, result, `"ourNumber":"1234567890"`) 68 } 69 70 func Test_ViewToMinifyJSON(t *testing.T) { 71 view := arrangeBoletoView() 72 73 result := view.ToMinifyJSON() 74 75 assert.Contains(t, result, `"bankNumber":"001-9"`) 76 assert.Contains(t, result, `"barcode":"123456789012345678901234567890"`) 77 assert.Contains(t, result, `"digitableLine":"123467890123456790134567890"`) 78 assert.Contains(t, result, `"ourNumber":"1234567890"`) 79 } 80 81 func arrangeBoletoView() BoletoView { 82 request := BoletoRequest{BankNumber: BancoDoBrasil} 83 response := BoletoResponse{BarCodeNumber: "123456789012345678901234567890", DigitableLine: "123467890123456790134567890", OurNumber: "1234567890"} 84 85 return NewBoletoView(request, response, "BancoDoBrasil") 86 }