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

     1  package bb
     2  
     3  import (
     4  	"fmt"
     5  	"testing"
     6  
     7  	"github.com/mundipagg/boleto-api/models"
     8  	"github.com/mundipagg/boleto-api/test"
     9  	"github.com/stretchr/testify/assert"
    10  )
    11  
    12  var boletoRequestParameters = []test.Parameter{
    13  	{
    14  		Line:     0,
    15  		Input:    newStubBoletoRequestBB().Build(),
    16  		Expected: nil,
    17  	},
    18  	{
    19  		Line:     1,
    20  		Input:    newStubBoletoRequestBB().WithTitle(models.Title{DocumentNumber: "loja"}).Build(),
    21  		Expected: nil,
    22  	},
    23  	{
    24  		Line:     2,
    25  		Input:    newStubBoletoRequestBB().WithTitle(models.Title{DocumentNumber: "123456"}).Build(),
    26  		Expected: nil,
    27  	},
    28  	{
    29  		Line:     3,
    30  		Input:    newStubBoletoRequestBB().WithTitle(models.Title{DocumentNumber: "lojas-15-digito"}).Build(),
    31  		Expected: nil,
    32  	},
    33  	{
    34  		Line:     4,
    35  		Input:    newStubBoletoRequestBB().WithTitle(models.Title{DocumentNumber: "lojas-16-digitos"}).Build(),
    36  		Expected: models.NewErrorResponse("MP400", "O campo documentNumber do título ultrapassou o limite permitido de 15 caracteres"),
    37  	},
    38  }
    39  
    40  func Test_GivenTheValidateTitleDocumentNumberMethodWasCalled_ThenItShouldCorrectlyValidateTheField(t *testing.T) {
    41  	for _, fact := range boletoRequestParameters {
    42  		boletoRequest := fact.Input.(*models.BoletoRequest)
    43  
    44  		result := bbValidateTitleDocumentNumber(boletoRequest)
    45  
    46  		assert.Equal(t, fact.Expected, result, fmt.Sprintf("bbValidateTitleDocumentNumber - Linha %d: Deve validar o campo documentNumber corretamente", fact.Line))
    47  	}
    48  }