github.com/mundipagg/boleto-api@v0.0.0-20230620145841-3f9ec742599f/santander/santander_test.go (about) 1 package santander 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/mundipagg/boleto-api/util" 10 "github.com/stretchr/testify/assert" 11 ) 12 13 const baseMockJSON = ` 14 { 15 "BankNumber": 33, 16 "Agreement": { 17 "AgreementNumber": 11111111, 18 "Agency":"5555", 19 "Account":"55555" 20 }, 21 "Title": { 22 "ExpireDate": "2035-08-01", 23 "AmountInCents": 200, 24 "OurNumber":10000000004 25 }, 26 "Buyer": { 27 "Name": "TESTE", 28 "Document": { 29 "Type": "CPF", 30 "Number": "12345678903" 31 } 32 }, 33 "Recipient": { 34 "Name": "TESTE", 35 "Document": { 36 "Type": "CNPJ", 37 "Number": "55555555555555" 38 } 39 } 40 } 41 ` 42 43 var boletoTypeParameters = []test.Parameter{ 44 {Input: models.Title{BoletoType: ""}, Expected: "02"}, 45 {Input: models.Title{BoletoType: "NSA"}, Expected: "02"}, 46 {Input: models.Title{BoletoType: "BDP"}, Expected: "32"}, 47 {Input: models.Title{BoletoType: "DM"}, Expected: "02"}, 48 {Input: models.Title{BoletoType: "DS"}, Expected: "04"}, 49 {Input: models.Title{BoletoType: "NP"}, Expected: "12"}, 50 {Input: models.Title{BoletoType: "RC"}, Expected: "17"}, 51 {Input: models.Title{BoletoType: "OUT"}, Expected: "99"}, 52 } 53 54 func TestProcessBoleto_WhenServiceRespondsSuccessfully_ShouldHasSuccessfulBoletoResponse(t *testing.T) { 55 mock.StartMockService("9046") 56 input := new(models.BoletoRequest) 57 errConvert := util.FromJSON(baseMockJSON, input) 58 bank, _ := New() 59 60 output, _ := bank.ProcessBoleto(input) 61 62 assert.Nil(t, errConvert) 63 test.AssertProcessBoletoWithSuccess(t, output) 64 } 65 66 func TestGetBoletoType_WhenCalled_ShouldBeMapTypeSuccessful(t *testing.T) { 67 request := new(models.BoletoRequest) 68 for _, fact := range boletoTypeParameters { 69 request.Title = fact.Input.(models.Title) 70 _, result := getBoletoType(request) 71 assert.Equal(t, fact.Expected, result, "Deve mapear o boleto type corretamente") 72 } 73 }