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'