spec/brcobranca/remessa/cnab400/sicoob_spec.rb in brcobranca-8.0.0 vs spec/brcobranca/remessa/cnab400/sicoob_spec.rb in brcobranca-9.0.0

- old
+ new

@@ -139,9 +139,46 @@ expect(id_empresa[0..3]).to eq '4327' # agencia expect(id_empresa[4]).to eq '3' # digito_agencia expect(id_empresa[5..13]).to eq '123456789' # convenio expect(id_empresa[14..19]).to eq ' ' # brancos end + + it 'deve calcular o digito da agencia' do + # digito calculado a partir do modulo 11 com base 9 + # + # agencia = 1 2 3 4 + # + # 4 3 2 1 + # x 9 8 7 6 + # = 36 24 14 6 = 80 + # 80 / 11 = 7 com resto 3 + expected_digito_agencia_list = [ + { agencia: "3214", dv: "0" }, + { agencia: "2006", dv: "0" }, + { agencia: "5651", dv: "0" }, + { agencia: "5691", dv: "0" }, + { agencia: "5741", dv: "0" }, + { agencia: "1008", dv: "1" }, + { agencia: "5681", dv: "2" }, + { agencia: "5731", dv: "2" }, + { agencia: "4327", dv: "3" }, + { agencia: "1001", dv: "4" }, + { agencia: "5761", dv: "4" }, + { agencia: "3032", dv: "5" }, + { agencia: "5671", dv: "5" }, + { agencia: "5631", dv: "6" }, + { agencia: "1005", dv: "7" }, + { agencia: "5661", dv: "8" }, + { agencia: "0001", dv: "9" }, + { agencia: "5621", dv: "9" }, + ] + + expected_digito_agencia_list.each do |expected_dv_agencia| + remessa_params = params.merge!(agencia: expected_dv_agencia[:agencia]) + remessa = subject.class.new(remessa_params) + expect(remessa.digito_agencia).to eq expected_dv_agencia[:dv] + end + end end context 'monta remessa' do it_behaves_like 'cnab400'