br_nfe 2.1.0 → 2.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.travis.yml +0 -1
- data/Gemfile.lock +1 -1
- data/README.markdown +264 -106
- data/lib/br_nfe/{helper → association}/have_address.rb +1 -1
- data/lib/br_nfe/{helper → association}/have_condicao_pagamento.rb +1 -1
- data/lib/br_nfe/association/have_destinatario.rb +22 -0
- data/lib/br_nfe/association/have_emitente.rb +24 -0
- data/lib/br_nfe/base.rb +37 -27
- data/lib/br_nfe/condicao_pagamento.rb +2 -0
- data/lib/br_nfe/constants.rb +33 -0
- data/lib/br_nfe/endereco.rb +10 -0
- data/lib/br_nfe/helper/string_methods.rb +4 -0
- data/lib/br_nfe/{emitente.rb → person.rb} +11 -7
- data/lib/br_nfe/product/base.rb +82 -0
- data/lib/br_nfe/product/consulta_status_servico.rb +35 -0
- data/lib/br_nfe/product/emitente.rb +8 -0
- data/lib/br_nfe/product/gateway/base.rb +62 -0
- data/lib/br_nfe/product/gateway/web_service_svrs.rb +39 -0
- data/lib/br_nfe/product/value_nf.rb +9 -0
- data/lib/br_nfe/product/xml/soap_env.xml.slim +8 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/consReciNFe_v3.10.xsd +9 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/consSitNFe_v3.10.xsd +9 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/consStatServ_v3.10.xsd +9 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/enviNFe_v3.10.xsd +9 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/inutNFe_v3.10.xsd +9 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/leiauteConsSitNFe_v3.10.xsd +502 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/leiauteConsStatServ_v3.10.xsd +98 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/leiauteInutNFe_v3.10.xsd +193 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/leiauteNFe_v3.10.xsd +6060 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/nfe_v3.10.xsd +9 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/procInutNFe_v3.10.xsd +9 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/procNFe_v3.10.xsd +9 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/retConsReciNFe_v3.10.xsd +9 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/retConsSitNFe_v3.10.xsd +9 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/retConsStatServ_v3.10.xsd +9 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/retEnviNFe_v3.10.xsd +9 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/retInutNFe_v3.10.xsd +9 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/tiposBasico_v3.10.xsd +571 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/xmldsig-core-schema_v1.01.xsd +98 -0
- data/lib/br_nfe/product/xml/v3_10/consulta_status_servico.xml.slim +4 -0
- data/lib/br_nfe/service/association/have_intermediario.rb +26 -0
- data/lib/br_nfe/service/association/have_rps.rb +36 -0
- data/lib/br_nfe/service/base.rb +24 -20
- data/lib/br_nfe/service/betha/v1/cancela_nfse.rb +43 -0
- data/lib/br_nfe/service/betha/v1/consulta_lote_rps.rb +20 -6
- data/lib/br_nfe/service/betha/v1/consulta_nfs_por_rps.rb +17 -6
- data/lib/br_nfe/service/betha/v1/consulta_nfse.rb +16 -5
- data/lib/br_nfe/service/betha/v1/consulta_situacao_lote_rps.rb +15 -6
- data/lib/br_nfe/service/betha/v1/gateway.rb +4 -0
- data/lib/br_nfe/service/betha/v1/recepcao_lote_rps.rb +13 -5
- data/lib/br_nfe/service/betha/v1/xml/_tc_identificacao_prestador.xml.slim +3 -0
- data/lib/br_nfe/service/betha/v1/xml/_tc_pedido_cancelamento.xml.slim +4 -0
- data/lib/br_nfe/service/concerns/rules/cancelamento_nfs.rb +8 -0
- data/lib/br_nfe/service/concerns/rules/consulta_nfs_por_rps.rb +1 -1
- data/lib/br_nfe/service/concerns/rules/consulta_nfse.rb +5 -2
- data/lib/br_nfe/service/concerns/values_ts/service_v1.rb +319 -0
- data/lib/br_nfe/service/destinatario.rb +7 -0
- data/lib/br_nfe/service/emitente.rb +8 -0
- data/lib/br_nfe/service/intermediario.rb +1 -12
- data/lib/br_nfe/service/item.rb +7 -7
- data/lib/br_nfe/service/response/build/base.rb +166 -0
- data/lib/br_nfe/service/response/build/cancelamento.rb +62 -0
- data/lib/br_nfe/service/response/build/consulta_lote_rps.rb +25 -0
- data/lib/br_nfe/service/response/build/consulta_nfs_por_rps.rb +25 -0
- data/lib/br_nfe/service/response/build/consulta_nfse.rb +24 -0
- data/lib/br_nfe/service/response/build/consulta_situacao_lote_rps.rb +56 -0
- data/lib/br_nfe/service/response/build/invoice_build.rb +359 -0
- data/lib/br_nfe/service/response/build/recepcao_lote_rps.rb +69 -0
- data/lib/br_nfe/service/response/cancelamento.rb +22 -0
- data/lib/br_nfe/service/response/consulta_lote_rps.rb +18 -0
- data/lib/br_nfe/service/response/consulta_nfs_por_rps.rb +10 -0
- data/lib/br_nfe/service/response/consulta_nfse.rb +10 -0
- data/lib/br_nfe/service/response/consulta_situacao_lote_rps.rb +74 -0
- data/lib/br_nfe/service/response/default.rb +93 -0
- data/lib/br_nfe/{response/service → service/response}/nota_fiscal.rb +19 -12
- data/lib/br_nfe/service/response/paths/v1/tc_nfse.rb +275 -0
- data/lib/br_nfe/service/response/recepcao_lote_rps.rb +35 -0
- data/lib/br_nfe/service/rps.rb +30 -27
- data/lib/br_nfe/service/sc/florianopolis/xml/_service_item.xml.slim +4 -4
- data/lib/br_nfe/service/sc/florianopolis/xml/inf_requisicao.xml.slim +4 -4
- data/lib/br_nfe/service/simpliss/v1/cancela_nfse.rb +16 -6
- data/lib/br_nfe/service/simpliss/v1/consulta_lote_rps.rb +20 -12
- data/lib/br_nfe/service/simpliss/v1/consulta_nfs_por_rps.rb +21 -6
- data/lib/br_nfe/service/simpliss/v1/consulta_nfse.rb +20 -6
- data/lib/br_nfe/service/simpliss/v1/consulta_situacao_lote_rps.rb +17 -6
- data/lib/br_nfe/service/simpliss/v1/recepcao_lote_rps.rb +16 -4
- data/lib/br_nfe/service/simpliss/v1/xml/_tc_item_servico.xml.slim +2 -2
- data/lib/br_nfe/service/thema/v1/cancela_nfse.rb +21 -19
- data/lib/br_nfe/service/thema/v1/consulta_lote_rps.rb +21 -19
- data/lib/br_nfe/service/thema/v1/consulta_nfs_por_rps.rb +25 -18
- data/lib/br_nfe/service/thema/v1/consulta_nfse.rb +20 -20
- data/lib/br_nfe/service/thema/v1/consulta_situacao_lote_rps.rb +14 -20
- data/lib/br_nfe/service/thema/v1/recepcao_lote_rps.rb +11 -16
- data/lib/br_nfe/service/thema/v1/recepcao_lote_rps_limitado.rb +8 -6
- data/lib/br_nfe/service/xml/v1/_tc_identificacao_nfse.xml.slim +1 -1
- data/lib/br_nfe/service/xml/v1/_tc_pedido_cancelamento.xml.slim +1 -1
- data/lib/br_nfe/service/xml/v1/_tc_valores.xml.slim +11 -11
- data/lib/br_nfe/version.rb +1 -1
- data/lib/br_nfe.rb +62 -62
- data/test/br_nfe/association/have_address_test.rb +64 -0
- data/test/br_nfe/association/have_condicao_pagamento_test.rb +75 -0
- data/test/br_nfe/association/have_destinatario_test.rb +76 -0
- data/test/br_nfe/association/have_emitente_test.rb +80 -0
- data/test/br_nfe/base_test.rb +96 -61
- data/test/br_nfe/endereco_test.rb +21 -0
- data/test/br_nfe/person_test.rb +55 -0
- data/test/br_nfe/product/base_test.rb +150 -0
- data/test/br_nfe/product/consulta_status_servico_test.rb +59 -0
- data/test/br_nfe/product/emitente_test.rb +29 -0
- data/test/br_nfe/product/gateway/base_test.rb +16 -0
- data/test/br_nfe/product/gateway/web_service_svrs_test.rb +36 -0
- data/test/br_nfe/service/association/have_intermediario_test.rb +80 -0
- data/test/br_nfe/service/association/have_rps_test.rb +62 -0
- data/test/br_nfe/service/base_test.rb +42 -42
- data/test/br_nfe/service/betha/v1/cancela_nfse_test.rb +90 -0
- data/test/br_nfe/service/betha/v1/consulta_lote_rps_test.rb +105 -5
- data/test/br_nfe/service/betha/v1/consulta_nfs_por_rps_test.rb +103 -5
- data/test/br_nfe/service/betha/v1/consulta_nfse_test.rb +114 -5
- data/test/br_nfe/service/betha/v1/consulta_situacao_lote_rps_test.rb +118 -5
- data/test/br_nfe/service/betha/v1/gateway_test.rb +1 -1
- data/test/br_nfe/service/betha/v1/recepcao_lote_rps_test.rb +51 -5
- data/test/br_nfe/service/concerns/rules/cancelamento_nfs_test.rb +2 -2
- data/test/br_nfe/service/concerns/rules/consulta_nfs_por_rps_test.rb +2 -7
- data/test/br_nfe/service/concerns/rules/consulta_nfse_test.rb +24 -3
- data/test/br_nfe/service/concerns/rules/recepcao_lote_rps_test.rb +1 -1
- data/test/br_nfe/{helper → service/concerns}/values_ts/service_v1_test.rb +2 -2
- data/test/br_nfe/{destinatario_test.rb → service/destinatario_test.rb} +3 -4
- data/test/br_nfe/service/emitente_test.rb +29 -0
- data/test/br_nfe/service/item_test.rb +14 -14
- data/test/br_nfe/service/response/build/base_test.rb +80 -0
- data/test/br_nfe/{response/service → service/response}/default_test.rb +1 -82
- data/test/br_nfe/service/response/nota_fiscal_test.rb +59 -0
- data/test/br_nfe/{response/service → service/response}/paths/v1/tc_nfse_test.rb +10 -10
- data/test/br_nfe/service/rps_test.rb +107 -138
- data/test/br_nfe/service/sc/florianopolis/emission_rps_test.rb +9 -9
- data/test/br_nfe/service/simpliss/v1/base_test.rb +1 -1
- data/test/br_nfe/service/simpliss/v1/cancela_nfse_test.rb +7 -10
- data/test/br_nfe/service/simpliss/v1/consulta_lote_rps_test.rb +11 -18
- data/test/br_nfe/service/simpliss/v1/consulta_nfs_por_rps_test.rb +11 -18
- data/test/br_nfe/service/simpliss/v1/consulta_nfse_test.rb +11 -18
- data/test/br_nfe/service/simpliss/v1/consulta_situacao_lote_rps_test.rb +7 -11
- data/test/br_nfe/service/simpliss/v1/recepcao_lote_rps_test.rb +3 -9
- data/test/br_nfe/service/thema/v1/base_test.rb +1 -1
- data/test/br_nfe/service/thema/v1/cancela_nfse_test.rb +7 -14
- data/test/br_nfe/service/thema/v1/consulta_lote_rps_test.rb +6 -17
- data/test/br_nfe/service/thema/v1/consulta_nfs_por_rps_test.rb +6 -13
- data/test/br_nfe/service/thema/v1/consulta_nfse_test.rb +11 -18
- data/test/br_nfe/service/thema/v1/consulta_situacao_lote_rps_test.rb +7 -11
- data/test/br_nfe/service/thema/v1/recepcao_lote_rps_limitado_test.rb +1 -5
- data/test/br_nfe/service/thema/v1/recepcao_lote_rps_test.rb +3 -9
- data/test/factories/base.rb +0 -1
- data/test/factories/{emitente.rb → person.rb} +1 -1
- data/test/factories/product/base.rb +12 -0
- data/test/factories/product/consulta_status_servico.rb +12 -0
- data/test/factories/product/emitente.rb +15 -0
- data/test/factories/product/gateway/base.rb +5 -0
- data/test/factories/product/gateway/web_service_svrs.rb +5 -0
- data/test/factories/service/betha/v1/{cancelamento_nfs.rb → cancela_nfse.rb} +2 -1
- data/test/factories/service/betha/v1/consulta_lote_rps.rb +1 -1
- data/test/factories/service/betha/v1/consulta_nfs_por_rps.rb +1 -1
- data/test/factories/service/betha/v1/consulta_nfse.rb +1 -1
- data/test/factories/service/betha/v1/consulta_situacao_lote_rps.rb +1 -1
- data/test/factories/{destinatario.rb → service/destinatario.rb} +1 -1
- data/test/factories/service/emitente.rb +15 -0
- data/test/factories/service/item.rb +4 -4
- data/test/factories/service/response/build_response.rb +5 -0
- data/test/factories/service/response/default.rb +6 -0
- data/test/factories/{response/service → service/response}/nota_fiscal.rb +8 -8
- data/test/factories/service/rps.rb +11 -11
- data/test/factories/service/sc/florianopolis/base.rb +1 -1
- data/test/factories/service/sc/florianopolis/cancellation.rb +1 -1
- data/test/factories/service/sc/florianopolis/emission_rps.rb +1 -1
- data/test/factories/service/simpliss/v1/base.rb +1 -1
- data/test/factories/service/simpliss/v1/cancela_nfse.rb +1 -1
- data/test/factories/service/simpliss/v1/consulta_lote_rps.rb +1 -1
- data/test/factories/service/simpliss/v1/consulta_nfs_por_rps.rb +1 -1
- data/test/factories/service/simpliss/v1/consulta_nfse.rb +1 -1
- data/test/factories/service/simpliss/v1/consulta_situacao_lote_rps.rb +1 -1
- data/test/factories/service/simpliss/v1/recepcao_lote_rps.rb +1 -1
- data/test/factories/service/thema/v1/base.rb +1 -1
- data/test/factories/service/thema/v1/cancela_nfse.rb +1 -1
- data/test/factories/service/thema/v1/consulta_lote_rps.rb +1 -1
- data/test/factories/service/thema/v1/consulta_nfs_por_rps.rb +1 -1
- data/test/factories/service/thema/v1/consulta_nfse.rb +1 -1
- data/test/factories/service/thema/v1/consulta_situacao_lote_rps.rb +1 -1
- data/test/factories/service/thema/v1/recepcao_lote_rps.rb +1 -1
- data/test/fixtures/service/response/betha/v1/cancela_nfse/fault.xml +17 -0
- data/test/fixtures/service/response/betha/v1/cancela_nfse/success.xml +48 -0
- data/test/fixtures/service/response/betha/v1/consulta_lote_rps/fault.xml +18 -0
- data/test/fixtures/service/response/betha/v1/consulta_lote_rps/success.xml +108 -0
- data/test/fixtures/service/response/betha/v1/consulta_nfse/fault.xml +18 -0
- data/test/fixtures/service/response/betha/v1/consulta_nfse/nfs_empty.xml +12 -0
- data/test/fixtures/service/response/betha/v1/consulta_nfse/success.xml +115 -0
- data/test/fixtures/service/response/betha/v1/consulta_nfse_por_rps/fault.xml +18 -0
- data/test/fixtures/service/response/betha/v1/consulta_nfse_por_rps/success.xml +103 -0
- data/test/fixtures/service/response/betha/v1/consulta_situacao_lote_rps/error.xml +13 -0
- data/test/fixtures/service/response/betha/v1/consulta_situacao_lote_rps/fault.xml +17 -0
- data/test/fixtures/service/response/betha/v1/consulta_situacao_lote_rps/success.xml +13 -0
- data/test/fixtures/service/response/betha/v1/consulta_situacao_lote_rps/unprocessed.xml +13 -0
- data/test/fixtures/service/response/betha/v1/consulta_situacao_lote_rps/unprocessed_by_code_error.xml +17 -0
- data/test/fixtures/service/response/betha/v1/consulta_situacao_lote_rps/unreceived.xml +13 -0
- data/test/fixtures/service/response/betha/v1/consulta_situacao_lote_rps/unreceived_by_code_error.xml +17 -0
- data/test/fixtures/service/response/betha/v1/recepcao_lote_rps/error.xml +17 -0
- data/test/fixtures/service/response/betha/v1/recepcao_lote_rps/success.xml +14 -0
- metadata +160 -94
- data/lib/br_nfe/destinatario.rb +0 -26
- data/lib/br_nfe/helper/have_destinatario.rb +0 -18
- data/lib/br_nfe/helper/have_emitente.rb +0 -20
- data/lib/br_nfe/helper/have_intermediario.rb +0 -24
- data/lib/br_nfe/helper/have_rps.rb +0 -34
- data/lib/br_nfe/helper/values_ts/service_v1.rb +0 -317
- data/lib/br_nfe/response/service/build_response.rb +0 -463
- data/lib/br_nfe/response/service/default.rb +0 -185
- data/lib/br_nfe/response/service/paths/base.rb +0 -127
- data/lib/br_nfe/response/service/paths/v1/servico_cancelar_nfse_resposta.rb +0 -22
- data/lib/br_nfe/response/service/paths/v1/servico_consultar_lote_rps_resposta.rb +0 -25
- data/lib/br_nfe/response/service/paths/v1/servico_consultar_nfse_resposta.rb +0 -25
- data/lib/br_nfe/response/service/paths/v1/servico_consultar_nfse_rps_resposta.rb +0 -25
- data/lib/br_nfe/response/service/paths/v1/servico_consultar_situacao_lote_rps_resposta.rb +0 -31
- data/lib/br_nfe/response/service/paths/v1/servico_enviar_lote_rps_resposta.rb +0 -36
- data/lib/br_nfe/response/service/paths/v1/tc_nfse.rb +0 -271
- data/lib/br_nfe/service/betha/v1/cancelamento_nfs.rb +0 -36
- data/lib/br_nfe/service/betha/v1/response_paths/servico_consultar_lote_rps_resposta.rb +0 -23
- data/lib/br_nfe/service/betha/v1/response_paths/servico_consultar_nfse_resposta.rb +0 -21
- data/lib/br_nfe/service/betha/v1/response_paths/servico_consultar_nfse_rps_resposta.rb +0 -21
- data/lib/br_nfe/service/simpliss/v1/response_paths/servico_cancelar_nfse_resposta.rb +0 -22
- data/lib/br_nfe/service/simpliss/v1/response_paths/servico_consultar_lote_rps_resposta.rb +0 -25
- data/lib/br_nfe/service/simpliss/v1/response_paths/servico_consultar_nfse_resposta.rb +0 -25
- data/lib/br_nfe/service/simpliss/v1/response_paths/servico_consultar_nfse_rps_resposta.rb +0 -25
- data/lib/br_nfe/service/simpliss/v1/response_paths/servico_consultar_situacao_lote_rps_resposta.rb +0 -31
- data/lib/br_nfe/service/simpliss/v1/response_paths/servico_enviar_lote_rps_resposta.rb +0 -36
- data/lib/br_nfe/service/thema/v1/response_paths/servico_cancelar_nfse_resposta.rb +0 -17
- data/lib/br_nfe/service/thema/v1/response_paths/servico_consultar_nfse_rps_resposta.rb +0 -19
- data/test/br_nfe/emitente_test.rb +0 -46
- data/test/br_nfe/helper/have_address_test.rb +0 -62
- data/test/br_nfe/helper/have_condicao_pagamento_test.rb +0 -71
- data/test/br_nfe/helper/have_destinatario_test.rb +0 -64
- data/test/br_nfe/helper/have_emitente_test.rb +0 -63
- data/test/br_nfe/helper/have_intermediario_test.rb +0 -77
- data/test/br_nfe/helper/have_rps_test.rb +0 -59
- data/test/br_nfe/response/service/build_response_test.rb +0 -205
- data/test/br_nfe/response/service/nota_fiscal_test.rb +0 -41
- data/test/br_nfe/response/service/paths/base_test.rb +0 -196
- data/test/br_nfe/response/service/paths/v1/servico_cancelar_nfse_resposta_test.rb +0 -25
- data/test/br_nfe/response/service/paths/v1/servico_consultar_lote_rps_resposta_test.rb +0 -30
- data/test/br_nfe/response/service/paths/v1/servico_consultar_nfse_resposta_test.rb +0 -30
- data/test/br_nfe/response/service/paths/v1/servico_consultar_nfse_rps_resposta_test.rb +0 -30
- data/test/br_nfe/response/service/paths/v1/servico_consultar_situacao_lote_rps_resposta_test.rb +0 -30
- data/test/br_nfe/response/service/paths/v1/servico_enviar_lote_rps_resposta_test.rb +0 -34
- data/test/br_nfe/service/betha/v1/cancelamento_nfs_test.rb +0 -54
- data/test/br_nfe/service/betha/v1/response_paths/servico_consultar_lote_rps_resposta_test.rb +0 -16
- data/test/br_nfe/service/betha/v1/response_paths/servico_consultar_nfse_resposta_test.rb +0 -16
- data/test/br_nfe/service/betha/v1/response_paths/servico_consultar_nfse_rps_resposta_test.rb +0 -16
- data/test/factories/response/service/build_response.rb +0 -5
- data/test/factories/response/service/default.rb +0 -10
data/test/br_nfe/base_test.rb
CHANGED
@@ -1,9 +1,38 @@
|
|
1
1
|
require 'test_helper'
|
2
|
-
require 'br_nfe/helper/have_emitente_test'
|
3
2
|
|
4
3
|
describe BrNfe::Base do
|
5
4
|
subject { FactoryGirl.build(:br_nfe_base, emitente: emitente) }
|
6
|
-
let(:emitente) { FactoryGirl.build(:
|
5
|
+
let(:emitente) { FactoryGirl.build(:person) }
|
6
|
+
|
7
|
+
before do
|
8
|
+
BrNfe::Base.any_instance.stubs(:emitente_class).returns(BrNfe::Person)
|
9
|
+
end
|
10
|
+
|
11
|
+
describe "#ibge_code_of_issuer_city" do
|
12
|
+
it "se não setar um valor deve pegar o valor do codigo IBGE do endereço do emitente" do
|
13
|
+
subject.emitente.endereco.codigo_municipio = '12345678'
|
14
|
+
subject.ibge_code_of_issuer_city = nil
|
15
|
+
subject.ibge_code_of_issuer_city.must_equal '12345678'
|
16
|
+
end
|
17
|
+
it "se setar o valor em ibge_code_of_issuer_city não deve pegar do endereço do emitente" do
|
18
|
+
subject.emitente.endereco.codigo_municipio = '12345678'
|
19
|
+
subject.ibge_code_of_issuer_city = 78978945
|
20
|
+
subject.ibge_code_of_issuer_city.must_equal '78978945'
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
describe "#ibge_code_of_issuer_uf" do
|
25
|
+
it "se não setar um valor deve pegar o valor do codigo IBGE do endereço do emitente" do
|
26
|
+
subject.emitente.endereco.codigo_ibge_uf = '42'
|
27
|
+
subject.ibge_code_of_issuer_uf = nil
|
28
|
+
subject.ibge_code_of_issuer_uf.must_equal '42'
|
29
|
+
end
|
30
|
+
it "se setar o valor em ibge_code_of_issuer_uf não deve pegar do endereço do emitente" do
|
31
|
+
subject.emitente.endereco.codigo_ibge_uf = '43'
|
32
|
+
subject.ibge_code_of_issuer_uf = 42
|
33
|
+
subject.ibge_code_of_issuer_uf.must_equal '42'
|
34
|
+
end
|
35
|
+
end
|
7
36
|
|
8
37
|
describe "validations" do
|
9
38
|
context "obrigatoriedade do certificado" do
|
@@ -41,7 +70,9 @@ describe BrNfe::Base do
|
|
41
70
|
end
|
42
71
|
|
43
72
|
describe "#emitente" do
|
44
|
-
|
73
|
+
it "deve conter o module HaveEmitente" do
|
74
|
+
subject.class.included_modules.must_include BrNfe::Association::HaveEmitente
|
75
|
+
end
|
45
76
|
end
|
46
77
|
|
47
78
|
describe "#env" do
|
@@ -172,34 +203,78 @@ describe BrNfe::Base do
|
|
172
203
|
end
|
173
204
|
end
|
174
205
|
|
206
|
+
describe "ssl_version" do
|
207
|
+
it "por padrão deve retornar :SSLv3" do
|
208
|
+
subject.ssl_version.must_equal :SSLv3
|
209
|
+
end
|
210
|
+
end
|
211
|
+
|
212
|
+
describe '#ssl_request?' do
|
213
|
+
it "por padrão não deve instanciar o client_wsdl com ssl" do
|
214
|
+
subject.ssl_request?.must_equal false
|
215
|
+
end
|
216
|
+
end
|
217
|
+
|
175
218
|
describe "#client_wsdl" do
|
176
219
|
it "deve instanciar um Savon.client com a configuração adequada" do
|
177
220
|
# Stub metodos para configuração do client WSDL
|
178
221
|
subject.expects(:wsdl).returns('wsdl')
|
179
222
|
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
223
|
+
# Ajusto a configuração da gem para testar
|
224
|
+
BrNfe.stubs(:client_wsdl_log).returns('client_wsdl_log')
|
225
|
+
BrNfe.stubs(:client_wsdl_pretty_print_xml).returns('client_wsdl_pretty_print_xml')
|
226
|
+
# Não deve pegar o certificado para configurar o client
|
227
|
+
subject.expects(:ssl_version).never
|
228
|
+
subject.expects(:certificate).never
|
229
|
+
subject.expects(:certificate_key).never
|
230
|
+
subject.expects(:certificate_pkcs12_password).never
|
231
|
+
|
232
|
+
subject.instance_variable_get(:@client_wsdl).must_be_nil
|
233
|
+
|
234
|
+
client_wsdl = subject.client_wsdl
|
235
|
+
|
236
|
+
client_wsdl.globals[:wsdl].must_equal 'wsdl'
|
237
|
+
client_wsdl.globals[:log].must_equal 'client_wsdl_log'
|
238
|
+
client_wsdl.globals[:pretty_print_xml].must_equal 'client_wsdl_pretty_print_xml'
|
239
|
+
client_wsdl.globals[:ssl_verify_mode].must_equal :none
|
240
|
+
|
241
|
+
client_wsdl.globals[:ssl_version].must_be_nil
|
242
|
+
client_wsdl.globals[:ssl_cert].must_be_nil
|
243
|
+
client_wsdl.globals[:ssl_cert_key].must_be_nil
|
244
|
+
client_wsdl.globals[:ssl_cert_key_password].must_be_nil
|
245
|
+
|
246
|
+
subject.instance_variable_get(:@client_wsdl).must_equal client_wsdl
|
247
|
+
end
|
248
|
+
|
249
|
+
it "se ssl_request? for true então deve instanciar um Savon.client com a configuração de SSL" do
|
250
|
+
# Stub metodos para configuração do client WSDL
|
251
|
+
subject.expects(:wsdl).returns('wsdl')
|
184
252
|
|
185
253
|
# Ajusto a configuração da gem para testar
|
186
|
-
BrNfe.client_wsdl_log
|
187
|
-
BrNfe.client_wsdl_pretty_print_xml
|
254
|
+
BrNfe.stubs(:client_wsdl_log).returns('client_wsdl_log')
|
255
|
+
BrNfe.stubs(:client_wsdl_pretty_print_xml).returns('client_wsdl_pretty_print_xml')
|
256
|
+
# Não deve pegar o certificado para configurar o client
|
257
|
+
subject.expects(:ssl_version).returns(:TLSv1)
|
258
|
+
subject.expects(:certificate).returns(:certificate)
|
259
|
+
subject.expects(:certificate_key).returns(:certificate_key)
|
260
|
+
subject.expects(:certificate_pkcs12_password).returns(:certificate_pkcs12_password)
|
261
|
+
subject.expects(:ssl_request?).returns(true)
|
188
262
|
|
189
263
|
subject.instance_variable_get(:@client_wsdl).must_be_nil
|
190
264
|
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
265
|
+
client_wsdl = subject.client_wsdl
|
266
|
+
|
267
|
+
client_wsdl.globals[:wsdl].must_equal 'wsdl'
|
268
|
+
client_wsdl.globals[:log].must_equal 'client_wsdl_log'
|
269
|
+
client_wsdl.globals[:pretty_print_xml].must_equal 'client_wsdl_pretty_print_xml'
|
270
|
+
client_wsdl.globals[:ssl_verify_mode].must_equal :none
|
271
|
+
|
272
|
+
client_wsdl.globals[:ssl_version].must_equal :TLSv1
|
273
|
+
client_wsdl.globals[:ssl_cert].must_equal :certificate
|
274
|
+
client_wsdl.globals[:ssl_cert_key].must_equal :certificate_key
|
275
|
+
client_wsdl.globals[:ssl_cert_key_password].must_equal :certificate_pkcs12_password
|
276
|
+
|
277
|
+
subject.instance_variable_get(:@client_wsdl).must_equal client_wsdl
|
203
278
|
end
|
204
279
|
it "se ja tiver valor na variavel @client_wsdl deve manter esse valor" do
|
205
280
|
Savon.expects(:client).never
|
@@ -209,46 +284,6 @@ describe BrNfe::Base do
|
|
209
284
|
end
|
210
285
|
end
|
211
286
|
|
212
|
-
describe '#client_wsdl_ssl_verify_mode' do
|
213
|
-
it "se eu setar um valor deve retornar esse valor" do
|
214
|
-
subject.client_wsdl_ssl_verify_mode = :value_client_wsdl_ssl_verify_mode
|
215
|
-
subject.client_wsdl_ssl_verify_mode.must_equal :value_client_wsdl_ssl_verify_mode
|
216
|
-
end
|
217
|
-
it "se não setar nenhum valor deve retornar o valor da configuração" do
|
218
|
-
subject.class.new.client_wsdl_ssl_verify_mode.must_equal BrNfe.client_wsdl_ssl_verify_mode
|
219
|
-
end
|
220
|
-
end
|
221
|
-
|
222
|
-
describe '#client_wsdl_ssl_cert_file' do
|
223
|
-
it "se eu setar um valor deve retornar esse valor" do
|
224
|
-
subject.client_wsdl_ssl_cert_file = :value_client_wsdl_ssl_cert_file
|
225
|
-
subject.client_wsdl_ssl_cert_file.must_equal :value_client_wsdl_ssl_cert_file
|
226
|
-
end
|
227
|
-
it "se não setar nenhum valor deve retornar o valor da configuração" do
|
228
|
-
subject.class.new.client_wsdl_ssl_cert_file.must_equal BrNfe.client_wsdl_ssl_cert_file
|
229
|
-
end
|
230
|
-
end
|
231
|
-
|
232
|
-
describe '#client_wsdl_ssl_cert_key_file' do
|
233
|
-
it "se eu setar um valor deve retornar esse valor" do
|
234
|
-
subject.client_wsdl_ssl_cert_key_file = :value_client_wsdl_ssl_cert_key_file
|
235
|
-
subject.client_wsdl_ssl_cert_key_file.must_equal :value_client_wsdl_ssl_cert_key_file
|
236
|
-
end
|
237
|
-
it "se não setar nenhum valor deve retornar o valor da configuração" do
|
238
|
-
subject.class.new.client_wsdl_ssl_cert_key_file.must_equal BrNfe.client_wsdl_ssl_cert_key_file
|
239
|
-
end
|
240
|
-
end
|
241
|
-
|
242
|
-
describe '#client_wsdl_ssl_cert_key_password' do
|
243
|
-
it "se eu setar um valor deve retornar esse valor" do
|
244
|
-
subject.client_wsdl_ssl_cert_key_password = :value_client_wsdl_ssl_cert_key_password
|
245
|
-
subject.client_wsdl_ssl_cert_key_password.must_equal :value_client_wsdl_ssl_cert_key_password
|
246
|
-
end
|
247
|
-
it "se não setar nenhum valor deve retornar o valor da configuração" do
|
248
|
-
subject.class.new.client_wsdl_ssl_cert_key_password.must_equal BrNfe.client_wsdl_ssl_cert_key_password
|
249
|
-
end
|
250
|
-
end
|
251
|
-
|
252
287
|
describe "#certificate_pkcs12_value" do
|
253
288
|
it "se tiver algum valor setado deve retornar esse valor" do
|
254
289
|
subject.certificate_pkcs12_value = "algum valor"
|
@@ -10,6 +10,10 @@ describe BrNfe::Endereco do
|
|
10
10
|
it { must validate_presence_of(:codigo_municipio) }
|
11
11
|
it { must validate_presence_of(:uf) }
|
12
12
|
it { must validate_presence_of(:cep) }
|
13
|
+
it { must validate_inclusion_of(:codigo_ibge_uf).
|
14
|
+
in_array(BrNfe::Constants::CODIGO_IBGE_UF).
|
15
|
+
allow_blank
|
16
|
+
}
|
13
17
|
end
|
14
18
|
|
15
19
|
describe "#default_values" do
|
@@ -56,4 +60,21 @@ describe BrNfe::Endereco do
|
|
56
60
|
end
|
57
61
|
end
|
58
62
|
|
63
|
+
describe "#codigo_ibge_uf" do
|
64
|
+
it "se não setar nenhum valor deve pegar os primeiros 2 dígitos do código do município" do
|
65
|
+
subject.assign_attributes(codigo_ibge_uf: nil, codigo_municipio: 123456)
|
66
|
+
subject.codigo_ibge_uf.must_equal '12'
|
67
|
+
subject.assign_attributes(codigo_ibge_uf: nil, codigo_municipio: '65347')
|
68
|
+
subject.codigo_ibge_uf.must_equal '65'
|
69
|
+
end
|
70
|
+
it "se não tiver valor setado no código IBGE da cidade não da erro" do
|
71
|
+
subject.assign_attributes(codigo_ibge_uf: nil, codigo_municipio: nil)
|
72
|
+
subject.codigo_ibge_uf.must_equal ''
|
73
|
+
end
|
74
|
+
it "se setar o código ibge da uf diretamente deve desconsiderar o código do municipio" do
|
75
|
+
subject.assign_attributes(codigo_ibge_uf: '44', codigo_municipio: 123456)
|
76
|
+
subject.codigo_ibge_uf.must_equal '44'
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
59
80
|
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
describe BrNfe::Person do
|
4
|
+
subject { FactoryGirl.build(:person, endereco: endereco) }
|
5
|
+
let(:endereco) { FactoryGirl.build(:endereco) }
|
6
|
+
|
7
|
+
describe "validations" do
|
8
|
+
it { must validate_presence_of(:cpf_cnpj) }
|
9
|
+
it { must validate_presence_of(:razao_social) }
|
10
|
+
end
|
11
|
+
|
12
|
+
it "deve ter alias attribute com cpf, cnpj e cpf_cnpj" do
|
13
|
+
subject.cpf_cnpj = '123'
|
14
|
+
subject.cpf.must_equal '123'
|
15
|
+
subject.cnpj.must_equal '123'
|
16
|
+
|
17
|
+
subject.cnpj = '665'
|
18
|
+
subject.cpf_cnpj.must_equal '665'
|
19
|
+
subject.cpf.must_equal '665'
|
20
|
+
end
|
21
|
+
|
22
|
+
describe "#endereco" do
|
23
|
+
class OtherClassEndereco < BrNfe::ActiveModelBase
|
24
|
+
end
|
25
|
+
it "deve ter incluso o module HaveAddress" do
|
26
|
+
subject.class.included_modules.must_include BrNfe::Association::HaveAddress
|
27
|
+
end
|
28
|
+
it "o método endereco por padrão deve retornar um objeto da class BrNfe::Endereco" do
|
29
|
+
subject.endereco.must_be_kind_of BrNfe::Endereco
|
30
|
+
end
|
31
|
+
it "a classe de endereço deve derivar da configuração endereco_class" do
|
32
|
+
BrNfe.endereco_class.must_equal BrNfe::Endereco
|
33
|
+
BrNfe.endereco_class = OtherClassEndereco
|
34
|
+
subject.endereco.must_be_kind_of OtherClassEndereco
|
35
|
+
|
36
|
+
# É necessário voltar a configuração original para não falhar outros testes
|
37
|
+
BrNfe.endereco_class = BrNfe::Endereco
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
describe "#razao_social" do
|
42
|
+
it "deve retornar a string em maiusculoo e sem acentos" do
|
43
|
+
subject.razao_social = 'ó têxtú dève vìr SÉM ÀçÊnTÕ'
|
44
|
+
subject.razao_social.must_equal "O TEXTU DEVE VIR SEM ACENTO"
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
describe "#nome_fantasia" do
|
49
|
+
it "deve retornar a string em maiusculoo e sem acentos" do
|
50
|
+
subject.nome_fantasia = 'ó têxtú dève vìr SÉM ÀçÊnTÕ'
|
51
|
+
subject.nome_fantasia.must_equal "O TEXTU DEVE VIR SEM ACENTO"
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
@@ -0,0 +1,150 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
describe BrNfe::Product::Base do
|
4
|
+
subject { FactoryGirl.build(:product_base) }
|
5
|
+
|
6
|
+
describe "Validations" do
|
7
|
+
it do
|
8
|
+
subject.certificate_pkcs12_path = nil
|
9
|
+
must validate_presence_of(:certificate)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
it '#ssl_request? deve ser true' do
|
14
|
+
subject.ssl_request?.must_equal true
|
15
|
+
end
|
16
|
+
|
17
|
+
describe '#gateway' do
|
18
|
+
context "Estados que usam o servidor SVRS" do
|
19
|
+
let(:env) { SecureRandom.hex(5) }
|
20
|
+
it 'AC 12 - Acre' do
|
21
|
+
subject.assign_attributes ibge_code_of_issuer_uf: '12', env: env
|
22
|
+
subject.gateway.must_be_kind_of BrNfe::Product::Gateway::WebServiceSVRS
|
23
|
+
subject.gateway.env.must_equal env
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'AL 27 - Alagoas' do
|
27
|
+
subject.assign_attributes ibge_code_of_issuer_uf: '27', env: env
|
28
|
+
subject.gateway.must_be_kind_of BrNfe::Product::Gateway::WebServiceSVRS
|
29
|
+
subject.gateway.env.must_equal env
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'AP 16 - Amapá ' do
|
33
|
+
subject.assign_attributes ibge_code_of_issuer_uf: '16', env: env
|
34
|
+
subject.gateway.must_be_kind_of BrNfe::Product::Gateway::WebServiceSVRS
|
35
|
+
subject.gateway.env.must_equal env
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'DF 53 - Distrito Federal' do
|
39
|
+
subject.assign_attributes ibge_code_of_issuer_uf: '53', env: env
|
40
|
+
subject.gateway.must_be_kind_of BrNfe::Product::Gateway::WebServiceSVRS
|
41
|
+
subject.gateway.env.must_equal env
|
42
|
+
end
|
43
|
+
|
44
|
+
it 'ES 32 - Espírito Santo' do
|
45
|
+
subject.assign_attributes ibge_code_of_issuer_uf: '32', env: env
|
46
|
+
subject.gateway.must_be_kind_of BrNfe::Product::Gateway::WebServiceSVRS
|
47
|
+
subject.gateway.env.must_equal env
|
48
|
+
end
|
49
|
+
|
50
|
+
it 'PB 25 - Paraíba' do
|
51
|
+
subject.assign_attributes ibge_code_of_issuer_uf: '25', env: env
|
52
|
+
subject.gateway.must_be_kind_of BrNfe::Product::Gateway::WebServiceSVRS
|
53
|
+
subject.gateway.env.must_equal env
|
54
|
+
end
|
55
|
+
|
56
|
+
it 'RJ 33 - Rio de Janeiro' do
|
57
|
+
subject.assign_attributes ibge_code_of_issuer_uf: '33', env: env
|
58
|
+
subject.gateway.must_be_kind_of BrNfe::Product::Gateway::WebServiceSVRS
|
59
|
+
subject.gateway.env.must_equal env
|
60
|
+
end
|
61
|
+
|
62
|
+
it 'RN 24 - Rio Grande do Norte' do
|
63
|
+
subject.assign_attributes ibge_code_of_issuer_uf: '24', env: env
|
64
|
+
subject.gateway.must_be_kind_of BrNfe::Product::Gateway::WebServiceSVRS
|
65
|
+
subject.gateway.env.must_equal env
|
66
|
+
end
|
67
|
+
|
68
|
+
it 'RN 43 - Rio Grande do Sul' do
|
69
|
+
subject.assign_attributes ibge_code_of_issuer_uf: '43', env: env
|
70
|
+
subject.gateway.must_be_kind_of BrNfe::Product::Gateway::WebServiceSVRS
|
71
|
+
subject.gateway.env.must_equal env
|
72
|
+
end
|
73
|
+
|
74
|
+
it 'RO 11 - Rondônia' do
|
75
|
+
subject.assign_attributes ibge_code_of_issuer_uf: '11', env: env
|
76
|
+
subject.gateway.must_be_kind_of BrNfe::Product::Gateway::WebServiceSVRS
|
77
|
+
subject.gateway.env.must_equal env
|
78
|
+
end
|
79
|
+
|
80
|
+
it 'RR 14 - Roraima' do
|
81
|
+
subject.assign_attributes ibge_code_of_issuer_uf: '14', env: env
|
82
|
+
subject.gateway.must_be_kind_of BrNfe::Product::Gateway::WebServiceSVRS
|
83
|
+
subject.gateway.env.must_equal env
|
84
|
+
end
|
85
|
+
|
86
|
+
it 'SC 42 - Santa Catarina' do
|
87
|
+
subject.assign_attributes ibge_code_of_issuer_uf: '42', env: env
|
88
|
+
subject.gateway.must_be_kind_of BrNfe::Product::Gateway::WebServiceSVRS
|
89
|
+
subject.gateway.env.must_equal env
|
90
|
+
end
|
91
|
+
|
92
|
+
it 'SE 28 - Sergipe' do
|
93
|
+
subject.assign_attributes ibge_code_of_issuer_uf: '28', env: env
|
94
|
+
subject.gateway.must_be_kind_of BrNfe::Product::Gateway::WebServiceSVRS
|
95
|
+
subject.gateway.env.must_equal env
|
96
|
+
end
|
97
|
+
|
98
|
+
it 'TO 17 - Tocantins' do
|
99
|
+
subject.assign_attributes ibge_code_of_issuer_uf: '17', env: env
|
100
|
+
subject.gateway.must_be_kind_of BrNfe::Product::Gateway::WebServiceSVRS
|
101
|
+
subject.gateway.env.must_equal env
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
describe 'Métodos que devem ser sobrescritos' do
|
107
|
+
it '#url_xmlns' do
|
108
|
+
assert_raises RuntimeError do
|
109
|
+
subject.url_xmlns
|
110
|
+
end
|
111
|
+
end
|
112
|
+
it '#gateway_xml_version' do
|
113
|
+
assert_raises RuntimeError do
|
114
|
+
subject.gateway_xml_version
|
115
|
+
end
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
describe '#xml_version - deve converter a versão em valor usável no XML' do
|
120
|
+
it "Para versão :v3_10" do
|
121
|
+
subject.stubs(:gateway_xml_version).returns(:v3_10)
|
122
|
+
subject.xml_version.must_equal '3.10'
|
123
|
+
end
|
124
|
+
it "Para versão :v2_00" do
|
125
|
+
subject.stubs(:gateway_xml_version).returns(:v2_00)
|
126
|
+
subject.xml_version.must_equal '2.00'
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
describe "#emitente" do
|
131
|
+
class OtherClassEmitente < BrNfe::ActiveModelBase
|
132
|
+
end
|
133
|
+
it "deve ter incluso o module HaveEmitente" do
|
134
|
+
subject.class.included_modules.must_include BrNfe::Association::HaveEmitente
|
135
|
+
end
|
136
|
+
it "o método #emitente_class deve ter por padrão a class BrNfe::Product::Emitente" do
|
137
|
+
subject.emitente.must_be_kind_of BrNfe::Product::Emitente
|
138
|
+
subject.send(:emitente_class).must_equal BrNfe::Product::Emitente
|
139
|
+
end
|
140
|
+
it "a class do emitente pode ser modificada através da configuração emitente_product_class" do
|
141
|
+
BrNfe.emitente_product_class = OtherClassEmitente
|
142
|
+
subject.emitente.must_be_kind_of OtherClassEmitente
|
143
|
+
subject.send(:emitente_class).must_equal OtherClassEmitente
|
144
|
+
|
145
|
+
# É necessário voltar a configuração original para não falhar outros testes
|
146
|
+
BrNfe.emitente_product_class = BrNfe::Product::Emitente
|
147
|
+
end
|
148
|
+
end
|
149
|
+
|
150
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
describe BrNfe::Product::ConsultaStatusServico do
|
4
|
+
subject { FactoryGirl.build(:product_consulta_status_servico) }
|
5
|
+
let(:gateway) { FactoryGirl.build(:product_gateway_web_service_svrs) }
|
6
|
+
|
7
|
+
before do
|
8
|
+
subject.stubs(:gateway).returns(gateway)
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'o método #url_xmlns deve pegar o valor do método url_xmlns_status_servico do gateway ' do
|
12
|
+
gateway.expects(:url_xmlns_status_servico).returns('http://teste.url_xmlns_status_servico.com')
|
13
|
+
subject.url_xmlns.must_equal 'http://teste.url_xmlns_status_servico.com'
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'o método #wsdl deve pegar o valor do método wsdl_status_servico do gateway ' do
|
17
|
+
gateway.expects(:wsdl_status_servico).returns('http://teste.wsdl_status_servico.com')
|
18
|
+
subject.wsdl.must_equal 'http://teste.wsdl_status_servico.com'
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'o método #method_wsdl deve pegar o valor do método operation_status_servico do gateway ' do
|
22
|
+
gateway.expects(:operation_status_servico).returns(:operation_status_servico)
|
23
|
+
subject.method_wsdl.must_equal :operation_status_servico
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'o método #gateway_xml_version deve pegar o valor do método version_xml_status_servico do gateway ' do
|
27
|
+
gateway.expects(:version_xml_status_servico).returns(:v3_20)
|
28
|
+
subject.gateway_xml_version.must_equal :v3_20
|
29
|
+
end
|
30
|
+
|
31
|
+
describe '#xml_builder' do
|
32
|
+
it "deve renderizar para o xml consulta_status_servico" do
|
33
|
+
subject.expects(:render_xml).with('consulta_status_servico').returns('<ok>1</ok>')
|
34
|
+
subject.xml_builder.must_equal '<ok>1</ok>'
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
describe "Validação do XML através do XSD" do
|
39
|
+
let(:schemas_dir) { BrNfe.root+'/lib/br_nfe/product/xml/v3_10/XSD' }
|
40
|
+
def validate_schema
|
41
|
+
subject.stubs(:certificate).returns(nil)
|
42
|
+
Dir.chdir(schemas_dir) do
|
43
|
+
schema = Nokogiri::XML::Schema(IO.read('consStatServ_v3.10.xsd'))
|
44
|
+
document = Nokogiri::XML(subject.xml_builder)
|
45
|
+
errors = schema.validate(document)
|
46
|
+
errors.must_be_empty
|
47
|
+
end
|
48
|
+
end
|
49
|
+
it "Deve ser válido em ambiente de produção" do
|
50
|
+
subject.env = :production
|
51
|
+
validate_schema
|
52
|
+
end
|
53
|
+
it "Deve ser válido em ambiente de homologação" do
|
54
|
+
subject.env = :test
|
55
|
+
validate_schema
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
describe BrNfe::Product::Emitente do
|
4
|
+
subject { FactoryGirl.build(:product_emitente, endereco: endereco) }
|
5
|
+
let(:endereco) { FactoryGirl.build(:endereco) }
|
6
|
+
|
7
|
+
it "deve herdar da classe ::Person" do
|
8
|
+
subject.must_be_kind_of BrNfe::Product::Emitente
|
9
|
+
subject.must_be_kind_of BrNfe::Person
|
10
|
+
end
|
11
|
+
|
12
|
+
describe "validations" do
|
13
|
+
it { must validate_presence_of(:inscricao_municipal) }
|
14
|
+
it { must validate_presence_of(:natureza_operacao) }
|
15
|
+
describe "valida o endereco" do
|
16
|
+
it "deve ser inválido se endereco for invalido" do
|
17
|
+
subject.endereco.stubs(:valid?).returns(false)
|
18
|
+
subject.endereco.stubs(:errors).returns(stub(full_messages: ["Erro 1"] ))
|
19
|
+
subject.valid?.must_equal false
|
20
|
+
subject.errors.full_messages.include?("Endereço: Erro 1").must_equal true
|
21
|
+
end
|
22
|
+
it "deve ser válido se endereco for valido" do
|
23
|
+
subject.endereco.stubs(:valid?).returns(true)
|
24
|
+
subject.valid?.must_equal true
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
describe BrNfe::Product::Gateway::Base do
|
4
|
+
subject { FactoryGirl.build(:product_gateway_base) }
|
5
|
+
|
6
|
+
describe '#env_production?' do
|
7
|
+
it "se env for igual a :production deve ser true" do
|
8
|
+
subject.env = :production
|
9
|
+
subject.env_production?.must_equal true
|
10
|
+
end
|
11
|
+
it "deve ser false se env for diferente a :production" do
|
12
|
+
subject.env = :test
|
13
|
+
subject.env_production?.must_equal false
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
describe BrNfe::Product::Gateway::WebServiceSVRS do
|
4
|
+
subject { FactoryGirl.build(:product_gateway_web_service_svrs) }
|
5
|
+
|
6
|
+
it "deve herdar da class base" do
|
7
|
+
subject.class.superclass.must_equal BrNfe::Product::Gateway::Base
|
8
|
+
end
|
9
|
+
|
10
|
+
describe 'STATUS SERVIÇO' do
|
11
|
+
describe '#wsdl_status_servico' do
|
12
|
+
it "para ambiente de produção" do
|
13
|
+
subject.env = :production
|
14
|
+
subject.wsdl_status_servico.must_equal 'https://nfe.sefazrs.rs.gov.br/ws/NfeStatusServico/NfeStatusServico2.asmx?wsdl'
|
15
|
+
end
|
16
|
+
it "para ambiente de homologação" do
|
17
|
+
subject.env = :test
|
18
|
+
subject.wsdl_status_servico.must_equal 'https://nfe-homologacao.svrs.rs.gov.br/ws/NfeStatusServico/NfeStatusServico2.asmx?wsdl'
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
describe '#operation_status_servico' do
|
23
|
+
it { subject.operation_status_servico.must_equal :nfe_status_servico_nf2 }
|
24
|
+
end
|
25
|
+
|
26
|
+
describe '#version_xml_status_servico' do
|
27
|
+
it { subject.version_xml_status_servico.must_equal :v3_10 }
|
28
|
+
end
|
29
|
+
|
30
|
+
describe '#url_xmlns_status_servico' do
|
31
|
+
it { subject.url_xmlns_status_servico.must_equal 'http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico2' }
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
|
36
|
+
end
|
@@ -0,0 +1,80 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class HaveIntermediarioTest < BrNfe::ActiveModelBase
|
4
|
+
include BrNfe::Service::Association::HaveIntermediario
|
5
|
+
end
|
6
|
+
class NewClassIntermediario < BrNfe::Person
|
7
|
+
end
|
8
|
+
|
9
|
+
describe HaveIntermediarioTest do
|
10
|
+
subject { HaveIntermediarioTest.new(intermediario: intermediario) }
|
11
|
+
let(:intermediario) { BrNfe::Intermediario.new }
|
12
|
+
|
13
|
+
it 'deve_iniciar_o_intermediario_com_nil' do
|
14
|
+
subject.class.new.intermediario.must_be_nil
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'se_tiver_intermediario_posso_setalo_como_nil' do
|
18
|
+
subject.intermediario.wont_be_nil
|
19
|
+
subject.intermediario = nil
|
20
|
+
subject.intermediario.must_be_nil
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'deve_manter_o_objeto_intermediario_se_ja_tiver' do
|
24
|
+
subject.intermediario.must_equal intermediario
|
25
|
+
intermediario.cpf_cnpj = 'nova-www'
|
26
|
+
subject.intermediario.cpf_cnpj.must_equal 'nova-www'
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'Se_setar_o_intermediario_com_outra_class_deve_ignorar' do
|
30
|
+
subject.intermediario = 7777
|
31
|
+
subject.intermediario.must_equal intermediario
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'posso_setar_o_intermediario_com_um_hash_com_os_parametros_do_intermediario' do
|
35
|
+
intermediario.assign_attributes(cpf_cnpj: '123456', razao_social: '123465')
|
36
|
+
subject.intermediario = {cpf_cnpj: '99999', razao_social: '654389'}
|
37
|
+
subject.intermediario.cpf_cnpj.must_equal '99999'
|
38
|
+
subject.intermediario.razao_social.must_equal '654389'
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'ao_setar_um_intermediario_com_um_hash_e_nao_tiver_um_intermediario_deve_instanciar_um_com_os_parametros' do
|
42
|
+
subject.intermediario = nil
|
43
|
+
subject.intermediario = {cpf_cnpj: '99999', razao_social: '654389'}
|
44
|
+
subject.intermediario.cpf_cnpj.must_equal '99999'
|
45
|
+
subject.intermediario.razao_social.must_equal '654389'
|
46
|
+
end
|
47
|
+
|
48
|
+
it 'posso_setar_o_intermediario_com_um_bloco' do
|
49
|
+
intermediario.assign_attributes(cpf_cnpj: '123456', razao_social: '11111')
|
50
|
+
subject.intermediario do |address|
|
51
|
+
address.cpf_cnpj = '99999'
|
52
|
+
address.razao_social = '11111'
|
53
|
+
end
|
54
|
+
subject.intermediario.cpf_cnpj.must_equal '99999'
|
55
|
+
subject.intermediario.razao_social.must_equal '11111'
|
56
|
+
end
|
57
|
+
|
58
|
+
it 'ao_setar_um_intermediario_com_um_bloco_e_nao_tiver_um_intermediario_deve_instanciar_um_com_os_parametros' do
|
59
|
+
subject.intermediario = nil
|
60
|
+
subject.intermediario do |address|
|
61
|
+
address.cpf_cnpj = '99999'
|
62
|
+
address.razao_social = '11111'
|
63
|
+
end
|
64
|
+
subject.intermediario.cpf_cnpj.must_equal '99999'
|
65
|
+
subject.intermediario.razao_social.must_equal '11111'
|
66
|
+
end
|
67
|
+
|
68
|
+
it 'posso_mudar_o_objeto_intermediario' do
|
69
|
+
novo_intermediario = FactoryGirl.build(:intermediario)
|
70
|
+
subject.intermediario = novo_intermediario
|
71
|
+
subject.intermediario.must_equal novo_intermediario
|
72
|
+
end
|
73
|
+
|
74
|
+
it 'posso_modificar_a_class_do_intermediario' do
|
75
|
+
BrNfe.intermediario_service_class = NewClassIntermediario
|
76
|
+
novo_objeto = subject.class.new(intermediario: {cpf_cnpj: '123'})
|
77
|
+
novo_objeto.intermediario.class.must_equal NewClassIntermediario
|
78
|
+
BrNfe.intermediario_service_class = BrNfe::Service::Intermediario
|
79
|
+
end
|
80
|
+
end
|