br_nfe 1.1.0 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +5 -0
- data/.travis.yml +8 -0
- data/Gemfile +16 -0
- data/Gemfile.lock +27 -3
- data/LICENSE +1 -1
- data/README.markdown +10 -12
- data/Rakefile +13 -0
- data/br_nfe.gemspec +18 -21
- data/lib/br_nfe/active_model_base.rb +7 -1
- data/lib/br_nfe/base.rb +175 -37
- data/lib/br_nfe/endereco.rb +7 -1
- data/lib/br_nfe/helper/have_rps.rb +1 -1
- data/lib/br_nfe/helper/values_ts/service_v1.rb +313 -0
- data/lib/br_nfe/response/service/build_response.rb +286 -0
- data/lib/br_nfe/response/service/default.rb +185 -0
- data/lib/br_nfe/{servico/response → response/service}/nota_fiscal.rb +11 -10
- data/lib/br_nfe/response/service/paths/base.rb +93 -0
- data/lib/br_nfe/response/service/paths/v1/servico_cancelar_nfse_resposta.rb +22 -0
- data/lib/br_nfe/response/service/paths/v1/servico_consultar_lote_rps_resposta.rb +25 -0
- data/lib/br_nfe/response/service/paths/v1/servico_consultar_nfse_resposta.rb +25 -0
- data/lib/br_nfe/response/service/paths/v1/servico_consultar_nfse_rps_resposta.rb +25 -0
- data/lib/br_nfe/response/service/paths/v1/servico_consultar_situacao_lote_rps_resposta.rb +31 -0
- data/lib/br_nfe/response/service/paths/v1/servico_enviar_lote_rps_resposta.rb +36 -0
- data/lib/br_nfe/response/service/paths/v1/tc_nfse.rb +127 -0
- data/lib/br_nfe/service/base.rb +59 -0
- data/lib/br_nfe/service/betha/base.rb +8 -0
- data/lib/br_nfe/service/betha/v1/cancelamento_nfs.rb +39 -0
- data/lib/br_nfe/service/betha/v1/consulta_lote_rps.rb +34 -0
- data/lib/br_nfe/service/betha/v1/consulta_nfs_por_rps.rb +32 -0
- data/lib/br_nfe/service/betha/v1/consulta_nfse.rb +32 -0
- data/lib/br_nfe/service/betha/v1/consulta_situacao_lote_rps.rb +30 -0
- data/lib/br_nfe/service/betha/v1/gateway.rb +21 -0
- data/lib/br_nfe/service/betha/v1/recepcao_lote_rps.rb +37 -0
- data/lib/br_nfe/service/betha/v1/response_paths/servico_consultar_lote_rps_resposta.rb +19 -0
- data/lib/br_nfe/service/betha/v1/response_paths/servico_consultar_nfse_resposta.rb +17 -0
- data/lib/br_nfe/service/betha/v1/response_paths/servico_consultar_nfse_rps_resposta.rb +17 -0
- data/lib/br_nfe/service/concerns/rules/cancelamento_nfs.rb +20 -0
- data/lib/br_nfe/service/concerns/rules/consulta_nfs_por_rps.rb +18 -0
- data/lib/br_nfe/service/concerns/rules/consulta_nfse.rb +29 -0
- data/lib/br_nfe/service/concerns/rules/recepcao_lote_rps.rb +50 -0
- data/lib/br_nfe/{servico → service}/intermediario.rb +1 -1
- data/lib/br_nfe/service/item.rb +70 -0
- data/lib/br_nfe/service/rps.rb +231 -0
- data/lib/br_nfe/service/sc/florianopolis/base.rb +25 -0
- data/lib/br_nfe/service/sc/florianopolis/cancellation.rb +30 -0
- data/lib/br_nfe/service/sc/florianopolis/emission_rps.rb +19 -0
- data/lib/br_nfe/service/sc/florianopolis/xml/_address.xml.slim +21 -0
- data/lib/br_nfe/service/sc/florianopolis/xml/_contact.xml.slim +3 -0
- data/lib/br_nfe/service/sc/florianopolis/xml/_service_item.xml.slim +9 -0
- data/lib/br_nfe/service/sc/florianopolis/xml/cancellation.xml.slim +6 -0
- data/lib/br_nfe/service/sc/florianopolis/xml/inf_requisicao.xml.slim +55 -0
- data/lib/br_nfe/service/sc/gaspar/cancela_nfse.rb +13 -0
- data/lib/br_nfe/service/sc/gaspar/consulta_lote_rps.rb +13 -0
- data/lib/br_nfe/service/sc/gaspar/consulta_nfs_por_rps.rb +13 -0
- data/lib/br_nfe/service/sc/gaspar/consulta_nfse.rb +17 -0
- data/lib/br_nfe/service/sc/gaspar/consulta_situacao_lote_rps.rb +13 -0
- data/lib/br_nfe/service/sc/gaspar/recepcao_lote_rps.rb +13 -0
- data/lib/br_nfe/service/sc/gaspar/recepcao_lote_rps_limitado.rb +13 -0
- data/lib/br_nfe/service/thema/v1/base.rb +55 -0
- data/lib/br_nfe/service/thema/v1/cancela_nfse.rb +48 -0
- data/lib/br_nfe/service/thema/v1/consulta_lote_rps.rb +49 -0
- data/lib/br_nfe/service/thema/v1/consulta_nfs_por_rps.rb +48 -0
- data/lib/br_nfe/service/thema/v1/consulta_nfse.rb +47 -0
- data/lib/br_nfe/service/thema/v1/consulta_situacao_lote_rps.rb +46 -0
- data/lib/br_nfe/service/thema/v1/recepcao_lote_rps.rb +51 -0
- data/lib/br_nfe/service/thema/v1/recepcao_lote_rps_limitado.rb +30 -0
- data/lib/br_nfe/service/xml/v1/_tc_contato.xml.slim +7 -0
- data/lib/br_nfe/service/xml/v1/_tc_cpf_cnpj.xml.slim +5 -0
- data/lib/br_nfe/service/xml/v1/_tc_dados_construcao_civil.xml.slim +2 -0
- data/lib/br_nfe/service/xml/v1/_tc_dados_prestador.xml.slim +15 -0
- data/lib/br_nfe/service/xml/v1/_tc_dados_servico.xml.slim +14 -0
- data/lib/br_nfe/service/xml/v1/_tc_dados_tomador.xml.slim +15 -0
- data/lib/br_nfe/service/xml/v1/_tc_endereco.xml.slim +13 -0
- data/lib/br_nfe/service/xml/v1/_tc_identificacao_intermediario_servico.xml.slim +7 -0
- data/lib/br_nfe/service/xml/v1/_tc_identificacao_nfse.xml.slim +7 -0
- data/lib/br_nfe/service/xml/v1/_tc_identificacao_orgao_gerador.xml.slim +8 -0
- data/lib/br_nfe/service/xml/v1/_tc_identificacao_prestador.xml.slim +3 -0
- data/lib/br_nfe/service/xml/v1/_tc_identificacao_rps.xml.slim +16 -0
- data/lib/br_nfe/service/xml/v1/_tc_identificacao_tomador.xml.slim +4 -0
- data/lib/br_nfe/service/xml/v1/_tc_inf_pedido_cancelamento.xml.slim +4 -0
- data/lib/br_nfe/service/xml/v1/_tc_inf_rps.xml.slim +47 -0
- data/lib/br_nfe/service/xml/v1/_tc_lote_rps.xml.slim +9 -0
- data/lib/br_nfe/service/xml/v1/_tc_pedido_cancelamento.xml.slim +4 -0
- data/lib/br_nfe/service/xml/v1/_tc_rps.xml.slim +8 -0
- data/lib/br_nfe/service/xml/v1/_tc_valores.xml.slim +48 -0
- data/lib/br_nfe/service/xml/v1/servico_cancelar_nfse_envio.xml.slim +9 -0
- data/lib/br_nfe/service/xml/v1/servico_consultar_lote_rps_envio.xml.slim +4 -0
- data/lib/br_nfe/service/xml/v1/servico_consultar_nfse_envio.xml.slim +19 -0
- data/lib/br_nfe/service/xml/v1/servico_consultar_nfse_rps_envio.xml.slim +5 -0
- data/lib/br_nfe/service/xml/v1/servico_consultar_situacao_lote_rps_envio.xml.slim +4 -0
- data/lib/br_nfe/service/xml/v1/servico_enviar_lote_rps_envio.xml.slim +9 -0
- data/lib/br_nfe/version.rb +2 -2
- data/lib/br_nfe/xml/_signed_info_sh1.xml.slim +9 -0
- data/lib/br_nfe/xml/signature_sh1.xml.slim +12 -0
- data/lib/br_nfe/xml/soap_env.xml.slim +3 -0
- data/lib/br_nfe.rb +72 -20
- data/test/br_nfe/base_test.rb +257 -108
- data/test/br_nfe/helper/have_intermediario_test.rb +2 -2
- data/test/br_nfe/helper/have_rps_test.rb +4 -4
- data/test/br_nfe/response/service/build_response_test.rb +377 -0
- data/test/br_nfe/response/service/default_test.rb +218 -0
- data/test/br_nfe/{servico/response → response/service}/nota_fiscal_test.rb +2 -2
- data/test/br_nfe/response/service/paths/base_test.rb +199 -0
- data/test/br_nfe/response/service/paths/v1/servico_cancelar_nfse_resposta_test.rb +25 -0
- data/test/br_nfe/response/service/paths/v1/servico_consultar_lote_rps_resposta_test.rb +30 -0
- data/test/br_nfe/response/service/paths/v1/servico_consultar_nfse_resposta_test.rb +30 -0
- data/test/br_nfe/response/service/paths/v1/servico_consultar_nfse_rps_resposta_test.rb +30 -0
- data/test/br_nfe/response/service/paths/v1/servico_consultar_situacao_lote_rps_resposta_test.rb +30 -0
- data/test/br_nfe/response/service/paths/v1/servico_enviar_lote_rps_resposta_test.rb +34 -0
- data/test/br_nfe/response/service/paths/v1/tc_nfse_test.rb +122 -0
- data/test/br_nfe/service/base_test.rb +138 -0
- data/test/br_nfe/service/betha/base_test.rb +9 -0
- data/test/br_nfe/service/betha/v1/cancelamento_nfs_test.rb +60 -0
- data/test/br_nfe/service/betha/v1/consulta_lote_rps_test.rb +55 -0
- data/test/br_nfe/service/betha/v1/consulta_nfs_por_rps_test.rb +55 -0
- data/test/br_nfe/service/betha/v1/consulta_nfse_test.rb +53 -0
- data/test/br_nfe/service/betha/v1/consulta_situacao_lote_rps_test.rb +49 -0
- data/test/br_nfe/service/betha/v1/gateway_test.rb +35 -0
- data/test/br_nfe/service/betha/v1/recepcao_lote_rps_test.rb +84 -0
- data/test/br_nfe/service/betha/v1/response_paths/servico_consultar_lote_rps_resposta_test.rb +16 -0
- data/test/br_nfe/service/betha/v1/response_paths/servico_consultar_nfse_resposta_test.rb +16 -0
- data/test/br_nfe/service/betha/v1/response_paths/servico_consultar_nfse_rps_resposta_test.rb +16 -0
- data/test/br_nfe/service/betha/v1/xsd/TiposNFe_v01.xsd +583 -0
- data/test/br_nfe/service/betha/v1/xsd/nfse_v01.xsd +652 -0
- data/test/br_nfe/service/betha/v1/xsd/servico_cancelar_nfse_envio_v01.xsd +17 -0
- data/test/br_nfe/service/betha/v1/xsd/servico_consultar_lote_rps_envio_v01.xsd +16 -0
- data/test/br_nfe/service/betha/v1/xsd/servico_consultar_nfse_envio_v01.xsd +28 -0
- data/test/br_nfe/service/betha/v1/xsd/servico_consultar_nfse_rps_envio_v01.xsd +16 -0
- data/test/br_nfe/service/betha/v1/xsd/servico_consultar_situacao_lote_rps_envio_v01.xsd +16 -0
- data/test/br_nfe/service/betha/v1/xsd/servico_enviar_lote_rps_envio_v01.xsd +17 -0
- data/test/br_nfe/service/betha/v1/xsd/xmldsig-core-schema.xsd +308 -0
- data/test/br_nfe/service/betha/v1/xsd/xmldsig-core-schema_v01.xsd +95 -0
- data/test/br_nfe/service/concerns/rules/cancelamento_nfs_test.rb +15 -0
- data/test/br_nfe/service/concerns/rules/consulta_nfs_por_rps_test.rb +36 -0
- data/test/br_nfe/service/concerns/rules/consulta_nfse_test.rb +42 -0
- data/test/br_nfe/{servico/base_test.rb → service/concerns/rules/recepcao_lote_rps_test.rb} +12 -4
- data/test/br_nfe/{servico → service}/intermediario_test.rb +1 -1
- data/test/br_nfe/service/item_test.rb +34 -0
- data/test/br_nfe/{servico → service}/rps_test.rb +191 -43
- data/test/br_nfe/service/sc/florianopolis/XSD/TiposNFSe_v2.0.xsd +863 -0
- data/test/br_nfe/service/sc/florianopolis/XSD/xmldsig-core-schema.xsd +309 -0
- data/test/br_nfe/service/sc/florianopolis/base_test.rb +20 -0
- data/test/br_nfe/service/sc/florianopolis/cancellation_test.rb +36 -0
- data/test/br_nfe/service/sc/florianopolis/emission_rps_test.rb +145 -0
- data/test/br_nfe/service/sc/gaspar/cancela_nfse_test.rb +21 -0
- data/test/br_nfe/service/sc/gaspar/consulta_nfs_por_rps_test.rb +21 -0
- data/test/br_nfe/service/sc/gaspar/consulta_nfse_test.rb +21 -0
- data/test/br_nfe/service/sc/gaspar/consulta_situacao_lote_rps_test.rb +21 -0
- data/test/br_nfe/service/sc/gaspar/recepcao_lote_rps_limitado_test.rb +22 -0
- data/test/br_nfe/service/sc/gaspar/recepcao_lote_rps_test.rb +22 -0
- data/test/br_nfe/service/thema/v1/base_test.rb +65 -0
- data/test/br_nfe/service/thema/v1/cancela_nfse_test.rb +56 -0
- data/test/br_nfe/service/thema/v1/consulta_lote_rps_test.rb +47 -0
- data/test/br_nfe/service/thema/v1/consulta_nfs_por_rps_test.rb +50 -0
- data/test/br_nfe/service/thema/v1/consulta_nfse_test.rb +50 -0
- data/test/br_nfe/service/thema/v1/consulta_situacao_lote_rps_test.rb +47 -0
- data/test/br_nfe/service/thema/v1/recepcao_lote_rps_test.rb +62 -0
- data/test/br_nfe/service/thema/v1/recepcao_lote_rps_test_limitado.rb +50 -0
- data/test/br_nfe/service/thema/v1/xsd/nfse.xsd +656 -0
- data/test/br_nfe/service/thema/v1/xsd/xmldsig-core-schema20020212.xsd +318 -0
- data/test/br_nfe/service/xsd/v1/nfse.xsd +779 -0
- data/test/br_nfe/service/xsd/v1/xmldsig-core-schema20020212.xsd +316 -0
- data/test/cert.pfx +0 -0
- data/test/factories/base.rb +2 -0
- data/test/factories/destinatario.rb +3 -3
- data/test/factories/response/service/build_response.rb +5 -0
- data/test/factories/response/service/default.rb +10 -0
- data/test/factories/{servico/response → response/service}/nota_fiscal.rb +9 -9
- data/test/factories/service/base.rb +6 -0
- data/test/factories/service/betha/base.rb +4 -0
- data/test/factories/service/betha/v1/cancelamento_nfs.rb +9 -0
- data/test/factories/{servico → service}/betha/v1/consulta_lote_rps.rb +2 -2
- data/test/factories/{servico → service}/betha/v1/consulta_nfs_por_rps.rb +1 -1
- data/test/factories/service/betha/v1/consulta_nfse.rb +8 -0
- data/test/factories/{servico → service}/betha/v1/consulta_situacao_lote_rps.rb +2 -2
- data/test/factories/{servico → service}/betha/v1/gateway.rb +1 -1
- data/test/factories/service/betha/v1/recepcao_lote_rps.rb +8 -0
- data/test/factories/{servico → service}/intermediario.rb +2 -2
- data/test/factories/service/item.rb +12 -0
- data/test/factories/service/rps.rb +50 -0
- data/test/factories/service/sc/florianopolis/base.rb +5 -0
- data/test/factories/service/sc/florianopolis/cancellation.rb +7 -0
- data/test/factories/service/sc/florianopolis/emission_rps.rb +7 -0
- data/test/factories/service/sc/gaspar/cancela_nfse.rb +9 -0
- data/test/factories/service/sc/gaspar/consulta_lote_rps.rb +7 -0
- data/test/factories/service/sc/gaspar/consulta_nfs_por_rps.rb +6 -0
- data/test/factories/service/sc/gaspar/consulta_nfse.rb +8 -0
- data/test/factories/service/sc/gaspar/consulta_situacao_lote_rps.rb +6 -0
- data/test/factories/service/sc/gaspar/recepcao_lote_rps.rb +9 -0
- data/test/factories/service/sc/gaspar/recepcao_lote_rps_limitado.rb +9 -0
- data/test/factories/service/thema/v1/base.rb +7 -0
- data/test/factories/service/thema/v1/cancela_nfse.rb +9 -0
- data/test/factories/service/thema/v1/consulta_lote_rps.rb +7 -0
- data/test/factories/service/thema/v1/consulta_nfs_por_rps.rb +6 -0
- data/test/factories/service/thema/v1/consulta_nfse.rb +8 -0
- data/test/factories/service/thema/v1/consulta_situacao_lote_rps.rb +6 -0
- data/test/factories/service/thema/v1/recepcao_lote_rps.rb +9 -0
- data/test/factories/service/thema/v1/recepcao_lote_rps_limitado.rb +8 -0
- data/test/test_helper.rb +42 -0
- metadata +338 -121
- data/lib/br_nfe/servico/base.rb +0 -35
- data/lib/br_nfe/servico/betha/base.rb +0 -85
- data/lib/br_nfe/servico/betha/build_response.rb +0 -141
- data/lib/br_nfe/servico/betha/v1/build_response.rb +0 -121
- data/lib/br_nfe/servico/betha/v1/cancelamento_nfs.rb +0 -52
- data/lib/br_nfe/servico/betha/v1/consulta_lote_rps.rb +0 -33
- data/lib/br_nfe/servico/betha/v1/consulta_nfs_por_rps.rb +0 -37
- data/lib/br_nfe/servico/betha/v1/consulta_nfse.rb +0 -51
- data/lib/br_nfe/servico/betha/v1/consulta_situacao_lote_rps.rb +0 -18
- data/lib/br_nfe/servico/betha/v1/gateway.rb +0 -125
- data/lib/br_nfe/servico/betha/v1/recepcao_lote_rps.rb +0 -97
- data/lib/br_nfe/servico/betha/v2/build_response.rb +0 -159
- data/lib/br_nfe/servico/betha/v2/cancelamento_nfs.rb +0 -30
- data/lib/br_nfe/servico/betha/v2/consulta_lote_rps.rb +0 -30
- data/lib/br_nfe/servico/betha/v2/consulta_nfse_por_rps.rb +0 -27
- data/lib/br_nfe/servico/betha/v2/envio_lote_rps_sincrono.rb +0 -30
- data/lib/br_nfe/servico/betha/v2/gateway.rb +0 -230
- data/lib/br_nfe/servico/betha/v2/gera_nfse.rb +0 -30
- data/lib/br_nfe/servico/betha/v2/recepcao_lote_rps.rb +0 -52
- data/lib/br_nfe/servico/betha/v2/substituicao_nfse.rb +0 -43
- data/lib/br_nfe/servico/response/default.rb +0 -34
- data/lib/br_nfe/servico/rps.rb +0 -108
- data/test/br_nfe/servico/betha/base_test.rb +0 -135
- data/test/br_nfe/servico/betha/v1/build_response_test.rb +0 -557
- data/test/br_nfe/servico/betha/v1/cancelamento_nfs_test.rb +0 -72
- data/test/br_nfe/servico/betha/v1/consulta_lote_rps_test.rb +0 -46
- data/test/br_nfe/servico/betha/v1/consulta_nfs_por_rps_test.rb +0 -68
- data/test/br_nfe/servico/betha/v1/consulta_nfse_test.rb +0 -74
- data/test/br_nfe/servico/betha/v1/consulta_situacao_lote_rps_test.rb +0 -27
- data/test/br_nfe/servico/betha/v1/gateway_test.rb +0 -151
- data/test/br_nfe/servico/betha/v1/recepcao_lote_rps_test.rb +0 -249
- data/test/br_nfe/servico/betha/v2/cancelamento_nfs_test.rb +0 -44
- data/test/br_nfe/servico/betha/v2/consulta_lote_rps_test.rb +0 -38
- data/test/br_nfe/servico/betha/v2/consulta_nfse_por_rps_test.rb +0 -36
- data/test/br_nfe/servico/betha/v2/envio_lote_rps_sincrono_test.rb +0 -51
- data/test/br_nfe/servico/betha/v2/gateway_test.rb +0 -372
- data/test/br_nfe/servico/betha/v2/gera_nfse_test.rb +0 -62
- data/test/br_nfe/servico/betha/v2/recepcao_lote_rps_test.rb +0 -108
- data/test/br_nfe/servico/betha/v2/substituicao_nfse_test.rb +0 -84
- data/test/br_nfe/servico/response/default_test.rb +0 -54
- data/test/factories/servico/base.rb +0 -5
- data/test/factories/servico/betha/base.rb +0 -5
- data/test/factories/servico/betha/v1/build_response.rb +0 -6
- data/test/factories/servico/betha/v1/cancelamento_nfs.rb +0 -7
- data/test/factories/servico/betha/v1/consulta_nfse.rb +0 -8
- data/test/factories/servico/betha/v1/recepcao_lote_rps.rb +0 -6
- data/test/factories/servico/betha/v2/cancelamento_nfs.rb +0 -7
- data/test/factories/servico/betha/v2/consulta_lote_rps.rb +0 -6
- data/test/factories/servico/betha/v2/consulta_nfse_por_rps.rb +0 -6
- data/test/factories/servico/betha/v2/envio_lote_rps_sincrono.rb +0 -5
- data/test/factories/servico/betha/v2/gateway.rb +0 -5
- data/test/factories/servico/betha/v2/gera_nfse.rb +0 -6
- data/test/factories/servico/betha/v2/recepcao_lote_rps.rb +0 -5
- data/test/factories/servico/betha/v2/substituicao_nfse.rb +0 -8
- data/test/factories/servico/response/default.rb +0 -10
- data/test/factories/servico/rps.rb +0 -44
@@ -1,62 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
describe BrNfe::Servico::Betha::V2::GeraNfse do
|
4
|
-
subject { FactoryGirl.build(:br_nfe_servico_betha_v2_gera_nfse, emitente: emitente, rps: rps, certificate_pkcs12: certificado) }
|
5
|
-
let(:emitente) { FactoryGirl.build(:emitente) }
|
6
|
-
let(:rps) { FactoryGirl.build(:br_nfe_rps) }
|
7
|
-
let(:certificado) { Certificado.new }
|
8
|
-
|
9
|
-
describe "inheritance class" do
|
10
|
-
it { subject.class.superclass.must_equal BrNfe::Servico::Betha::V2::Gateway }
|
11
|
-
end
|
12
|
-
|
13
|
-
describe "validations" do
|
14
|
-
|
15
|
-
context "validações do certificado" do
|
16
|
-
before { subject.certificate_pkcs12 = nil }
|
17
|
-
it { must validate_presence_of(:certificate) }
|
18
|
-
it { must validate_presence_of(:certificate_key) }
|
19
|
-
end
|
20
|
-
context "deve validar o rps" do
|
21
|
-
it "quando o rps for válido não deve setar nenhuma mensagem no objeto" do
|
22
|
-
rps.stubs(:errors).returns(stub(full_messages: ["Erro rps"]))
|
23
|
-
sequence_1 = sequence('sequence_1')
|
24
|
-
rps.expects(:validar_recepcao_rps=).with(true).in_sequence(sequence_1)
|
25
|
-
rps.expects(:invalid?).returns(false).in_sequence(sequence_1)
|
26
|
-
subject.valid?.must_equal true
|
27
|
-
subject.errors.full_messages.must_equal( [] )
|
28
|
-
end
|
29
|
-
it "quando o rps for inválido deve setar mensagem de erro no objeto" do
|
30
|
-
rps.stubs(:errors).returns(stub(full_messages: ["Erro rps"]))
|
31
|
-
sequence_1 = sequence('sequence_1')
|
32
|
-
rps.expects(:validar_recepcao_rps=).with(true).in_sequence(sequence_1)
|
33
|
-
rps.expects(:invalid?).returns(true).in_sequence(sequence_1)
|
34
|
-
subject.valid?.must_equal false
|
35
|
-
subject.errors.full_messages.must_equal( ["RPS: Erro rps"] )
|
36
|
-
end
|
37
|
-
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
describe "#method_wsdl" do
|
42
|
-
it { subject.method_wsdl.must_equal :gerar_nfse }
|
43
|
-
end
|
44
|
-
|
45
|
-
describe "#xml_builder" do
|
46
|
-
it "não ocorre erro" do
|
47
|
-
subject.stubs(:assinatura_xml).returns('<Signature>signed</Signature>')
|
48
|
-
subject.xml_builder.class.must_equal Nokogiri::XML::Builder
|
49
|
-
end
|
50
|
-
it "estrutura" do
|
51
|
-
subject.expects(:xml_rps_assinado).returns( Nokogiri::XML::Builder.new{|x| x.RpsAssinado 'valor rps assinado'} )
|
52
|
-
xml = subject.xml_builder.doc
|
53
|
-
|
54
|
-
xml.namespaces.must_equal({"xmlns"=>"http://www.betha.com.br/e-nota-contribuinte-ws"})
|
55
|
-
xml.remove_namespaces!
|
56
|
-
|
57
|
-
xml.xpath('GerarNfseEnvio/RpsAssinado').first.text.must_equal 'valor rps assinado'
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
|
62
|
-
end
|
@@ -1,108 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
describe BrNfe::Servico::Betha::V2::RecepcaoLoteRps do
|
4
|
-
subject { FactoryGirl.build(:br_nfe_servico_betha_v2_recepcao_lote_rps, emitente: emitente) }
|
5
|
-
let(:emitente) { FactoryGirl.build(:emitente) }
|
6
|
-
|
7
|
-
describe "inheritance class" do
|
8
|
-
it { subject.class.superclass.must_equal BrNfe::Servico::Betha::V2::Gateway }
|
9
|
-
end
|
10
|
-
|
11
|
-
describe "validations" do
|
12
|
-
it { must validate_presence_of(:numero_lote_rps) }
|
13
|
-
|
14
|
-
context "validações do certificado" do
|
15
|
-
before { subject.certificate_pkcs12 = nil }
|
16
|
-
it { must validate_presence_of(:certificate) }
|
17
|
-
it { must validate_presence_of(:certificate_key) }
|
18
|
-
end
|
19
|
-
|
20
|
-
it "deve chamar o metodo validar_lote_rps" do
|
21
|
-
subject.expects(:validar_lote_rps)
|
22
|
-
subject.valid?
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
describe "#method_wsdl" do
|
27
|
-
it { subject.method_wsdl.must_equal :recepcionar_lote_rps }
|
28
|
-
end
|
29
|
-
|
30
|
-
describe "#xml_builder" do
|
31
|
-
it "não ocorre erro" do
|
32
|
-
subject.stubs(:assinatura_xml).returns('<Signature>signed</Signature>')
|
33
|
-
subject.xml_builder.class.must_equal Nokogiri::XML::Builder
|
34
|
-
end
|
35
|
-
it "estrutura" do
|
36
|
-
subject.numero_lote_rps = 88966
|
37
|
-
lote_rps_xml = Nokogiri::XML::Builder.new{|x| x.LoteRps 'valor loterps'}
|
38
|
-
subject.expects(:lote_rps_xml).returns(lote_rps_xml)
|
39
|
-
subject.expects(:assinatura_xml).with(lote_rps_xml.doc.root.to_s, '#lote88966').returns('<Signature>signed</Signature>')
|
40
|
-
xml = subject.xml_builder.doc
|
41
|
-
|
42
|
-
xml.namespaces.must_equal({"xmlns"=>"http://www.betha.com.br/e-nota-contribuinte-ws"})
|
43
|
-
xml.remove_namespaces!
|
44
|
-
|
45
|
-
xml.xpath('EnviarLoteRpsEnvio/LoteRps').first.text.must_equal 'valor loterps'
|
46
|
-
xml.xpath('EnviarLoteRpsEnvio/Signature').first.text.must_equal 'signed'
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
describe "#lote_rps_xml" do
|
51
|
-
let(:rps1) { FactoryGirl.build(:br_nfe_rps, numero: '1') }
|
52
|
-
let(:rps2) { FactoryGirl.build(:br_nfe_rps, numero: '2') }
|
53
|
-
|
54
|
-
before do
|
55
|
-
subject.stubs(:assinatura_xml).returns('<Signature>signed</Signature>')
|
56
|
-
subject.assign_attributes({
|
57
|
-
numero_lote_rps: '5568'.ljust(50, '1'),
|
58
|
-
emitente: {
|
59
|
-
cnpj: '66.554.778/9654-12',
|
60
|
-
inscricao_municipal: '6565498713134687984313868135798'
|
61
|
-
},
|
62
|
-
lote_rps: [rps1, rps2]
|
63
|
-
})
|
64
|
-
end
|
65
|
-
|
66
|
-
it "estrutura com env = production" do
|
67
|
-
subject.env = :production
|
68
|
-
sequence1 = sequence('sequence1')
|
69
|
-
subject.expects(:xml_rps_assinado).with(rps1).in_sequence(sequence1).returns(Nokogiri::XML::Builder.new{|x| x.Rps 'valor rps1'})
|
70
|
-
subject.expects(:xml_rps_assinado).with(rps2).in_sequence(sequence1).returns(Nokogiri::XML::Builder.new{|x| x.Rps 'valor rps2'})
|
71
|
-
|
72
|
-
xml = subject.send(:lote_rps_xml).doc
|
73
|
-
|
74
|
-
xml.xpath('LoteRps').first.attr('Id').must_equal "lote#{'5568'.ljust(50, '1')}"
|
75
|
-
xml.xpath('LoteRps').first.attr('versao').must_equal '2.02'
|
76
|
-
|
77
|
-
xml.xpath('LoteRps/NumeroLote').first.text.must_equal '556811111111111'
|
78
|
-
xml.xpath('LoteRps/CpfCnpj/Cnpj').first.text.must_equal '66554778965412'
|
79
|
-
xml.xpath('LoteRps/InscricaoMunicipal').first.text.must_equal '656549871313468'
|
80
|
-
xml.xpath('LoteRps/QuantidadeRps').first.text.must_equal '2'
|
81
|
-
|
82
|
-
xml.xpath('LoteRps/ListaRps/Rps').first.text.must_equal 'valor rps1'
|
83
|
-
xml.xpath('LoteRps/ListaRps/Rps').last.text.must_equal 'valor rps2'
|
84
|
-
end
|
85
|
-
|
86
|
-
it "estrutura com env = test" do
|
87
|
-
subject.env = :test
|
88
|
-
sequence1 = sequence('sequence1')
|
89
|
-
subject.expects(:xml_rps_assinado).with(rps1).in_sequence(sequence1).returns(Nokogiri::XML::Builder.new{|x| x.Rps 'valor rps1'})
|
90
|
-
subject.expects(:xml_rps_assinado).with(rps2).in_sequence(sequence1).returns(Nokogiri::XML::Builder.new{|x| x.Rps 'valor rps2'})
|
91
|
-
|
92
|
-
xml = subject.send(:lote_rps_xml).doc
|
93
|
-
|
94
|
-
xml.xpath('LoteRps').first.attr('Id').must_equal "lote#{'5568'.ljust(50, '1')}"
|
95
|
-
xml.xpath('LoteRps').first.attr('versao').must_equal '2.02'
|
96
|
-
|
97
|
-
xml.xpath('LoteRps/NumeroLote').first.text.must_equal '556811111111111'
|
98
|
-
xml.xpath('LoteRps/CpfCnpj/Cnpj').first.text.must_equal '66554778965412'
|
99
|
-
xml.xpath('LoteRps/InscricaoMunicipal').first.must_be_nil
|
100
|
-
xml.xpath('LoteRps/QuantidadeRps').first.text.must_equal '2'
|
101
|
-
|
102
|
-
xml.xpath('LoteRps/ListaRps/Rps').first.text.must_equal 'valor rps1'
|
103
|
-
xml.xpath('LoteRps/ListaRps/Rps').last.text.must_equal 'valor rps2'
|
104
|
-
end
|
105
|
-
end
|
106
|
-
|
107
|
-
|
108
|
-
end
|
@@ -1,84 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
describe BrNfe::Servico::Betha::V2::SubstituicaoNfse do
|
4
|
-
subject { FactoryGirl.build(:br_nfe_servico_betha_v2_substituicao_nfse, emitente: emitente, rps: rps, certificate_pkcs12: certificado) }
|
5
|
-
let(:emitente) { FactoryGirl.build(:emitente) }
|
6
|
-
let(:rps) { FactoryGirl.build(:br_nfe_rps) }
|
7
|
-
let(:certificado) { Certificado.new }
|
8
|
-
|
9
|
-
describe "inheritance class" do
|
10
|
-
it { subject.class.superclass.must_equal BrNfe::Servico::Betha::V2::Gateway }
|
11
|
-
end
|
12
|
-
|
13
|
-
describe "validations" do
|
14
|
-
context "validações do certificado" do
|
15
|
-
before { subject.certificate_pkcs12 = nil }
|
16
|
-
it { must validate_presence_of(:certificate) }
|
17
|
-
it { must validate_presence_of(:certificate_key) }
|
18
|
-
end
|
19
|
-
it { must validate_presence_of(:numero_nfse) }
|
20
|
-
it { must validate_presence_of(:codigo_cancelamento) }
|
21
|
-
|
22
|
-
context "deve validar o rps" do
|
23
|
-
it "quando o rps for válido não deve setar nenhuma mensagem no objeto" do
|
24
|
-
rps.stubs(:errors).returns(stub(full_messages: ["Erro rps"]))
|
25
|
-
sequence_1 = sequence('sequence_1')
|
26
|
-
rps.expects(:validar_recepcao_rps=).with(true).in_sequence(sequence_1)
|
27
|
-
rps.expects(:invalid?).returns(false).in_sequence(sequence_1)
|
28
|
-
subject.valid?.must_equal true
|
29
|
-
subject.errors.full_messages.must_equal( [] )
|
30
|
-
end
|
31
|
-
it "quando o rps for inválido deve setar mensagem de erro no objeto" do
|
32
|
-
rps.stubs(:errors).returns(stub(full_messages: ["Erro rps"]))
|
33
|
-
sequence_1 = sequence('sequence_1')
|
34
|
-
rps.expects(:validar_recepcao_rps=).with(true).in_sequence(sequence_1)
|
35
|
-
rps.expects(:invalid?).returns(true).in_sequence(sequence_1)
|
36
|
-
subject.valid?.must_equal false
|
37
|
-
subject.errors.full_messages.must_equal( ["RPS: Erro rps"] )
|
38
|
-
end
|
39
|
-
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
describe "#method_wsdl" do
|
44
|
-
it { subject.method_wsdl.must_equal :substituir_nfse }
|
45
|
-
end
|
46
|
-
|
47
|
-
describe "#xml_builder" do
|
48
|
-
it "não ocorre erro" do
|
49
|
-
subject.stubs(:assinatura_xml).returns('<Signature>signed</Signature>')
|
50
|
-
subject.xml_builder.class.must_equal Nokogiri::XML::Builder
|
51
|
-
end
|
52
|
-
it "estrutura" do
|
53
|
-
xml_substituicao = Nokogiri::XML::Builder.new{|x| x.Substituicao 'valor subs'}
|
54
|
-
subject.expects(:xml_substituicao_nfse).returns(xml_substituicao)
|
55
|
-
subject.expects(:assinatura_xml).with(xml_substituicao.doc.root.to_s, '#substituicao').returns('<Signature>signed</Signature>')
|
56
|
-
xml = subject.xml_builder.doc
|
57
|
-
|
58
|
-
xml.namespaces.must_equal({"xmlns"=>"http://www.betha.com.br/e-nota-contribuinte-ws"})
|
59
|
-
xml.remove_namespaces!
|
60
|
-
|
61
|
-
xml.xpath('SubstituirNfseEnvio/Substituicao').first.text.must_equal 'valor subs'
|
62
|
-
xml.xpath('SubstituirNfseEnvio/Signature').first.text.must_equal 'signed'
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
describe "#xml_substituicao_nfse" do
|
67
|
-
it "não ocorre erro" do
|
68
|
-
subject.stubs(:assinatura_xml).returns('<Signature>signed</Signature>')
|
69
|
-
subject.xml_substituicao_nfse.class.must_equal Nokogiri::XML::Builder
|
70
|
-
end
|
71
|
-
it "estrutura" do
|
72
|
-
sequence1 = sequence('sequence1')
|
73
|
-
subject.expects(:xml_pedido_cancelamento_assinado).in_sequence(sequence1).returns(Nokogiri::XML::Builder.new{|x| x.Pedido 'valor pedido'})
|
74
|
-
subject.expects(:xml_rps_assinado).with(rps).in_sequence(sequence1).returns(Nokogiri::XML::Builder.new{|x| x.Rps 'valor rps'})
|
75
|
-
xml = subject.xml_substituicao_nfse.doc
|
76
|
-
|
77
|
-
xml.xpath('SubstituicaoNfse').first.attr('Id').must_equal 'substituicao'
|
78
|
-
xml.xpath('SubstituicaoNfse/Pedido').first.text.must_equal 'valor pedido'
|
79
|
-
xml.xpath('SubstituicaoNfse/Rps').first.text.must_equal 'valor rps'
|
80
|
-
end
|
81
|
-
end
|
82
|
-
|
83
|
-
|
84
|
-
end
|
@@ -1,54 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
describe BrNfe::Servico::Response::Default do
|
4
|
-
subject { FactoryGirl.build(:response_default) }
|
5
|
-
|
6
|
-
describe "#success?" do
|
7
|
-
it "when is true" do
|
8
|
-
subject.success = true
|
9
|
-
subject.success?.must_equal true
|
10
|
-
end
|
11
|
-
|
12
|
-
it "when is false" do
|
13
|
-
subject.success = false
|
14
|
-
subject.success?.must_equal false
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
describe "#notas_fiscais" do
|
19
|
-
it "deve inicializar como um vetor vazio" do
|
20
|
-
subject.class.new.notas_fiscais.must_equal []
|
21
|
-
end
|
22
|
-
|
23
|
-
it "posso utilizar o << para adicionar valores" do
|
24
|
-
new_object = subject.class.new
|
25
|
-
new_object.notas_fiscais << 'x'
|
26
|
-
new_object.notas_fiscais << 'y'
|
27
|
-
new_object.notas_fiscais.must_equal ['x','y']
|
28
|
-
end
|
29
|
-
|
30
|
-
it "sempre retorna um array" do
|
31
|
-
subject.notas_fiscais = {valor: '2'}
|
32
|
-
subject.notas_fiscais.must_equal [{valor: '2'}]
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
describe "#error_messages" do
|
37
|
-
it "deve inicializar como um vetor vazio" do
|
38
|
-
subject.class.new.error_messages.must_equal []
|
39
|
-
end
|
40
|
-
|
41
|
-
it "posso utilizar o << para adicionar valores" do
|
42
|
-
new_object = subject.class.new
|
43
|
-
new_object.error_messages << 'aaa'
|
44
|
-
new_object.error_messages << 'bbbbb'
|
45
|
-
new_object.error_messages.must_equal ['aaa','bbbbb']
|
46
|
-
end
|
47
|
-
|
48
|
-
it "sempre retorna um array" do
|
49
|
-
subject.error_messages = {valor: '2'}
|
50
|
-
subject.error_messages.must_equal [{valor: '2'}]
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
end
|
@@ -1,8 +0,0 @@
|
|
1
|
-
FactoryGirl.define do
|
2
|
-
factory :br_nfe_servico_betha_v2_substituicao_nfse, class: BrNfe::Servico::Betha::V2::SubstituicaoNfse do
|
3
|
-
emitente { FactoryGirl.build(:emitente) }
|
4
|
-
rps { FactoryGirl.build(:br_nfe_rps) }
|
5
|
-
numero_nfse '5526'
|
6
|
-
codigo_cancelamento '1'
|
7
|
-
end
|
8
|
-
end
|
@@ -1,10 +0,0 @@
|
|
1
|
-
FactoryGirl.define do
|
2
|
-
factory :response_default, class: BrNfe::Servico::Response::Default do
|
3
|
-
success true
|
4
|
-
error_messages {[]}
|
5
|
-
notas_fiscais { [FactoryGirl.build(:response_nota_fiscal)] }
|
6
|
-
protocolo '6988965463213549'
|
7
|
-
data_recebimento { DateTime.parse('10/09/2015 03:00:00') }
|
8
|
-
numero_lote '111'
|
9
|
-
end
|
10
|
-
end
|
@@ -1,44 +0,0 @@
|
|
1
|
-
FactoryGirl.define do
|
2
|
-
factory :br_nfe_rps, class: BrNfe::Servico::Rps do
|
3
|
-
destinatario { FactoryGirl.build(:destinatario) }
|
4
|
-
numero 556
|
5
|
-
serie 'SN'
|
6
|
-
tipo '1'
|
7
|
-
data_emissao DateTime.now
|
8
|
-
status '1'
|
9
|
-
competencia Date.today
|
10
|
-
valor_servicos '349.00'
|
11
|
-
valor_deducoes '0.0'
|
12
|
-
valor_pis '0.0'
|
13
|
-
valor_cofins '0.0'
|
14
|
-
valor_inss '0.0'
|
15
|
-
valor_ir '0.0'
|
16
|
-
valor_csll '0.0'
|
17
|
-
outras_retencoes '0.0'
|
18
|
-
valor_iss '6.98'
|
19
|
-
aliquota '0.02'
|
20
|
-
base_calculo '349.00'
|
21
|
-
desconto_incondicionado '0.0'
|
22
|
-
desconto_condicionado '0.0'
|
23
|
-
iss_retido '2'
|
24
|
-
responsavel_retencao ''
|
25
|
-
item_lista_servico '0107'
|
26
|
-
discriminacao "MENSALIDADE PLANO PRO. 349,00 \n\nValor Aprox dos Tributos: R$ 6,59 Federal, R$ 0,00 Estadual e R$ 1,62 Municipal \n Fonte: IBPT/FECOMERCIO SC 5oi7eW"
|
27
|
-
exigibilidade_iss ''
|
28
|
-
codigo_municipio '4204202'
|
29
|
-
numero_processo ''
|
30
|
-
codigo_cnae '6202300'
|
31
|
-
|
32
|
-
trait :completo do
|
33
|
-
codigo_tributacao_municipio '6699'
|
34
|
-
condicao_pagamento { FactoryGirl.build(:condicao_pagamento, :a_prazo) }
|
35
|
-
intermediario { FactoryGirl.build(:intermediario) }
|
36
|
-
numero_substituicao '555'
|
37
|
-
serie_substituicao 'SN'
|
38
|
-
tipo_substituicao '1'
|
39
|
-
codigo_obra '66'
|
40
|
-
codigo_art '223'
|
41
|
-
outras_informacoes 'info a mais'
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|