github.com/mundipagg/boleto-api@v0.0.0-20230620145841-3f9ec742599f/caixa/stub.go (about) 1 package caixa 2 3 import ( 4 "time" 5 6 "github.com/mundipagg/boleto-api/models" 7 "github.com/mundipagg/boleto-api/test" 8 ) 9 10 const day = time.Hour * 24 11 12 type stubBoletoRequestCaixa struct { 13 test.StubBoletoRequest 14 } 15 16 //newStubBoletoRequestCaixa Cria um novo StubBoletoRequest com valores default validáveis para Caixa 17 func newStubBoletoRequestCaixa() *stubBoletoRequestCaixa { 18 expirationDate := time.Now().Add(5 * day) 19 20 base := test.NewStubBoletoRequest(models.Caixa) 21 s := &stubBoletoRequestCaixa{ 22 StubBoletoRequest: *base, 23 } 24 25 s.Agreement = models.Agreement{ 26 AgreementNumber: 123456, 27 Agency: "1234", 28 } 29 30 s.Title = models.Title{ 31 ExpireDateTime: expirationDate, 32 ExpireDate: expirationDate.Format("2006-01-02"), 33 OurNumber: 12345678901234, 34 AmountInCents: 200, 35 DocumentNumber: "1234567890A", 36 Instructions: "Campo de instruções - max 40 caracteres", 37 BoletoType: "OUT", 38 BoletoTypeCode: "99", 39 } 40 41 s.Recipient = models.Recipient{ 42 Document: models.Document{ 43 Type: "CNPJ", 44 Number: "12123123000112", 45 }, 46 } 47 48 s.Buyer = models.Buyer{ 49 Name: "Willian Jadson Bezerra Menezes Tupinambá", 50 Document: models.Document{ 51 Type: "CPF", 52 Number: "12312312312", 53 }, 54 } 55 return s 56 } 57 58 func (s *stubBoletoRequestCaixa) WithBuyerAddress() *stubBoletoRequestCaixa { 59 s.Buyer.Address = models.Address{ 60 Street: "Rua da Assunção de Sá", 61 Number: "123", 62 Complement: "Seção A, s 02", 63 ZipCode: "20520051", 64 City: "Belém do Pará", 65 District: "Açaí", 66 StateCode: "PA", 67 } 68 return s 69 } 70 71 func (s *stubBoletoRequestCaixa) WithStrictRules() *stubBoletoRequestCaixa { 72 s.Title.Rules = &models.Rules{ 73 AcceptDivergentAmount: false, 74 MaxDaysToPayPastDue: 0, 75 } 76 return s 77 } 78 79 func (s *stubBoletoRequestCaixa) WithFlexRules() *stubBoletoRequestCaixa { 80 s.Title.Rules = &models.Rules{ 81 AcceptDivergentAmount: true, 82 MaxDaysToPayPastDue: 60, 83 } 84 return s 85 }