br_nfe 2.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (199) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/lib/br_nfe/active_model_base.rb +0 -5
  4. data/lib/br_nfe/base.rb +116 -7
  5. data/lib/br_nfe/helper/values_ts/service_v1.rb +15 -11
  6. data/lib/br_nfe/response/service/build_response.rb +230 -53
  7. data/lib/br_nfe/response/service/nota_fiscal.rb +9 -0
  8. data/lib/br_nfe/response/service/paths/base.rb +93 -59
  9. data/lib/br_nfe/response/service/paths/v1/servico_cancelar_nfse_resposta.rb +2 -2
  10. data/lib/br_nfe/response/service/paths/v1/servico_consultar_lote_rps_resposta.rb +2 -2
  11. data/lib/br_nfe/response/service/paths/v1/servico_consultar_nfse_resposta.rb +2 -2
  12. data/lib/br_nfe/response/service/paths/v1/servico_consultar_nfse_rps_resposta.rb +2 -2
  13. data/lib/br_nfe/response/service/paths/v1/servico_consultar_situacao_lote_rps_resposta.rb +4 -4
  14. data/lib/br_nfe/response/service/paths/v1/servico_enviar_lote_rps_resposta.rb +8 -8
  15. data/lib/br_nfe/response/service/paths/v1/tc_nfse.rb +201 -57
  16. data/lib/br_nfe/service/base.rb +104 -5
  17. data/lib/br_nfe/service/betha/base.rb +5 -0
  18. data/lib/br_nfe/service/betha/v1/cancelamento_nfs.rb +1 -4
  19. data/lib/br_nfe/service/betha/v1/consulta_lote_rps.rb +1 -4
  20. data/lib/br_nfe/service/betha/v1/consulta_nfs_por_rps.rb +1 -4
  21. data/lib/br_nfe/service/betha/v1/consulta_nfse.rb +1 -4
  22. data/lib/br_nfe/service/betha/v1/consulta_situacao_lote_rps.rb +1 -3
  23. data/lib/br_nfe/service/betha/v1/gateway.rb +1 -1
  24. data/lib/br_nfe/service/betha/v1/recepcao_lote_rps.rb +1 -3
  25. data/lib/br_nfe/service/betha/v1/response_paths/servico_consultar_lote_rps_resposta.rb +5 -1
  26. data/lib/br_nfe/service/betha/v1/response_paths/servico_consultar_nfse_resposta.rb +5 -1
  27. data/lib/br_nfe/service/betha/v1/response_paths/servico_consultar_nfse_rps_resposta.rb +5 -1
  28. data/lib/br_nfe/service/concerns/rules/cancelamento_nfs.rb +5 -0
  29. data/lib/br_nfe/service/rps.rb +13 -4
  30. data/lib/br_nfe/service/simpliss/v1/base.rb +79 -0
  31. data/lib/br_nfe/service/simpliss/v1/cancela_nfse.rb +30 -0
  32. data/lib/br_nfe/service/simpliss/v1/consulta_lote_rps.rb +38 -0
  33. data/lib/br_nfe/service/simpliss/v1/consulta_nfs_por_rps.rb +31 -0
  34. data/lib/br_nfe/service/simpliss/v1/consulta_nfse.rb +30 -0
  35. data/lib/br_nfe/service/simpliss/v1/consulta_situacao_lote_rps.rb +29 -0
  36. data/lib/br_nfe/service/simpliss/v1/recepcao_lote_rps.rb +35 -0
  37. data/lib/br_nfe/service/simpliss/v1/response_paths/servico_cancelar_nfse_resposta.rb +22 -0
  38. data/lib/br_nfe/service/simpliss/v1/response_paths/servico_consultar_lote_rps_resposta.rb +25 -0
  39. data/lib/br_nfe/service/simpliss/v1/response_paths/servico_consultar_nfse_resposta.rb +25 -0
  40. data/lib/br_nfe/service/simpliss/v1/response_paths/servico_consultar_nfse_rps_resposta.rb +25 -0
  41. data/lib/br_nfe/service/simpliss/v1/response_paths/servico_consultar_situacao_lote_rps_resposta.rb +31 -0
  42. data/lib/br_nfe/service/simpliss/v1/response_paths/servico_enviar_lote_rps_resposta.rb +36 -0
  43. data/lib/br_nfe/service/simpliss/v1/xml/_login.xml.slim +3 -0
  44. data/lib/br_nfe/service/simpliss/v1/xml/_tc_dados_servico.xml.slim +18 -0
  45. data/lib/br_nfe/service/simpliss/v1/xml/_tc_item_servico.xml.slim +3 -0
  46. data/lib/br_nfe/service/simpliss/v1/xml/servico_cancelar_nfse_envio.xml.slim +11 -0
  47. data/lib/br_nfe/service/simpliss/v1/xml/servico_consultar_lote_rps_envio.xml.slim +7 -0
  48. data/lib/br_nfe/service/simpliss/v1/xml/servico_consultar_nfse_envio.xml.slim +22 -0
  49. data/lib/br_nfe/service/simpliss/v1/xml/servico_consultar_nfse_rps_envio.xml.slim +8 -0
  50. data/lib/br_nfe/service/simpliss/v1/xml/servico_consultar_situacao_lote_rps_envio.xml.slim +7 -0
  51. data/lib/br_nfe/service/simpliss/v1/xml/servico_enviar_lote_rps_envio.xml.slim +11 -0
  52. data/lib/br_nfe/service/thema/v1/base.rb +48 -2
  53. data/lib/br_nfe/service/thema/v1/cancela_nfse.rb +14 -5
  54. data/lib/br_nfe/service/thema/v1/consulta_lote_rps.rb +5 -4
  55. data/lib/br_nfe/service/thema/v1/consulta_nfs_por_rps.rb +5 -4
  56. data/lib/br_nfe/service/thema/v1/consulta_nfse.rb +5 -4
  57. data/lib/br_nfe/service/thema/v1/consulta_situacao_lote_rps.rb +1 -4
  58. data/lib/br_nfe/service/thema/v1/recepcao_lote_rps.rb +19 -5
  59. data/lib/br_nfe/service/thema/v1/recepcao_lote_rps_limitado.rb +1 -1
  60. data/lib/br_nfe/service/thema/v1/response_paths/servico_cancelar_nfse_resposta.rb +17 -0
  61. data/lib/br_nfe/service/thema/v1/response_paths/servico_consultar_nfse_rps_resposta.rb +19 -0
  62. data/lib/br_nfe/service/xml/v1/_tc_contato.xml.slim +2 -2
  63. data/lib/br_nfe/service/xml/v1/_tc_cpf_cnpj.xml.slim +2 -2
  64. data/lib/br_nfe/service/xml/v1/_tc_dados_construcao_civil.xml.slim +2 -2
  65. data/lib/br_nfe/service/xml/v1/_tc_dados_prestador.xml.slim +5 -5
  66. data/lib/br_nfe/service/xml/v1/_tc_dados_servico.xml.slim +6 -6
  67. data/lib/br_nfe/service/xml/v1/_tc_dados_tomador.xml.slim +4 -4
  68. data/lib/br_nfe/service/xml/v1/_tc_endereco.xml.slim +7 -7
  69. data/lib/br_nfe/service/xml/v1/_tc_identificacao_intermediario_servico.xml.slim +3 -3
  70. data/lib/br_nfe/service/xml/v1/_tc_identificacao_nfse.xml.slim +4 -4
  71. data/lib/br_nfe/service/xml/v1/_tc_identificacao_orgao_gerador.xml.slim +2 -2
  72. data/lib/br_nfe/service/xml/v1/_tc_identificacao_prestador.xml.slim +2 -2
  73. data/lib/br_nfe/service/xml/v1/_tc_identificacao_rps.xml.slim +3 -3
  74. data/lib/br_nfe/service/xml/v1/_tc_identificacao_tomador.xml.slim +2 -2
  75. data/lib/br_nfe/service/xml/v1/_tc_inf_pedido_cancelamento.xml.slim +2 -2
  76. data/lib/br_nfe/service/xml/v1/_tc_inf_rps.xml.slim +13 -13
  77. data/lib/br_nfe/service/xml/v1/_tc_lote_rps.xml.slim +6 -6
  78. data/lib/br_nfe/service/xml/v1/_tc_pedido_cancelamento.xml.slim +1 -1
  79. data/lib/br_nfe/service/xml/v1/_tc_rps.xml.slim +2 -2
  80. data/lib/br_nfe/service/xml/v1/_tc_valores.xml.slim +16 -17
  81. data/lib/br_nfe/service/xml/v1/servico_cancelar_nfse_envio.xml.slim +3 -4
  82. data/lib/br_nfe/service/xml/v1/servico_consultar_lote_rps_envio.xml.slim +3 -3
  83. data/lib/br_nfe/service/xml/v1/servico_consultar_nfse_envio.xml.slim +8 -8
  84. data/lib/br_nfe/service/xml/v1/servico_consultar_nfse_rps_envio.xml.slim +3 -3
  85. data/lib/br_nfe/service/xml/v1/servico_consultar_situacao_lote_rps_envio.xml.slim +3 -3
  86. data/lib/br_nfe/service/xml/v1/servico_enviar_lote_rps_envio.xml.slim +3 -3
  87. data/lib/br_nfe/version.rb +1 -1
  88. data/lib/br_nfe/xml/_signed_info_sh1.xml.slim +9 -9
  89. data/lib/br_nfe/xml/signature_sh1.xml.slim +5 -5
  90. data/lib/br_nfe.rb +26 -10
  91. data/test/br_nfe/base_test.rb +5 -5
  92. data/test/br_nfe/helper/values_ts/service_v1_test.rb +376 -0
  93. data/test/br_nfe/response/service/build_response_test.rb +1 -173
  94. data/test/br_nfe/response/service/paths/base_test.rb +61 -64
  95. data/test/br_nfe/response/service/paths/v1/servico_cancelar_nfse_resposta_test.rb +2 -2
  96. data/test/br_nfe/response/service/paths/v1/servico_consultar_lote_rps_resposta_test.rb +2 -2
  97. data/test/br_nfe/response/service/paths/v1/servico_consultar_nfse_resposta_test.rb +2 -2
  98. data/test/br_nfe/response/service/paths/v1/servico_consultar_nfse_rps_resposta_test.rb +2 -2
  99. data/test/br_nfe/response/service/paths/v1/servico_consultar_situacao_lote_rps_resposta_test.rb +3 -3
  100. data/test/br_nfe/response/service/paths/v1/servico_enviar_lote_rps_resposta_test.rb +4 -4
  101. data/test/br_nfe/response/service/paths/v1/tc_nfse_test.rb +27 -31
  102. data/test/br_nfe/service/base_test.rb +206 -11
  103. data/test/br_nfe/service/betha/base_test.rb +9 -0
  104. data/test/br_nfe/service/betha/v1/cancelamento_nfs_test.rb +0 -6
  105. data/test/br_nfe/service/betha/v1/consulta_lote_rps_test.rb +0 -6
  106. data/test/br_nfe/service/betha/v1/consulta_nfs_por_rps_test.rb +0 -4
  107. data/test/br_nfe/service/betha/v1/consulta_nfse_test.rb +0 -4
  108. data/test/br_nfe/service/betha/v1/consulta_situacao_lote_rps_test.rb +1 -5
  109. data/test/br_nfe/service/betha/v1/gateway_test.rb +4 -2
  110. data/test/br_nfe/service/betha/v1/recepcao_lote_rps_test.rb +0 -4
  111. data/test/br_nfe/service/betha/v1/response_paths/servico_consultar_lote_rps_resposta_test.rb +1 -1
  112. data/test/br_nfe/service/betha/v1/response_paths/servico_consultar_nfse_resposta_test.rb +1 -1
  113. data/test/br_nfe/service/betha/v1/response_paths/servico_consultar_nfse_rps_resposta_test.rb +1 -1
  114. data/test/br_nfe/service/rps_test.rb +39 -6
  115. data/test/br_nfe/service/simpliss/v1/base_test.rb +102 -0
  116. data/test/br_nfe/service/simpliss/v1/cancela_nfse_test.rb +97 -0
  117. data/test/br_nfe/service/simpliss/v1/consulta_lote_rps_test.rb +241 -0
  118. data/test/br_nfe/service/simpliss/v1/consulta_nfs_por_rps_test.rb +239 -0
  119. data/test/br_nfe/service/simpliss/v1/consulta_nfse_test.rb +226 -0
  120. data/test/br_nfe/service/simpliss/v1/consulta_situacao_lote_rps_test.rb +122 -0
  121. data/test/br_nfe/service/simpliss/v1/recepcao_lote_rps_test.rb +105 -0
  122. data/test/br_nfe/service/simpliss/v1/xsd/nfse_3.xsd +735 -0
  123. data/test/br_nfe/service/simpliss/v1/xsd/xmldsig-core-schema20020212.xsd +318 -0
  124. data/test/br_nfe/service/thema/v1/base_test.rb +23 -2
  125. data/test/br_nfe/service/thema/v1/cancela_nfse_test.rb +69 -3
  126. data/test/br_nfe/service/thema/v1/consulta_lote_rps_test.rb +134 -4
  127. data/test/br_nfe/service/thema/v1/consulta_nfs_por_rps_test.rb +131 -4
  128. data/test/br_nfe/service/thema/v1/consulta_nfse_test.rb +214 -4
  129. data/test/br_nfe/service/thema/v1/consulta_situacao_lote_rps_test.rb +97 -4
  130. data/test/br_nfe/service/thema/v1/recepcao_lote_rps_limitado_test.rb +109 -0
  131. data/test/br_nfe/service/thema/v1/recepcao_lote_rps_test.rb +72 -4
  132. data/test/factories/service/rps.rb +17 -16
  133. data/test/factories/service/{sc/gaspar/recepcao_lote_rps_limitado.rb → simpliss/v1/base.rb} +1 -3
  134. data/test/factories/service/{sc/gaspar → simpliss/v1}/cancela_nfse.rb +2 -2
  135. data/test/factories/service/simpliss/v1/consulta_lote_rps.rb +7 -0
  136. data/test/factories/service/{sc/gaspar → simpliss/v1}/consulta_nfs_por_rps.rb +1 -1
  137. data/test/factories/service/{sc/gaspar → simpliss/v1}/consulta_nfse.rb +1 -1
  138. data/test/factories/service/simpliss/v1/consulta_situacao_lote_rps.rb +6 -0
  139. data/test/factories/service/{sc/gaspar → simpliss/v1}/recepcao_lote_rps.rb +1 -1
  140. data/test/fixtures/service/response/simpliss/v1/cancela_nfse/fault.xml +21 -0
  141. data/test/fixtures/service/response/simpliss/v1/cancela_nfse/success.xml +26 -0
  142. data/test/fixtures/service/response/simpliss/v1/consulta_lote_rps/fault.xml +21 -0
  143. data/test/fixtures/service/response/simpliss/v1/consulta_lote_rps/nfse_complete.xml +134 -0
  144. data/test/fixtures/service/response/simpliss/v1/consulta_lote_rps/nfse_simple.xml +100 -0
  145. data/test/fixtures/service/response/simpliss/v1/consulta_nfse/fault.xml +16 -0
  146. data/test/fixtures/service/response/simpliss/v1/consulta_nfse/nfs_empty.xml +10 -0
  147. data/test/fixtures/service/response/simpliss/v1/consulta_nfse/nfse_complete.xml +134 -0
  148. data/test/fixtures/service/response/simpliss/v1/consulta_nfse/nfse_simple.xml +100 -0
  149. data/test/fixtures/service/response/simpliss/v1/consulta_nfse_por_rps/fault.xml +16 -0
  150. data/test/fixtures/service/response/simpliss/v1/consulta_nfse_por_rps/nfse_complete.xml +132 -0
  151. data/test/fixtures/service/response/simpliss/v1/consulta_nfse_por_rps/nfse_simple.xml +98 -0
  152. data/test/fixtures/service/response/simpliss/v1/consulta_situacao_lote_rps/error.xml +11 -0
  153. data/test/fixtures/service/response/simpliss/v1/consulta_situacao_lote_rps/fault.xml +16 -0
  154. data/test/fixtures/service/response/simpliss/v1/consulta_situacao_lote_rps/success.xml +11 -0
  155. data/test/fixtures/service/response/simpliss/v1/consulta_situacao_lote_rps/unprocessed.xml +11 -0
  156. data/test/fixtures/service/response/simpliss/v1/consulta_situacao_lote_rps/unreceived.xml +11 -0
  157. data/test/fixtures/service/response/simpliss/v1/recepcao_lote_rps/error.xml +16 -0
  158. data/test/fixtures/service/response/simpliss/v1/recepcao_lote_rps/success.xml +12 -0
  159. data/test/fixtures/service/response/thema/v1/cancela_nfse/fault.xml +33 -0
  160. data/test/fixtures/service/response/thema/v1/cancela_nfse/success.xml +30 -0
  161. data/test/fixtures/service/response/thema/v1/consulta_lote_rps/fault.xml +19 -0
  162. data/test/fixtures/service/response/thema/v1/consulta_lote_rps/nfse_complete.xml +109 -0
  163. data/test/fixtures/service/response/thema/v1/consulta_nfse/fault.xml +20 -0
  164. data/test/fixtures/service/response/thema/v1/consulta_nfse/nfs_empty.xml +14 -0
  165. data/test/fixtures/service/response/thema/v1/consulta_nfse/nfse_complete.xml +111 -0
  166. data/test/fixtures/service/response/thema/v1/consulta_nfse/nfse_simple.xml +111 -0
  167. data/test/fixtures/service/response/thema/v1/consulta_nfse_por_rps/fault.xml +23 -0
  168. data/test/fixtures/service/response/thema/v1/consulta_nfse_por_rps/nfse_complete.xml +110 -0
  169. data/test/fixtures/service/response/thema/v1/consulta_situacao_lote_rps/error.xml +14 -0
  170. data/test/fixtures/service/response/thema/v1/consulta_situacao_lote_rps/fault.xml +15 -0
  171. data/test/fixtures/service/response/thema/v1/consulta_situacao_lote_rps/success.xml +14 -0
  172. data/test/fixtures/service/response/thema/v1/consulta_situacao_lote_rps/unprocessed.xml +14 -0
  173. data/test/fixtures/service/response/thema/v1/consulta_situacao_lote_rps/unreceived.xml +19 -0
  174. data/test/fixtures/service/response/thema/v1/recepcao_lote_rps/error.xml +17 -0
  175. data/test/fixtures/service/response/thema/v1/recepcao_lote_rps/success.xml +15 -0
  176. data/test/fixtures/service/response/thema/v1/recepcao_lote_rps_limitado/error.xml +19 -0
  177. data/test/fixtures/service/response/thema/v1/recepcao_lote_rps_limitado/success.xml +15 -0
  178. data/test/fixtures/service/thema/v1/cancelar_nfse_envio.xml +1 -0
  179. data/test/fixtures/service/thema/v1/cancelar_nfse_envio_signed.xml +2 -0
  180. data/test/fixtures/service/thema/v1/enviar_lote_rps.xml +1 -0
  181. data/test/fixtures/service/thema/v1/enviar_lote_rps_signed.xml +2 -0
  182. data/test/test_helper.rb +5 -0
  183. metadata +146 -37
  184. data/lib/br_nfe/service/sc/gaspar/cancela_nfse.rb +0 -13
  185. data/lib/br_nfe/service/sc/gaspar/consulta_lote_rps.rb +0 -13
  186. data/lib/br_nfe/service/sc/gaspar/consulta_nfs_por_rps.rb +0 -13
  187. data/lib/br_nfe/service/sc/gaspar/consulta_nfse.rb +0 -17
  188. data/lib/br_nfe/service/sc/gaspar/consulta_situacao_lote_rps.rb +0 -13
  189. data/lib/br_nfe/service/sc/gaspar/recepcao_lote_rps.rb +0 -13
  190. data/lib/br_nfe/service/sc/gaspar/recepcao_lote_rps_limitado.rb +0 -13
  191. data/test/br_nfe/service/sc/gaspar/cancela_nfse_test.rb +0 -21
  192. data/test/br_nfe/service/sc/gaspar/consulta_nfs_por_rps_test.rb +0 -21
  193. data/test/br_nfe/service/sc/gaspar/consulta_nfse_test.rb +0 -21
  194. data/test/br_nfe/service/sc/gaspar/consulta_situacao_lote_rps_test.rb +0 -21
  195. data/test/br_nfe/service/sc/gaspar/recepcao_lote_rps_limitado_test.rb +0 -22
  196. data/test/br_nfe/service/sc/gaspar/recepcao_lote_rps_test.rb +0 -22
  197. data/test/br_nfe/service/thema/v1/recepcao_lote_rps_test_limitado.rb +0 -50
  198. data/test/factories/service/sc/gaspar/consulta_lote_rps.rb +0 -7
  199. data/test/factories/service/sc/gaspar/consulta_situacao_lote_rps.rb +0 -6
@@ -1,7 +1,106 @@
1
1
  require 'test_helper'
2
2
 
3
+ module ResponsePathTest
4
+ def response_lot_number_path; :response_lot_number_path end
5
+ def response_protocol_path; :response_protocol_path end
6
+ def response_received_date_path; :response_received_date_path end
7
+ def response_situation_path; :response_situation_path end
8
+ def response_situation_key_values; {response_situation_key_values: :ok} end
9
+ def response_cancelation_date_time_path; :response_cancelation_date_time_path end
10
+ def response_message_errors_path; :response_message_errors_path end
11
+ def response_message_code_key; :response_message_code_key end
12
+ def response_message_msg_key; :response_message_msg_key end
13
+ def response_message_solution_key; :response_message_solution_key end
14
+ def response_invoices_path; :response_invoices_path end
15
+ def response_invoice_numero_nf_path; :response_invoice_numero_nf_path end
16
+ def response_invoice_codigo_verificacao_path; :response_invoice_codigo_verificacao_path end
17
+ def response_invoice_data_emissao_path; :response_invoice_data_emissao_path end
18
+ def response_invoice_url_nf_path; :response_invoice_url_nf_path end
19
+ def response_invoice_rps_numero_path; :response_invoice_rps_numero_path end
20
+ def response_invoice_rps_serie_path; :response_invoice_rps_serie_path end
21
+ def response_invoice_rps_tipo_path; :response_invoice_rps_tipo_path end
22
+ def response_invoice_rps_situacao_path; :response_invoice_rps_situacao_path end
23
+ def response_invoice_rps_substituido_numero_path; :response_invoice_rps_substituido_numero_path end
24
+ def response_invoice_rps_substituido_serie_path; :response_invoice_rps_substituido_serie_path end
25
+ def response_invoice_rps_substituido_tipo_path; :response_invoice_rps_substituido_tipo_path end
26
+ def response_invoice_data_emissao_rps_path; :response_invoice_data_emissao_rps_path end
27
+ def response_invoice_competencia_path; :response_invoice_competencia_path end
28
+ def response_invoice_natureza_operacao_path; :response_invoice_natureza_operacao_path end
29
+ def response_invoice_regime_especial_tributacao_path; :response_invoice_regime_especial_tributacao_path end
30
+ def response_invoice_optante_simples_nacional_path; :response_invoice_optante_simples_nacional_path end
31
+ def response_invoice_incentivador_cultural_path; :response_invoice_incentivador_cultural_path end
32
+ def response_invoice_outras_informacoes_path; :response_invoice_outras_informacoes_path end
33
+ def response_invoice_item_lista_servico_path; :response_invoice_item_lista_servico_path end
34
+ def response_invoice_cnae_code_path; :response_invoice_cnae_code_path end
35
+ def response_invoice_description_path; :response_invoice_description_path end
36
+ def response_invoice_codigo_municipio_path; :response_invoice_codigo_municipio_path end
37
+ def response_invoice_total_services_path; :response_invoice_total_services_path end
38
+ def response_invoice_deductions_path; :response_invoice_deductions_path end
39
+ def response_invoice_valor_pis_path; :response_invoice_valor_pis_path end
40
+ def response_invoice_valor_cofins_path; :response_invoice_valor_cofins_path end
41
+ def response_invoice_valor_inss_path; :response_invoice_valor_inss_path end
42
+ def response_invoice_valor_ir_path; :response_invoice_valor_ir_path end
43
+ def response_invoice_valor_csll_path; :response_invoice_valor_csll_path end
44
+ def response_invoice_iss_retained_path; :response_invoice_iss_retained_path end
45
+ def response_invoice_outras_retencoes_path; :response_invoice_outras_retencoes_path end
46
+ def response_invoice_total_iss_path; :response_invoice_total_iss_path end
47
+ def response_invoice_base_calculation_path; :response_invoice_base_calculation_path end
48
+ def response_invoice_iss_tax_rate_path; :response_invoice_iss_tax_rate_path end
49
+ def response_invoice_valor_liquido_path; :response_invoice_valor_liquido_path end
50
+ def response_invoice_desconto_condicionado_path; :response_invoice_desconto_condicionado_path end
51
+ def response_invoice_desconto_incondicionado_path; :response_invoice_desconto_incondicionado_path end
52
+ def response_invoice_responsavel_retencao_path; :response_invoice_responsavel_retencao_path end
53
+ def response_invoice_numero_processo_path; :response_invoice_numero_processo_path end
54
+ def response_invoice_municipio_incidencia_path; :response_invoice_municipio_incidencia_path end
55
+ def response_invoice_orgao_gerador_municipio_path; :response_invoice_orgao_gerador_municipio_path end
56
+ def response_invoice_orgao_gerador_uf_path; :response_invoice_orgao_gerador_uf_path end
57
+ def response_invoice_cancelamento_codigo_path; :response_invoice_cancelamento_codigo_path end
58
+ def response_invoice_cancelamento_numero_nf_path; :response_invoice_cancelamento_numero_nf_path end
59
+ def response_invoice_cancelamento_cnpj_path; :response_invoice_cancelamento_cnpj_path end
60
+ def response_invoice_cancelamento_municipio_path; :response_invoice_cancelamento_municipio_path end
61
+ def response_invoice_cancelamento_data_hora_path; :response_invoice_cancelamento_data_hora_path end
62
+ def response_invoice_nfe_substituidora_path; :response_invoice_nfe_substituidora_path end
63
+ def response_invoice_codigo_obra_path; :response_invoice_codigo_obra_path end
64
+ def response_invoice_codigo_art_path; :response_invoice_codigo_art_path end
65
+ def response_invoice_cancelamento_inscricao_municipal_path; :response_invoice_cancelamento_inscricao_municipal_path end
66
+ def response_invoice_emitente_cnpj_path; :response_invoice_emitente_cnpj_path end
67
+ def response_invoice_emitente_inscricao_municipal_path; :response_invoice_emitente_inscricao_municipal_path end
68
+ def response_invoice_emitente_razao_social_path; :response_invoice_emitente_razao_social_path end
69
+ def response_invoice_emitente_nome_fantasia_path; :response_invoice_emitente_nome_fantasia_path end
70
+ def response_invoice_emitente_telefone_path; :response_invoice_emitente_telefone_path end
71
+ def response_invoice_emitente_email_path; :response_invoice_emitente_email_path end
72
+ def response_invoice_emitente_endereco_logradouro_path; :response_invoice_emitente_endereco_logradouro_path end
73
+ def response_invoice_emitente_endereco_numero_path; :response_invoice_emitente_endereco_numero_path end
74
+ def response_invoice_emitente_endereco_complemento_path; :response_invoice_emitente_endereco_complemento_path end
75
+ def response_invoice_emitente_endereco_bairro_path; :response_invoice_emitente_endereco_bairro_path end
76
+ def response_invoice_emitente_endereco_codigo_municipio_path; :response_invoice_emitente_endereco_codigo_municipio_path end
77
+ def response_invoice_emitente_endereco_uf_path; :response_invoice_emitente_endereco_uf_path end
78
+ def response_invoice_emitente_endereco_cep_path; :response_invoice_emitente_endereco_cep_path end
79
+ def response_invoice_destinatario_cpf_path; :response_invoice_destinatario_cpf_path end
80
+ def response_invoice_destinatario_cnpj_path; :response_invoice_destinatario_cnpj_path end
81
+ def response_invoice_destinatario_inscricao_municipal_path; :response_invoice_destinatario_inscricao_municipal_path end
82
+ def response_invoice_destinatario_inscricao_estadual_path; :response_invoice_destinatario_inscricao_estadual_path end
83
+ def response_invoice_destinatario_inscricao_suframa_path; :response_invoice_destinatario_inscricao_suframa_path end
84
+ def response_invoice_destinatario_razao_social_path; :response_invoice_destinatario_razao_social_path end
85
+ def response_invoice_destinatario_telefone_path; :response_invoice_destinatario_telefone_path end
86
+ def response_invoice_destinatario_email_path; :response_invoice_destinatario_email_path end
87
+ def response_invoice_destinatario_endereco_logradouro_path; :response_invoice_destinatario_endereco_logradouro_path end
88
+ def response_invoice_destinatario_endereco_numero_path; :response_invoice_destinatario_endereco_numero_path end
89
+ def response_invoice_destinatario_endereco_complemento_path; :response_invoice_destinatario_endereco_complemento_path end
90
+ def response_invoice_destinatario_endereco_bairro_path; :response_invoice_destinatario_endereco_bairro_path end
91
+ def response_invoice_destinatario_endereco_codigo_municipio_path; :response_invoice_destinatario_endereco_codigo_municipio_path end
92
+ def response_invoice_destinatario_endereco_uf_path; :response_invoice_destinatario_endereco_uf_path end
93
+ def response_invoice_destinatario_endereco_cep_path; :response_invoice_destinatario_endereco_cep_path end
94
+ end
95
+
3
96
  describe BrNfe::Service::Base do
4
97
  subject { FactoryGirl.build(:br_nfe_servico_base) }
98
+
99
+ describe "Included modules" do
100
+ it "deve ter o module BrNfe::Helper::ValuesTs::ServiceV1 incluso" do
101
+ subject.class.included_modules.must_include(BrNfe::Helper::ValuesTs::ServiceV1)
102
+ end
103
+ end
5
104
 
6
105
  describe '#xml_current_dir_path' do
7
106
  it "o valor padrão deve ser o diretorio xml de serviços na versão do layout setado" do
@@ -10,14 +109,6 @@ describe BrNfe::Service::Base do
10
109
  end
11
110
  end
12
111
 
13
- describe '#response_path_module' do
14
- it "deve ser sobrescrito nas subclasses" do
15
- assert_raises RuntimeError do
16
- subject.response_path_module
17
- end
18
- end
19
- end
20
-
21
112
  describe "#response_root_path" do
22
113
  it "deve ter um array vazio por padrão" do
23
114
  subject.response_root_path.must_equal([])
@@ -107,10 +198,10 @@ describe BrNfe::Service::Base do
107
198
  describe "#set_response" do
108
199
  let(:build_response) { BrNfe::Response::Service::BuildResponse.new() }
109
200
  it "Deve setar a variavel @original_response com a resposta original do savon" do
201
+ subject.class.send(:include, ResponsePathTest)
110
202
  BrNfe::Response::Service::BuildResponse.any_instance.stubs(:response).returns(:response)
111
203
  subject.stubs(:response_root_path).returns(:response_root_path)
112
204
  subject.stubs(:nfse_xml_path).returns(:nfse_xml_path)
113
- subject.stubs(:response_path_module)
114
205
  subject.stubs(:body_xml_path).returns(:body_xml_path)
115
206
 
116
207
  subject.set_response(:original).must_equal :response
@@ -118,16 +209,107 @@ describe BrNfe::Service::Base do
118
209
  end
119
210
  it "deve instanciar o build_response e retornar a resposta" do
120
211
  build_response
212
+ subject.class.send(:include, ResponsePathTest)
121
213
  subject.expects(:response_root_path).returns(:response_root_path)
122
214
  subject.expects(:nfse_xml_path).returns(:nfse_xml_path)
123
- subject.expects(:response_path_module)
124
215
  subject.expects(:body_xml_path).returns(:body_xml_path)
216
+ subject.expects(:response_encoding).returns('ENCODE')
125
217
  BrNfe::Response::Service::BuildResponse.expects(:new).with({
126
218
  savon_response: :savon_response,
127
219
  keys_root_path: :response_root_path,
128
220
  nfe_xml_path: :nfse_xml_path,
129
- module_methods: nil,
130
221
  body_xml_path: :body_xml_path,
222
+ xml_encode: 'ENCODE',
223
+ lot_number_path: :response_lot_number_path,
224
+ protocol_path: :response_protocol_path,
225
+ received_date_path: :response_received_date_path,
226
+ situation_path: :response_situation_path,
227
+ situation_key_values: {response_situation_key_values: :ok},
228
+ cancelation_date_time_path: :response_cancelation_date_time_path,
229
+ message_errors_path: :response_message_errors_path,
230
+ message_code_key: :response_message_code_key,
231
+ message_msg_key: :response_message_msg_key,
232
+ message_solution_key: :response_message_solution_key,
233
+ invoices_path: :response_invoices_path,
234
+ invoice_numero_nf_path: :response_invoice_numero_nf_path,
235
+ invoice_codigo_verificacao_path: :response_invoice_codigo_verificacao_path,
236
+ invoice_data_emissao_path: :response_invoice_data_emissao_path,
237
+ invoice_url_nf_path: :response_invoice_url_nf_path,
238
+ invoice_rps_numero_path: :response_invoice_rps_numero_path,
239
+ invoice_rps_serie_path: :response_invoice_rps_serie_path,
240
+ invoice_rps_tipo_path: :response_invoice_rps_tipo_path,
241
+ invoice_rps_situacao_path: :response_invoice_rps_situacao_path,
242
+ invoice_rps_substituido_numero_path: :response_invoice_rps_substituido_numero_path,
243
+ invoice_rps_substituido_serie_path: :response_invoice_rps_substituido_serie_path,
244
+ invoice_rps_substituido_tipo_path: :response_invoice_rps_substituido_tipo_path,
245
+ invoice_data_emissao_rps_path: :response_invoice_data_emissao_rps_path,
246
+ invoice_competencia_path: :response_invoice_competencia_path,
247
+ invoice_natureza_operacao_path: :response_invoice_natureza_operacao_path,
248
+ invoice_regime_especial_tributacao_path: :response_invoice_regime_especial_tributacao_path,
249
+ invoice_optante_simples_nacional_path: :response_invoice_optante_simples_nacional_path,
250
+ invoice_incentivador_cultural_path: :response_invoice_incentivador_cultural_path,
251
+ invoice_outras_informacoes_path: :response_invoice_outras_informacoes_path,
252
+ invoice_item_lista_servico_path: :response_invoice_item_lista_servico_path,
253
+ invoice_cnae_code_path: :response_invoice_cnae_code_path,
254
+ invoice_description_path: :response_invoice_description_path,
255
+ invoice_codigo_municipio_path: :response_invoice_codigo_municipio_path,
256
+ invoice_total_services_path: :response_invoice_total_services_path,
257
+ invoice_deductions_path: :response_invoice_deductions_path,
258
+ invoice_valor_pis_path: :response_invoice_valor_pis_path,
259
+ invoice_valor_cofins_path: :response_invoice_valor_cofins_path,
260
+ invoice_valor_inss_path: :response_invoice_valor_inss_path,
261
+ invoice_valor_ir_path: :response_invoice_valor_ir_path,
262
+ invoice_valor_csll_path: :response_invoice_valor_csll_path,
263
+ invoice_iss_retained_path: :response_invoice_iss_retained_path,
264
+ invoice_outras_retencoes_path: :response_invoice_outras_retencoes_path,
265
+ invoice_total_iss_path: :response_invoice_total_iss_path,
266
+ invoice_base_calculation_path: :response_invoice_base_calculation_path,
267
+ invoice_iss_tax_rate_path: :response_invoice_iss_tax_rate_path,
268
+ invoice_valor_liquido_path: :response_invoice_valor_liquido_path,
269
+ invoice_desconto_condicionado_path: :response_invoice_desconto_condicionado_path,
270
+ invoice_desconto_incondicionado_path: :response_invoice_desconto_incondicionado_path,
271
+ invoice_responsavel_retencao_path: :response_invoice_responsavel_retencao_path,
272
+ invoice_numero_processo_path: :response_invoice_numero_processo_path,
273
+ invoice_municipio_incidencia_path: :response_invoice_municipio_incidencia_path,
274
+ invoice_orgao_gerador_municipio_path: :response_invoice_orgao_gerador_municipio_path,
275
+ invoice_orgao_gerador_uf_path: :response_invoice_orgao_gerador_uf_path,
276
+ invoice_cancelamento_codigo_path: :response_invoice_cancelamento_codigo_path,
277
+ invoice_cancelamento_numero_nf_path: :response_invoice_cancelamento_numero_nf_path,
278
+ invoice_cancelamento_cnpj_path: :response_invoice_cancelamento_cnpj_path,
279
+ invoice_cancelamento_municipio_path: :response_invoice_cancelamento_municipio_path,
280
+ invoice_cancelamento_data_hora_path: :response_invoice_cancelamento_data_hora_path,
281
+ invoice_cancelamento_inscricao_municipal_path: :response_invoice_cancelamento_inscricao_municipal_path,
282
+ invoice_nfe_substituidora_path: :response_invoice_nfe_substituidora_path,
283
+ invoice_codigo_obra_path: :response_invoice_codigo_obra_path,
284
+ invoice_codigo_art_path: :response_invoice_codigo_art_path,
285
+ invoice_emitente_cnpj_path: :response_invoice_emitente_cnpj_path,
286
+ invoice_emitente_inscricao_municipal_path: :response_invoice_emitente_inscricao_municipal_path,
287
+ invoice_emitente_razao_social_path: :response_invoice_emitente_razao_social_path,
288
+ invoice_emitente_nome_fantasia_path: :response_invoice_emitente_nome_fantasia_path,
289
+ invoice_emitente_telefone_path: :response_invoice_emitente_telefone_path,
290
+ invoice_emitente_email_path: :response_invoice_emitente_email_path,
291
+ invoice_emitente_endereco_logradouro_path: :response_invoice_emitente_endereco_logradouro_path,
292
+ invoice_emitente_endereco_numero_path: :response_invoice_emitente_endereco_numero_path,
293
+ invoice_emitente_endereco_complemento_path: :response_invoice_emitente_endereco_complemento_path,
294
+ invoice_emitente_endereco_bairro_path: :response_invoice_emitente_endereco_bairro_path,
295
+ invoice_emitente_endereco_codigo_municipio_path: :response_invoice_emitente_endereco_codigo_municipio_path,
296
+ invoice_emitente_endereco_uf_path: :response_invoice_emitente_endereco_uf_path,
297
+ invoice_emitente_endereco_cep_path: :response_invoice_emitente_endereco_cep_path,
298
+ invoice_destinatario_cpf_path: :response_invoice_destinatario_cpf_path,
299
+ invoice_destinatario_cnpj_path: :response_invoice_destinatario_cnpj_path,
300
+ invoice_destinatario_inscricao_municipal_path: :response_invoice_destinatario_inscricao_municipal_path,
301
+ invoice_destinatario_inscricao_estadual_path: :response_invoice_destinatario_inscricao_estadual_path,
302
+ invoice_destinatario_inscricao_suframa_path: :response_invoice_destinatario_inscricao_suframa_path,
303
+ invoice_destinatario_razao_social_path: :response_invoice_destinatario_razao_social_path,
304
+ invoice_destinatario_telefone_path: :response_invoice_destinatario_telefone_path,
305
+ invoice_destinatario_email_path: :response_invoice_destinatario_email_path,
306
+ invoice_destinatario_endereco_logradouro_path: :response_invoice_destinatario_endereco_logradouro_path,
307
+ invoice_destinatario_endereco_numero_path: :response_invoice_destinatario_endereco_numero_path,
308
+ invoice_destinatario_endereco_complemento_path: :response_invoice_destinatario_endereco_complemento_path,
309
+ invoice_destinatario_endereco_bairro_path: :response_invoice_destinatario_endereco_bairro_path,
310
+ invoice_destinatario_endereco_codigo_municipio_path: :response_invoice_destinatario_endereco_codigo_municipio_path,
311
+ invoice_destinatario_endereco_uf_path: :response_invoice_destinatario_endereco_uf_path,
312
+ invoice_destinatario_endereco_cep_path: :response_invoice_destinatario_endereco_cep_path,
131
313
  }).returns(build_response)
132
314
  build_response.expects(:response).returns('resposta')
133
315
 
@@ -135,4 +317,17 @@ describe BrNfe::Service::Base do
135
317
  subject.instance_variable_get(:@response).must_equal('resposta')
136
318
  end
137
319
  end
320
+
321
+ describe "#ibge_code_of_issuer_city" do
322
+ it "se não setar um valor deve pegar o valor do codigo IBGE do endereço do emitente" do
323
+ subject.emitente.endereco.codigo_municipio = '12345678'
324
+ subject.ibge_code_of_issuer_city = nil
325
+ subject.ibge_code_of_issuer_city.must_equal '12345678'
326
+ end
327
+ it "se setar o valor em ibge_code_of_issuer_city não deve pegar do endereço do emitente" do
328
+ subject.emitente.endereco.codigo_municipio = '12345678'
329
+ subject.ibge_code_of_issuer_city = 78978945
330
+ subject.ibge_code_of_issuer_city.must_equal '78978945'
331
+ end
332
+ end
138
333
  end
@@ -6,4 +6,13 @@ describe BrNfe::Service::Betha::Base do
6
6
  it "deve herdar de BrNfe::Service::Base" do
7
7
  subject.class.superclass.must_equal BrNfe::Service::Base
8
8
  end
9
+
10
+ describe "#ts_item_lista_servico" do
11
+ it "deve retornar apenas numeros sem pontuação" do
12
+ subject.ts_item_lista_servico('12.44').must_equal '1244'
13
+ end
14
+ it "Deve sempre retornar 4 caracteres" do
15
+ subject.ts_item_lista_servico('2.44').must_equal '0244'
16
+ end
17
+ end
9
18
  end
@@ -32,12 +32,6 @@ describe BrNfe::Service::Betha::V1::CancelamentoNfs do
32
32
  it { subject.method_wsdl.must_equal :cancelar_nfse_envio }
33
33
  end
34
34
 
35
- describe "#response_path_module" do
36
- it "deve ter o module ServicoCancelarNfseResposta" do
37
- subject.response_path_module.must_equal BrNfe::Service::Response::Paths::V1::ServicoCancelarNfseResposta
38
- end
39
- end
40
-
41
35
  it "#response_root_path" do
42
36
  subject.response_root_path.must_equal [:cancelar_nfse_envio_response]
43
37
  end
@@ -28,12 +28,6 @@ describe BrNfe::Service::Betha::V1::ConsultaLoteRps do
28
28
  it { subject.method_wsdl.must_equal :consultar_lote_rps_envio }
29
29
  end
30
30
 
31
- describe "#response_path_module" do
32
- it "deve ter um module" do
33
- subject.response_path_module.must_equal BrNfe::Service::Betha::V1::ResponsePaths::ServicoConsultarLoteRpsResposta
34
- end
35
- end
36
-
37
31
  it "#response_root_path" do
38
32
  subject.response_root_path.must_equal [:consultar_lote_rps_envio_response]
39
33
  end
@@ -29,10 +29,6 @@ describe BrNfe::Service::Betha::V1::ConsultaNfsPorRps do
29
29
  it { subject.method_wsdl.must_equal :consultar_nfse_por_rps_envio }
30
30
  end
31
31
 
32
- it "#response_path_module" do
33
- subject.response_path_module.must_equal BrNfe::Service::Betha::V1::ResponsePaths::ServicoConsultarNfseRpsResposta
34
- end
35
-
36
32
  it "#response_root_path" do
37
33
  subject.response_root_path.must_equal [:consultar_nfse_rps_envio_response]
38
34
  end
@@ -28,10 +28,6 @@ describe BrNfe::Service::Betha::V1::ConsultaNfse do
28
28
  it { subject.method_wsdl.must_equal :consultar_nfse_envio }
29
29
  end
30
30
 
31
- it "#response_path_module" do
32
- subject.response_path_module.must_equal BrNfe::Service::Betha::V1::ResponsePaths::ServicoConsultarNfseResposta
33
- end
34
-
35
31
  it "#response_root_path" do
36
32
  subject.response_root_path.must_equal [:consultar_nfse_envio_response]
37
33
  end
@@ -24,11 +24,7 @@ describe BrNfe::Service::Betha::V1::ConsultaSituacaoLoteRps do
24
24
  it { subject.method_wsdl.must_equal :consultar_situacao_lote_rps_envio }
25
25
  end
26
26
 
27
- it "#response_path_module" do
28
- subject.response_path_module.must_equal BrNfe::Service::Response::Paths::V1::ServicoConsultarSituacaoLoteRpsResposta
29
- end
30
-
31
- it "#response_path_module" do
27
+ it "#response_root_path" do
32
28
  subject.response_root_path.must_equal [:consultar_situacao_lote_rps_envio_response]
33
29
  end
34
30
 
@@ -28,8 +28,10 @@ describe BrNfe::Service::Betha::V1::Gateway do
28
28
  end
29
29
  end
30
30
 
31
- describe "#namespace_identifier" do
32
- it { subject.namespace_identifier.must_equal :ns1 }
31
+ describe "#namespaces" do
32
+ it '-> namespace_identifier' do subject.namespace_identifier.must_equal 'ns1:' end
33
+ it '-> namespace_for_tags' do subject.namespace_for_tags.must_be_nil end
34
+ it '-> namespace_for_signature' do subject.namespace_for_signature.must_be_nil end
33
35
  end
34
36
 
35
37
  end
@@ -44,10 +44,6 @@ describe BrNfe::Service::Betha::V1::RecepcaoLoteRps do
44
44
  it { subject.method_wsdl.must_equal :enviar_lote_rps_envio }
45
45
  end
46
46
 
47
- it "#response_path_module" do
48
- subject.response_path_module.must_equal BrNfe::Service::Response::Paths::V1::ServicoEnviarLoteRpsResposta
49
- end
50
-
51
47
  it "#response_root_path" do
52
48
  subject.response_root_path.must_equal [:enviar_lote_rps_envio_response]
53
49
  end
@@ -11,6 +11,6 @@ describe BrNfe::Service::Betha::V1::ResponsePaths::ServicoConsultarLoteRpsRespo
11
11
  end
12
12
 
13
13
  it "metodo invoices_path sobrescrito com valor padrão" do
14
- subject.invoices_path.must_equal [:consultar_lote_rps_resposta, :lista_nfse, :compl_nfse]
14
+ subject.response_invoices_path.must_equal [:consultar_lote_rps_resposta, :lista_nfse, :compl_nfse]
15
15
  end
16
16
  end
@@ -11,6 +11,6 @@ describe BrNfe::Service::Betha::V1::ResponsePaths::ServicoConsultarNfseResposta
11
11
  end
12
12
 
13
13
  it "metodo invoices_path sobrescrito com valor padrão" do
14
- subject.invoices_path.must_equal [:consultar_nfse_resposta, :lista_nfse, :compl_nfse]
14
+ subject.response_invoices_path.must_equal [:consultar_nfse_resposta, :lista_nfse, :compl_nfse]
15
15
  end
16
16
  end
@@ -11,6 +11,6 @@ describe BrNfe::Service::Betha::V1::ResponsePaths::ServicoConsultarNfseRpsRespo
11
11
  end
12
12
 
13
13
  it "metodo invoices_path sobrescrito com valor padrão" do
14
- subject.invoices_path.must_equal [:consultar_nfse_rps_resposta, :compl_nfse]
14
+ subject.response_invoices_path.must_equal [:consultar_nfse_rps_resposta, :compl_nfse]
15
15
  end
16
16
  end
@@ -60,7 +60,10 @@ describe BrNfe::Service::Rps do
60
60
  it { wont validate_presence_of(:iss_tax_rate) }
61
61
  end
62
62
  context "quando for false" do
63
- before { subject.stubs(:iss_retained?).returns(false) }
63
+ before do
64
+ subject.items = []
65
+ subject.stubs(:iss_retained?).returns(false)
66
+ end
64
67
  it { must validate_presence_of(:total_iss) }
65
68
  it { must validate_presence_of(:iss_tax_rate) }
66
69
  end
@@ -138,7 +141,6 @@ describe BrNfe::Service::Rps do
138
141
  end
139
142
  end
140
143
 
141
-
142
144
  describe "#destinatario" do
143
145
  it "sempre deve retornar um objeto BrNfe::Destinatario" do
144
146
  novo = BrNfe::Service::Rps.new
@@ -261,8 +263,6 @@ describe BrNfe::Service::Rps do
261
263
  subject.intermediario.wont_equal intermediario_old
262
264
  subject.intermediario.must_equal intermediario
263
265
  end
264
-
265
-
266
266
  end
267
267
 
268
268
  describe "#condicao_pagamento" do
@@ -366,7 +366,7 @@ describe BrNfe::Service::Rps do
366
366
  end
367
367
 
368
368
  it "posso utilizar o << para adicionar valores" do
369
- subject.items << item_1
369
+ subject.items = item_1
370
370
  subject.items << item_2
371
371
  subject.items.must_equal [item_1,item_2]
372
372
  end
@@ -434,7 +434,8 @@ describe BrNfe::Service::Rps do
434
434
  subject.assign_attributes({
435
435
  base_calculation: nil,
436
436
  total_services: nil,
437
- deductions: nil
437
+ deductions: nil,
438
+ items: []
438
439
  })
439
440
 
440
441
  subject.base_calculation.must_equal 0.0
@@ -500,4 +501,36 @@ describe BrNfe::Service::Rps do
500
501
  end
501
502
  end
502
503
 
504
+ describe "#net_value" do
505
+ it "Se setar um valor deve retornar o valor setado" do
506
+ subject.assign_attributes(total_services: 10.00, net_value: 9_999.55)
507
+ subject.net_value.must_equal 9_999.55
508
+ end
509
+ it "se não tiver valor setado manualmente em net_value deve realizar o calcula automaticamente" do
510
+ subject.assign_attributes({total_services: 100.00, valor_pis: 1.5, valor_cofins: 1.0,
511
+ valor_inss: 0.5, valor_ir: 0.0, valor_csll: 2.0, outras_retencoes: 3.0,
512
+ total_iss_retained: 4.0, desconto_incondicionado: 5.0, desconto_condicionado: 6.0,
513
+ net_value: nil
514
+ })
515
+ subject.net_value.must_equal 77.00
516
+ end
517
+ it "se todos os valores para o calculo estiverem nil não deve dar erro e retorna zero" do
518
+ subject.items = []
519
+ subject.assign_attributes({total_services: nil, valor_pis: nil, valor_cofins: nil,
520
+ valor_inss: nil, valor_ir: nil, valor_csll: nil, outras_retencoes: nil,
521
+ total_iss_retained: nil, desconto_incondicionado: nil, desconto_condicionado: nil,
522
+ net_value: nil
523
+ })
524
+ subject.net_value.must_equal 0.0
525
+ end
526
+ it "se alguns dos valores para o calculo estiverem nil não deve dar erro e considera esse valor como zero" do
527
+ subject.assign_attributes({total_services: 100.00, valor_pis: nil, valor_cofins: nil,
528
+ valor_inss: nil, valor_ir: 0.0, valor_csll: 2.0, outras_retencoes: 3.0,
529
+ total_iss_retained: 4.0, desconto_incondicionado: 5.0, desconto_condicionado: 6.0,
530
+ net_value: nil
531
+ })
532
+ subject.net_value.must_equal 80.0
533
+ end
534
+ end
535
+
503
536
  end
@@ -0,0 +1,102 @@
1
+ require 'test_helper'
2
+
3
+ describe BrNfe::Service::Simpliss::V1::Base do
4
+ subject { FactoryGirl.build(:service_simpliss_v1_base, emitente: emitente) }
5
+ let(:rps) { FactoryGirl.build(:br_nfe_rps, :completo) }
6
+ let(:emitente) { FactoryGirl.build(:emitente) }
7
+ let(:intermediario) { FactoryGirl.build(:intermediario) }
8
+
9
+ describe "inheritance class" do
10
+ it { subject.class.superclass.must_equal BrNfe::Service::Base }
11
+ end
12
+
13
+ describe "#wsdl" do
14
+ before do
15
+ subject.env = :production
16
+ end
17
+ it "se o env for de test deve enviar a requisição para o ambinete de homologação da SIMPLISS" do
18
+ subject.ibge_code_of_issuer_city = '4202008'
19
+ subject.env = :test
20
+ subject.wsdl.must_equal 'http://wshomologacao.simplissweb.com.br/nfseservice.svc?wsdl'
21
+ end
22
+ it "se codigo da cidade emitente for 4202008 então deve pagar a URL de Balneário Camboriú" do
23
+ subject.ibge_code_of_issuer_city = '4202008'
24
+ subject.wsdl.must_equal 'http://wsbalneariocamboriu.simplissweb.com.br/nfseservice.svc?wsdl'
25
+ end
26
+ end
27
+
28
+ describe "#canonicalization_method_algorithm" do
29
+ it { subject.canonicalization_method_algorithm.must_equal 'http://www.w3.org/TR/2001/REC-xml-c14n-20010315' }
30
+ end
31
+
32
+ describe "#message_namespaces" do
33
+ it "deve ter um valor" do
34
+ subject.message_namespaces.must_equal({})
35
+ end
36
+ end
37
+
38
+ describe "#soap_namespaces" do
39
+ it "deve conter os namespaces padrões mais o namespace da mensagem" do
40
+ subject.soap_namespaces.must_equal({
41
+ 'xmlns:soapenv' => 'http://schemas.xmlsoap.org/soap/envelope/',
42
+ 'xmlns:ins0' => 'http://www.w3.org/2000/09/xmldsig#',
43
+ 'xmlns:xsd' => 'http://www.w3.org/2001/XMLSchema',
44
+ 'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance',
45
+ 'xmlns:ns1' => "http://www.sistema.com.br/Nfse/arquivos/nfse_3.xsd",
46
+ 'xmlns:ns2' => "http://www.w3.org/2000/09/xmldsig#",
47
+ 'xmlns:ns3' => "http://www.sistema.com.br/Sistema.Ws.Nfse",
48
+ 'xmlns:ns4' => "http://www.sistema.com.br/Sistema.Ws.Nfse.Cn"
49
+ })
50
+ end
51
+ end
52
+
53
+ describe "#namespaces" do
54
+ it '-> namespace_identifier' do subject.namespace_identifier.must_equal 'ns3:' end
55
+ it '-> namespace_for_tags' do subject.namespace_for_tags.must_equal 'ns1:' end
56
+ it '-> namespace_for_signature' do subject.namespace_for_signature.must_equal 'ns2:' end
57
+ end
58
+
59
+ describe "#soap_body_root_tag" do
60
+ it "por padrão deve dar um Raise pois é necessário que seja sobrescrito nas sublcasses" do
61
+ assert_raises RuntimeError do
62
+ subject.soap_body_root_tag
63
+ end
64
+ end
65
+ end
66
+
67
+ describe "#content_xml" do
68
+ let(:expected_xml) do
69
+ dados = "<ns3:rootTag>"
70
+ dados += '<xml>Builder</xml>'
71
+ dados += "</ns3:rootTag>"
72
+ dados
73
+ end
74
+ it "deve encapsular o XML de xml_builder em um CDATA mantendo o XML body no padrão da Simpliss" do
75
+ subject.expects(:soap_body_root_tag).returns('rootTag').twice
76
+ subject.expects(:xml_builder).returns('<xml>Builder</xml>')
77
+ subject.content_xml.must_equal expected_xml
78
+ end
79
+ end
80
+
81
+ describe "#ts_item_lista_servico" do
82
+ it "se passar um valor já formatado deve retornar esse mesmo valor" do
83
+ subject.ts_item_lista_servico('7.90').must_equal '7.90'
84
+ end
85
+ it "se passar um valor inteiro deve formatar para NN.NN" do
86
+ subject.ts_item_lista_servico(1785).must_equal '17.85'
87
+ end
88
+ it "se passar um valor inteiro com apenas 1 caracter deve retornar esse unico caractere" do
89
+ subject.ts_item_lista_servico(1).must_equal '1'
90
+ end
91
+ it "se passar um valor com mais de 4 posições deve reotrnar apenas 4 numeros e 1 ponto" do
92
+ subject.ts_item_lista_servico(123456).must_equal '12.34'
93
+ end
94
+ it "se passar nil deve retornar o um valor em branco e não da erro" do
95
+ subject.ts_item_lista_servico(nil).must_be_nil
96
+ end
97
+ it "deve ignorar os Zeros da frente do número" do
98
+ subject.ts_item_lista_servico('0458').must_equal '4.58'
99
+ end
100
+ end
101
+
102
+ end