br_nfe 1.1.0 → 2.0.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 (257) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +5 -0
  3. data/.travis.yml +8 -0
  4. data/Gemfile +16 -0
  5. data/Gemfile.lock +27 -3
  6. data/LICENSE +1 -1
  7. data/README.markdown +10 -12
  8. data/Rakefile +13 -0
  9. data/br_nfe.gemspec +18 -21
  10. data/lib/br_nfe/active_model_base.rb +7 -1
  11. data/lib/br_nfe/base.rb +175 -37
  12. data/lib/br_nfe/endereco.rb +7 -1
  13. data/lib/br_nfe/helper/have_rps.rb +1 -1
  14. data/lib/br_nfe/helper/values_ts/service_v1.rb +313 -0
  15. data/lib/br_nfe/response/service/build_response.rb +286 -0
  16. data/lib/br_nfe/response/service/default.rb +185 -0
  17. data/lib/br_nfe/{servico/response → response/service}/nota_fiscal.rb +11 -10
  18. data/lib/br_nfe/response/service/paths/base.rb +93 -0
  19. data/lib/br_nfe/response/service/paths/v1/servico_cancelar_nfse_resposta.rb +22 -0
  20. data/lib/br_nfe/response/service/paths/v1/servico_consultar_lote_rps_resposta.rb +25 -0
  21. data/lib/br_nfe/response/service/paths/v1/servico_consultar_nfse_resposta.rb +25 -0
  22. data/lib/br_nfe/response/service/paths/v1/servico_consultar_nfse_rps_resposta.rb +25 -0
  23. data/lib/br_nfe/response/service/paths/v1/servico_consultar_situacao_lote_rps_resposta.rb +31 -0
  24. data/lib/br_nfe/response/service/paths/v1/servico_enviar_lote_rps_resposta.rb +36 -0
  25. data/lib/br_nfe/response/service/paths/v1/tc_nfse.rb +127 -0
  26. data/lib/br_nfe/service/base.rb +59 -0
  27. data/lib/br_nfe/service/betha/base.rb +8 -0
  28. data/lib/br_nfe/service/betha/v1/cancelamento_nfs.rb +39 -0
  29. data/lib/br_nfe/service/betha/v1/consulta_lote_rps.rb +34 -0
  30. data/lib/br_nfe/service/betha/v1/consulta_nfs_por_rps.rb +32 -0
  31. data/lib/br_nfe/service/betha/v1/consulta_nfse.rb +32 -0
  32. data/lib/br_nfe/service/betha/v1/consulta_situacao_lote_rps.rb +30 -0
  33. data/lib/br_nfe/service/betha/v1/gateway.rb +21 -0
  34. data/lib/br_nfe/service/betha/v1/recepcao_lote_rps.rb +37 -0
  35. data/lib/br_nfe/service/betha/v1/response_paths/servico_consultar_lote_rps_resposta.rb +19 -0
  36. data/lib/br_nfe/service/betha/v1/response_paths/servico_consultar_nfse_resposta.rb +17 -0
  37. data/lib/br_nfe/service/betha/v1/response_paths/servico_consultar_nfse_rps_resposta.rb +17 -0
  38. data/lib/br_nfe/service/concerns/rules/cancelamento_nfs.rb +20 -0
  39. data/lib/br_nfe/service/concerns/rules/consulta_nfs_por_rps.rb +18 -0
  40. data/lib/br_nfe/service/concerns/rules/consulta_nfse.rb +29 -0
  41. data/lib/br_nfe/service/concerns/rules/recepcao_lote_rps.rb +50 -0
  42. data/lib/br_nfe/{servico → service}/intermediario.rb +1 -1
  43. data/lib/br_nfe/service/item.rb +70 -0
  44. data/lib/br_nfe/service/rps.rb +231 -0
  45. data/lib/br_nfe/service/sc/florianopolis/base.rb +25 -0
  46. data/lib/br_nfe/service/sc/florianopolis/cancellation.rb +30 -0
  47. data/lib/br_nfe/service/sc/florianopolis/emission_rps.rb +19 -0
  48. data/lib/br_nfe/service/sc/florianopolis/xml/_address.xml.slim +21 -0
  49. data/lib/br_nfe/service/sc/florianopolis/xml/_contact.xml.slim +3 -0
  50. data/lib/br_nfe/service/sc/florianopolis/xml/_service_item.xml.slim +9 -0
  51. data/lib/br_nfe/service/sc/florianopolis/xml/cancellation.xml.slim +6 -0
  52. data/lib/br_nfe/service/sc/florianopolis/xml/inf_requisicao.xml.slim +55 -0
  53. data/lib/br_nfe/service/sc/gaspar/cancela_nfse.rb +13 -0
  54. data/lib/br_nfe/service/sc/gaspar/consulta_lote_rps.rb +13 -0
  55. data/lib/br_nfe/service/sc/gaspar/consulta_nfs_por_rps.rb +13 -0
  56. data/lib/br_nfe/service/sc/gaspar/consulta_nfse.rb +17 -0
  57. data/lib/br_nfe/service/sc/gaspar/consulta_situacao_lote_rps.rb +13 -0
  58. data/lib/br_nfe/service/sc/gaspar/recepcao_lote_rps.rb +13 -0
  59. data/lib/br_nfe/service/sc/gaspar/recepcao_lote_rps_limitado.rb +13 -0
  60. data/lib/br_nfe/service/thema/v1/base.rb +55 -0
  61. data/lib/br_nfe/service/thema/v1/cancela_nfse.rb +48 -0
  62. data/lib/br_nfe/service/thema/v1/consulta_lote_rps.rb +49 -0
  63. data/lib/br_nfe/service/thema/v1/consulta_nfs_por_rps.rb +48 -0
  64. data/lib/br_nfe/service/thema/v1/consulta_nfse.rb +47 -0
  65. data/lib/br_nfe/service/thema/v1/consulta_situacao_lote_rps.rb +46 -0
  66. data/lib/br_nfe/service/thema/v1/recepcao_lote_rps.rb +51 -0
  67. data/lib/br_nfe/service/thema/v1/recepcao_lote_rps_limitado.rb +30 -0
  68. data/lib/br_nfe/service/xml/v1/_tc_contato.xml.slim +7 -0
  69. data/lib/br_nfe/service/xml/v1/_tc_cpf_cnpj.xml.slim +5 -0
  70. data/lib/br_nfe/service/xml/v1/_tc_dados_construcao_civil.xml.slim +2 -0
  71. data/lib/br_nfe/service/xml/v1/_tc_dados_prestador.xml.slim +15 -0
  72. data/lib/br_nfe/service/xml/v1/_tc_dados_servico.xml.slim +14 -0
  73. data/lib/br_nfe/service/xml/v1/_tc_dados_tomador.xml.slim +15 -0
  74. data/lib/br_nfe/service/xml/v1/_tc_endereco.xml.slim +13 -0
  75. data/lib/br_nfe/service/xml/v1/_tc_identificacao_intermediario_servico.xml.slim +7 -0
  76. data/lib/br_nfe/service/xml/v1/_tc_identificacao_nfse.xml.slim +7 -0
  77. data/lib/br_nfe/service/xml/v1/_tc_identificacao_orgao_gerador.xml.slim +8 -0
  78. data/lib/br_nfe/service/xml/v1/_tc_identificacao_prestador.xml.slim +3 -0
  79. data/lib/br_nfe/service/xml/v1/_tc_identificacao_rps.xml.slim +16 -0
  80. data/lib/br_nfe/service/xml/v1/_tc_identificacao_tomador.xml.slim +4 -0
  81. data/lib/br_nfe/service/xml/v1/_tc_inf_pedido_cancelamento.xml.slim +4 -0
  82. data/lib/br_nfe/service/xml/v1/_tc_inf_rps.xml.slim +47 -0
  83. data/lib/br_nfe/service/xml/v1/_tc_lote_rps.xml.slim +9 -0
  84. data/lib/br_nfe/service/xml/v1/_tc_pedido_cancelamento.xml.slim +4 -0
  85. data/lib/br_nfe/service/xml/v1/_tc_rps.xml.slim +8 -0
  86. data/lib/br_nfe/service/xml/v1/_tc_valores.xml.slim +48 -0
  87. data/lib/br_nfe/service/xml/v1/servico_cancelar_nfse_envio.xml.slim +9 -0
  88. data/lib/br_nfe/service/xml/v1/servico_consultar_lote_rps_envio.xml.slim +4 -0
  89. data/lib/br_nfe/service/xml/v1/servico_consultar_nfse_envio.xml.slim +19 -0
  90. data/lib/br_nfe/service/xml/v1/servico_consultar_nfse_rps_envio.xml.slim +5 -0
  91. data/lib/br_nfe/service/xml/v1/servico_consultar_situacao_lote_rps_envio.xml.slim +4 -0
  92. data/lib/br_nfe/service/xml/v1/servico_enviar_lote_rps_envio.xml.slim +9 -0
  93. data/lib/br_nfe/version.rb +2 -2
  94. data/lib/br_nfe/xml/_signed_info_sh1.xml.slim +9 -0
  95. data/lib/br_nfe/xml/signature_sh1.xml.slim +12 -0
  96. data/lib/br_nfe/xml/soap_env.xml.slim +3 -0
  97. data/lib/br_nfe.rb +72 -20
  98. data/test/br_nfe/base_test.rb +257 -108
  99. data/test/br_nfe/helper/have_intermediario_test.rb +2 -2
  100. data/test/br_nfe/helper/have_rps_test.rb +4 -4
  101. data/test/br_nfe/response/service/build_response_test.rb +377 -0
  102. data/test/br_nfe/response/service/default_test.rb +218 -0
  103. data/test/br_nfe/{servico/response → response/service}/nota_fiscal_test.rb +2 -2
  104. data/test/br_nfe/response/service/paths/base_test.rb +199 -0
  105. data/test/br_nfe/response/service/paths/v1/servico_cancelar_nfse_resposta_test.rb +25 -0
  106. data/test/br_nfe/response/service/paths/v1/servico_consultar_lote_rps_resposta_test.rb +30 -0
  107. data/test/br_nfe/response/service/paths/v1/servico_consultar_nfse_resposta_test.rb +30 -0
  108. data/test/br_nfe/response/service/paths/v1/servico_consultar_nfse_rps_resposta_test.rb +30 -0
  109. data/test/br_nfe/response/service/paths/v1/servico_consultar_situacao_lote_rps_resposta_test.rb +30 -0
  110. data/test/br_nfe/response/service/paths/v1/servico_enviar_lote_rps_resposta_test.rb +34 -0
  111. data/test/br_nfe/response/service/paths/v1/tc_nfse_test.rb +122 -0
  112. data/test/br_nfe/service/base_test.rb +138 -0
  113. data/test/br_nfe/service/betha/base_test.rb +9 -0
  114. data/test/br_nfe/service/betha/v1/cancelamento_nfs_test.rb +60 -0
  115. data/test/br_nfe/service/betha/v1/consulta_lote_rps_test.rb +55 -0
  116. data/test/br_nfe/service/betha/v1/consulta_nfs_por_rps_test.rb +55 -0
  117. data/test/br_nfe/service/betha/v1/consulta_nfse_test.rb +53 -0
  118. data/test/br_nfe/service/betha/v1/consulta_situacao_lote_rps_test.rb +49 -0
  119. data/test/br_nfe/service/betha/v1/gateway_test.rb +35 -0
  120. data/test/br_nfe/service/betha/v1/recepcao_lote_rps_test.rb +84 -0
  121. data/test/br_nfe/service/betha/v1/response_paths/servico_consultar_lote_rps_resposta_test.rb +16 -0
  122. data/test/br_nfe/service/betha/v1/response_paths/servico_consultar_nfse_resposta_test.rb +16 -0
  123. data/test/br_nfe/service/betha/v1/response_paths/servico_consultar_nfse_rps_resposta_test.rb +16 -0
  124. data/test/br_nfe/service/betha/v1/xsd/TiposNFe_v01.xsd +583 -0
  125. data/test/br_nfe/service/betha/v1/xsd/nfse_v01.xsd +652 -0
  126. data/test/br_nfe/service/betha/v1/xsd/servico_cancelar_nfse_envio_v01.xsd +17 -0
  127. data/test/br_nfe/service/betha/v1/xsd/servico_consultar_lote_rps_envio_v01.xsd +16 -0
  128. data/test/br_nfe/service/betha/v1/xsd/servico_consultar_nfse_envio_v01.xsd +28 -0
  129. data/test/br_nfe/service/betha/v1/xsd/servico_consultar_nfse_rps_envio_v01.xsd +16 -0
  130. data/test/br_nfe/service/betha/v1/xsd/servico_consultar_situacao_lote_rps_envio_v01.xsd +16 -0
  131. data/test/br_nfe/service/betha/v1/xsd/servico_enviar_lote_rps_envio_v01.xsd +17 -0
  132. data/test/br_nfe/service/betha/v1/xsd/xmldsig-core-schema.xsd +308 -0
  133. data/test/br_nfe/service/betha/v1/xsd/xmldsig-core-schema_v01.xsd +95 -0
  134. data/test/br_nfe/service/concerns/rules/cancelamento_nfs_test.rb +15 -0
  135. data/test/br_nfe/service/concerns/rules/consulta_nfs_por_rps_test.rb +36 -0
  136. data/test/br_nfe/service/concerns/rules/consulta_nfse_test.rb +42 -0
  137. data/test/br_nfe/{servico/base_test.rb → service/concerns/rules/recepcao_lote_rps_test.rb} +12 -4
  138. data/test/br_nfe/{servico → service}/intermediario_test.rb +1 -1
  139. data/test/br_nfe/service/item_test.rb +34 -0
  140. data/test/br_nfe/{servico → service}/rps_test.rb +191 -43
  141. data/test/br_nfe/service/sc/florianopolis/XSD/TiposNFSe_v2.0.xsd +863 -0
  142. data/test/br_nfe/service/sc/florianopolis/XSD/xmldsig-core-schema.xsd +309 -0
  143. data/test/br_nfe/service/sc/florianopolis/base_test.rb +20 -0
  144. data/test/br_nfe/service/sc/florianopolis/cancellation_test.rb +36 -0
  145. data/test/br_nfe/service/sc/florianopolis/emission_rps_test.rb +145 -0
  146. data/test/br_nfe/service/sc/gaspar/cancela_nfse_test.rb +21 -0
  147. data/test/br_nfe/service/sc/gaspar/consulta_nfs_por_rps_test.rb +21 -0
  148. data/test/br_nfe/service/sc/gaspar/consulta_nfse_test.rb +21 -0
  149. data/test/br_nfe/service/sc/gaspar/consulta_situacao_lote_rps_test.rb +21 -0
  150. data/test/br_nfe/service/sc/gaspar/recepcao_lote_rps_limitado_test.rb +22 -0
  151. data/test/br_nfe/service/sc/gaspar/recepcao_lote_rps_test.rb +22 -0
  152. data/test/br_nfe/service/thema/v1/base_test.rb +65 -0
  153. data/test/br_nfe/service/thema/v1/cancela_nfse_test.rb +56 -0
  154. data/test/br_nfe/service/thema/v1/consulta_lote_rps_test.rb +47 -0
  155. data/test/br_nfe/service/thema/v1/consulta_nfs_por_rps_test.rb +50 -0
  156. data/test/br_nfe/service/thema/v1/consulta_nfse_test.rb +50 -0
  157. data/test/br_nfe/service/thema/v1/consulta_situacao_lote_rps_test.rb +47 -0
  158. data/test/br_nfe/service/thema/v1/recepcao_lote_rps_test.rb +62 -0
  159. data/test/br_nfe/service/thema/v1/recepcao_lote_rps_test_limitado.rb +50 -0
  160. data/test/br_nfe/service/thema/v1/xsd/nfse.xsd +656 -0
  161. data/test/br_nfe/service/thema/v1/xsd/xmldsig-core-schema20020212.xsd +318 -0
  162. data/test/br_nfe/service/xsd/v1/nfse.xsd +779 -0
  163. data/test/br_nfe/service/xsd/v1/xmldsig-core-schema20020212.xsd +316 -0
  164. data/test/cert.pfx +0 -0
  165. data/test/factories/base.rb +2 -0
  166. data/test/factories/destinatario.rb +3 -3
  167. data/test/factories/response/service/build_response.rb +5 -0
  168. data/test/factories/response/service/default.rb +10 -0
  169. data/test/factories/{servico/response → response/service}/nota_fiscal.rb +9 -9
  170. data/test/factories/service/base.rb +6 -0
  171. data/test/factories/service/betha/base.rb +4 -0
  172. data/test/factories/service/betha/v1/cancelamento_nfs.rb +9 -0
  173. data/test/factories/{servico → service}/betha/v1/consulta_lote_rps.rb +2 -2
  174. data/test/factories/{servico → service}/betha/v1/consulta_nfs_por_rps.rb +1 -1
  175. data/test/factories/service/betha/v1/consulta_nfse.rb +8 -0
  176. data/test/factories/{servico → service}/betha/v1/consulta_situacao_lote_rps.rb +2 -2
  177. data/test/factories/{servico → service}/betha/v1/gateway.rb +1 -1
  178. data/test/factories/service/betha/v1/recepcao_lote_rps.rb +8 -0
  179. data/test/factories/{servico → service}/intermediario.rb +2 -2
  180. data/test/factories/service/item.rb +12 -0
  181. data/test/factories/service/rps.rb +50 -0
  182. data/test/factories/service/sc/florianopolis/base.rb +5 -0
  183. data/test/factories/service/sc/florianopolis/cancellation.rb +7 -0
  184. data/test/factories/service/sc/florianopolis/emission_rps.rb +7 -0
  185. data/test/factories/service/sc/gaspar/cancela_nfse.rb +9 -0
  186. data/test/factories/service/sc/gaspar/consulta_lote_rps.rb +7 -0
  187. data/test/factories/service/sc/gaspar/consulta_nfs_por_rps.rb +6 -0
  188. data/test/factories/service/sc/gaspar/consulta_nfse.rb +8 -0
  189. data/test/factories/service/sc/gaspar/consulta_situacao_lote_rps.rb +6 -0
  190. data/test/factories/service/sc/gaspar/recepcao_lote_rps.rb +9 -0
  191. data/test/factories/service/sc/gaspar/recepcao_lote_rps_limitado.rb +9 -0
  192. data/test/factories/service/thema/v1/base.rb +7 -0
  193. data/test/factories/service/thema/v1/cancela_nfse.rb +9 -0
  194. data/test/factories/service/thema/v1/consulta_lote_rps.rb +7 -0
  195. data/test/factories/service/thema/v1/consulta_nfs_por_rps.rb +6 -0
  196. data/test/factories/service/thema/v1/consulta_nfse.rb +8 -0
  197. data/test/factories/service/thema/v1/consulta_situacao_lote_rps.rb +6 -0
  198. data/test/factories/service/thema/v1/recepcao_lote_rps.rb +9 -0
  199. data/test/factories/service/thema/v1/recepcao_lote_rps_limitado.rb +8 -0
  200. data/test/test_helper.rb +42 -0
  201. metadata +338 -121
  202. data/lib/br_nfe/servico/base.rb +0 -35
  203. data/lib/br_nfe/servico/betha/base.rb +0 -85
  204. data/lib/br_nfe/servico/betha/build_response.rb +0 -141
  205. data/lib/br_nfe/servico/betha/v1/build_response.rb +0 -121
  206. data/lib/br_nfe/servico/betha/v1/cancelamento_nfs.rb +0 -52
  207. data/lib/br_nfe/servico/betha/v1/consulta_lote_rps.rb +0 -33
  208. data/lib/br_nfe/servico/betha/v1/consulta_nfs_por_rps.rb +0 -37
  209. data/lib/br_nfe/servico/betha/v1/consulta_nfse.rb +0 -51
  210. data/lib/br_nfe/servico/betha/v1/consulta_situacao_lote_rps.rb +0 -18
  211. data/lib/br_nfe/servico/betha/v1/gateway.rb +0 -125
  212. data/lib/br_nfe/servico/betha/v1/recepcao_lote_rps.rb +0 -97
  213. data/lib/br_nfe/servico/betha/v2/build_response.rb +0 -159
  214. data/lib/br_nfe/servico/betha/v2/cancelamento_nfs.rb +0 -30
  215. data/lib/br_nfe/servico/betha/v2/consulta_lote_rps.rb +0 -30
  216. data/lib/br_nfe/servico/betha/v2/consulta_nfse_por_rps.rb +0 -27
  217. data/lib/br_nfe/servico/betha/v2/envio_lote_rps_sincrono.rb +0 -30
  218. data/lib/br_nfe/servico/betha/v2/gateway.rb +0 -230
  219. data/lib/br_nfe/servico/betha/v2/gera_nfse.rb +0 -30
  220. data/lib/br_nfe/servico/betha/v2/recepcao_lote_rps.rb +0 -52
  221. data/lib/br_nfe/servico/betha/v2/substituicao_nfse.rb +0 -43
  222. data/lib/br_nfe/servico/response/default.rb +0 -34
  223. data/lib/br_nfe/servico/rps.rb +0 -108
  224. data/test/br_nfe/servico/betha/base_test.rb +0 -135
  225. data/test/br_nfe/servico/betha/v1/build_response_test.rb +0 -557
  226. data/test/br_nfe/servico/betha/v1/cancelamento_nfs_test.rb +0 -72
  227. data/test/br_nfe/servico/betha/v1/consulta_lote_rps_test.rb +0 -46
  228. data/test/br_nfe/servico/betha/v1/consulta_nfs_por_rps_test.rb +0 -68
  229. data/test/br_nfe/servico/betha/v1/consulta_nfse_test.rb +0 -74
  230. data/test/br_nfe/servico/betha/v1/consulta_situacao_lote_rps_test.rb +0 -27
  231. data/test/br_nfe/servico/betha/v1/gateway_test.rb +0 -151
  232. data/test/br_nfe/servico/betha/v1/recepcao_lote_rps_test.rb +0 -249
  233. data/test/br_nfe/servico/betha/v2/cancelamento_nfs_test.rb +0 -44
  234. data/test/br_nfe/servico/betha/v2/consulta_lote_rps_test.rb +0 -38
  235. data/test/br_nfe/servico/betha/v2/consulta_nfse_por_rps_test.rb +0 -36
  236. data/test/br_nfe/servico/betha/v2/envio_lote_rps_sincrono_test.rb +0 -51
  237. data/test/br_nfe/servico/betha/v2/gateway_test.rb +0 -372
  238. data/test/br_nfe/servico/betha/v2/gera_nfse_test.rb +0 -62
  239. data/test/br_nfe/servico/betha/v2/recepcao_lote_rps_test.rb +0 -108
  240. data/test/br_nfe/servico/betha/v2/substituicao_nfse_test.rb +0 -84
  241. data/test/br_nfe/servico/response/default_test.rb +0 -54
  242. data/test/factories/servico/base.rb +0 -5
  243. data/test/factories/servico/betha/base.rb +0 -5
  244. data/test/factories/servico/betha/v1/build_response.rb +0 -6
  245. data/test/factories/servico/betha/v1/cancelamento_nfs.rb +0 -7
  246. data/test/factories/servico/betha/v1/consulta_nfse.rb +0 -8
  247. data/test/factories/servico/betha/v1/recepcao_lote_rps.rb +0 -6
  248. data/test/factories/servico/betha/v2/cancelamento_nfs.rb +0 -7
  249. data/test/factories/servico/betha/v2/consulta_lote_rps.rb +0 -6
  250. data/test/factories/servico/betha/v2/consulta_nfse_por_rps.rb +0 -6
  251. data/test/factories/servico/betha/v2/envio_lote_rps_sincrono.rb +0 -5
  252. data/test/factories/servico/betha/v2/gateway.rb +0 -5
  253. data/test/factories/servico/betha/v2/gera_nfse.rb +0 -6
  254. data/test/factories/servico/betha/v2/recepcao_lote_rps.rb +0 -5
  255. data/test/factories/servico/betha/v2/substituicao_nfse.rb +0 -8
  256. data/test/factories/servico/response/default.rb +0 -10
  257. data/test/factories/servico/rps.rb +0 -44
@@ -0,0 +1,21 @@
1
+ require 'test_helper'
2
+
3
+ describe BrNfe::Service::SC::Gaspar::CancelaNfse do
4
+ subject { FactoryGirl.build(:service_sc_gaspar_cancela_nfse) }
5
+
6
+ it "A classe deve herdar de BrNfe::Service::Thema::V1::CancelaNfse" do
7
+ subject.must_be_kind_of BrNfe::Service::Thema::V1::CancelaNfse
8
+ end
9
+
10
+ describe "#wsdl" do
11
+ context "for env production" do
12
+ it { subject.wsdl.must_equal 'http://nfse.gaspar.sc.gov.br/nfse/services/NFSEcancelamento?wsdl' }
13
+ end
14
+ context "for env test" do
15
+ before do
16
+ subject.env = :test
17
+ end
18
+ it { subject.wsdl.must_equal 'http://nfsehml.gaspar.sc.gov.br/nfse/services/NFSEcancelamento?wsdl' }
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ require 'test_helper'
2
+
3
+ describe BrNfe::Service::SC::Gaspar::ConsultaNfsPorRps do
4
+ subject { FactoryGirl.build(:service_sc_gaspar_consulta_nfs_por_rps) }
5
+
6
+ it "A classe deve herdar de BrNfe::Service::Thema::V1::ConsultaNfsPorRps" do
7
+ subject.must_be_kind_of BrNfe::Service::Thema::V1::ConsultaNfsPorRps
8
+ end
9
+
10
+ describe "#wsdl" do
11
+ context "for env production" do
12
+ it { subject.wsdl.must_equal 'http://nfse.gaspar.sc.gov.br/nfse/services/NFSEconsulta?wsdl' }
13
+ end
14
+ context "for env test" do
15
+ before do
16
+ subject.env = :test
17
+ end
18
+ it { subject.wsdl.must_equal 'http://nfsehml.gaspar.sc.gov.br/nfse/services/NFSEconsulta?wsdl' }
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ require 'test_helper'
2
+
3
+ describe BrNfe::Service::SC::Gaspar::ConsultaNfse do
4
+ subject { FactoryGirl.build(:service_sc_gaspar_consulta_nfse) }
5
+
6
+ it "A classe deve herdar de BrNfe::Service::Thema::V1::ConsultaNfse" do
7
+ subject.must_be_kind_of BrNfe::Service::Thema::V1::ConsultaNfse
8
+ end
9
+
10
+ describe "#wsdl" do
11
+ context "for env production" do
12
+ it { subject.wsdl.must_equal 'http://nfse.gaspar.sc.gov.br/nfse/services/NFSEconsulta?wsdl' }
13
+ end
14
+ context "for env test" do
15
+ before do
16
+ subject.env = :test
17
+ end
18
+ it { subject.wsdl.must_equal 'http://nfsehml.gaspar.sc.gov.br/nfse/services/NFSEconsulta?wsdl' }
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ require 'test_helper'
2
+
3
+ describe BrNfe::Service::SC::Gaspar::ConsultaSituacaoLoteRps do
4
+ subject { FactoryGirl.build(:service_sc_gaspar_consulta_situacao_lote_rps) }
5
+
6
+ it "A classe deve herdar de BrNfe::Service::Thema::V1::ConsultaSituacaoLoteRps" do
7
+ subject.must_be_kind_of BrNfe::Service::Thema::V1::ConsultaSituacaoLoteRps
8
+ end
9
+
10
+ describe "#wsdl" do
11
+ context "for env production" do
12
+ it { subject.wsdl.must_equal 'http://nfse.gaspar.sc.gov.br/nfse/services/NFSEconsulta?wsdl' }
13
+ end
14
+ context "for env test" do
15
+ before do
16
+ subject.env = :test
17
+ end
18
+ it { subject.wsdl.must_equal 'http://nfsehml.gaspar.sc.gov.br/nfse/services/NFSEconsulta?wsdl' }
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,22 @@
1
+ require 'test_helper'
2
+
3
+ describe BrNfe::Service::SC::Gaspar::RecepcaoLoteRpsLimitado do
4
+ subject { FactoryGirl.build(:service_sc_gaspar_recepcao_lote_rps_limitado, emitente: emitente) }
5
+ let(:emitente) { FactoryGirl.build(:emitente, natureza_operacao: 51) }
6
+
7
+ it "A classe deve herdar de BrNfe::Service::Thema::V1::RecepcaoLoteRpsLimitado" do
8
+ subject.must_be_kind_of BrNfe::Service::Thema::V1::RecepcaoLoteRpsLimitado
9
+ end
10
+
11
+ describe "#wsdl" do
12
+ context "for env production" do
13
+ it { subject.wsdl.must_equal 'http://nfse.gaspar.sc.gov.br/nfse/services/NFSEremessa?wsdl' }
14
+ end
15
+ context "for env test" do
16
+ before do
17
+ subject.env = :test
18
+ end
19
+ it { subject.wsdl.must_equal 'http://nfsehml.gaspar.sc.gov.br/nfse/services/NFSEremessa?wsdl' }
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,22 @@
1
+ require 'test_helper'
2
+
3
+ describe BrNfe::Service::SC::Gaspar::RecepcaoLoteRps do
4
+ subject { FactoryGirl.build(:service_sc_gaspar_recepcao_lote_rps, emitente: emitente) }
5
+ let(:emitente) { FactoryGirl.build(:emitente, natureza_operacao: 51) }
6
+
7
+ it "A classe deve herdar de BrNfe::Service::Thema::V1::RecepcaoLoteRps" do
8
+ subject.must_be_kind_of BrNfe::Service::Thema::V1::RecepcaoLoteRps
9
+ end
10
+
11
+ describe "#wsdl" do
12
+ context "for env production" do
13
+ it { subject.wsdl.must_equal 'http://nfse.gaspar.sc.gov.br/nfse/services/NFSEremessa?wsdl' }
14
+ end
15
+ context "for env test" do
16
+ before do
17
+ subject.env = :test
18
+ end
19
+ it { subject.wsdl.must_equal 'http://nfsehml.gaspar.sc.gov.br/nfse/services/NFSEremessa?wsdl' }
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,65 @@
1
+ require 'test_helper'
2
+
3
+ describe BrNfe::Service::Thema::V1::Base do
4
+ subject { FactoryGirl.build(:service_thema_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 "#canonicalization_method_algorithm" do
14
+ it { subject.canonicalization_method_algorithm.must_equal 'http://www.w3.org/TR/2001/REC-xml-c14n-20010315' }
15
+ end
16
+
17
+ describe "#message_namespaces" do
18
+ it "deve ter um valor" do
19
+ subject.message_namespaces.must_equal({"xmlns" => "http://www.abrasf.org.br/ABRASF/arquivos/nfse.xsd"})
20
+ end
21
+ end
22
+
23
+ describe "#soap_namespaces" do
24
+ it "deve conter os namespaces padrões mais o namespace da mensagem" do
25
+ subject.soap_namespaces.must_equal({
26
+ 'xmlns:soapenv' => 'http://schemas.xmlsoap.org/soap/envelope/',
27
+ 'xmlns:ins0' => 'http://www.w3.org/2000/09/xmldsig#',
28
+ 'xmlns:xsd' => 'http://www.w3.org/2001/XMLSchema',
29
+ 'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance',
30
+ "xmlns:ns1" => "http://server.nfse.thema.inf.br"
31
+ })
32
+ end
33
+ end
34
+
35
+ describe "#namespace_identifier" do
36
+ it { subject.namespace_identifier.must_be_nil }
37
+ end
38
+
39
+ describe "#soap_body_root_tag" do
40
+ it "por padrão deve dar um Raise pois é necessário que seja sobrescrito nas sublcasses" do
41
+ assert_raises RuntimeError do
42
+ subject.soap_body_root_tag
43
+ end
44
+ end
45
+ end
46
+
47
+ describe "#content_xml" do
48
+ let(:expected_xml) do
49
+ dados = "<ns1:rootTag>"
50
+ dados += '<ns1:xml>'
51
+ dados += '<![CDATA[<?xml version="1.0" encoding="ISO-8859-1"?>'
52
+ dados += '<xml>Builder</xml>'
53
+ dados += ']]>'
54
+ dados += '</ns1:xml>'
55
+ dados += "</ns1:rootTag>"
56
+ dados
57
+ end
58
+ it "deve encapsular o XML de xml_builder em um CDATA mantendo o XML body no padrão da Thema" do
59
+ subject.expects(:soap_body_root_tag).returns('rootTag').twice
60
+ subject.expects(:xml_builder).returns('<xml>Builder</xml>')
61
+ subject.content_xml.must_equal expected_xml
62
+ end
63
+ end
64
+
65
+ end
@@ -0,0 +1,56 @@
1
+ require 'test_helper'
2
+
3
+ describe BrNfe::Service::Thema::V1::CancelaNfse do
4
+ subject { FactoryGirl.build(:service_thema_v1_cancela_nfse, emitente: emitente) }
5
+ let(:emitente) { FactoryGirl.build(:emitente) }
6
+
7
+ describe "superclass" do
8
+ it { subject.class.superclass.must_equal BrNfe::Service::Thema::V1::Base }
9
+ end
10
+
11
+ it "deve conter as regras de BrNfe::Service::Concerns::Rules::CancelamentoNfs inclusas" do
12
+ subject.class.included_modules.must_include BrNfe::Service::Concerns::Rules::CancelamentoNfs
13
+ end
14
+
15
+ describe "#method_wsdl" do
16
+ it { subject.method_wsdl.must_equal :cancelar_nfse }
17
+ end
18
+
19
+ describe "#response_path_module" do
20
+ it "deve ter o module ServicoCancelarNfseResposta" do
21
+ subject.response_path_module.must_equal BrNfe::Service::Response::Paths::V1::ServicoCancelarNfseResposta
22
+ end
23
+ end
24
+
25
+ it "#response_root_path" do
26
+ subject.response_root_path.must_equal []
27
+ end
28
+
29
+ it "#body_xml_path" do
30
+ subject.body_xml_path.must_equal [:cancelar_nfse_response, :return]
31
+ end
32
+
33
+ it "#soap_body_root_tag" do
34
+ subject.soap_body_root_tag.must_equal 'cancelarNfse'
35
+ end
36
+
37
+ describe "Validação do XML através do XSD" do
38
+ let(:schemas_dir) { BrNfe.root+'/test/br_nfe/service/thema/v1/xsd' }
39
+
40
+ describe "Validações a partir do arquivo XSD" do
41
+ it "Deve ser válido com 1 RPS com todas as informações preenchidas" do
42
+ # Por algum motivo o XSD não valida a assinatura XML
43
+ subject.certificate_pkcs12_password = nil
44
+ subject.certificate_pkcs12_path = nil
45
+
46
+ Dir.chdir(schemas_dir) do
47
+ schema = Nokogiri::XML::Schema(IO.read('nfse.xsd'))
48
+ document = Nokogiri::XML(subject.xml_builder)
49
+ errors = schema.validate(document)
50
+ errors.must_be_empty
51
+ end
52
+ end
53
+ end
54
+ end
55
+
56
+ end
@@ -0,0 +1,47 @@
1
+ require 'test_helper'
2
+
3
+ describe BrNfe::Service::Thema::V1::ConsultaLoteRps do
4
+ subject { FactoryGirl.build(:service_thema_v1_consulta_lote_rps, emitente: emitente) }
5
+ let(:emitente) { FactoryGirl.build(:emitente) }
6
+
7
+ it { must validate_presence_of(:protocolo) }
8
+
9
+ describe "superclass" do
10
+ it { subject.class.superclass.must_equal BrNfe::Service::Thema::V1::Base }
11
+ end
12
+
13
+ describe "#method_wsdl" do
14
+ it { subject.method_wsdl.must_equal :consultar_lote_rps }
15
+ end
16
+
17
+ it "#response_path_module" do
18
+ subject.response_path_module.must_equal BrNfe::Service::Response::Paths::V1::ServicoConsultarLoteRpsResposta
19
+ end
20
+
21
+ it "#response_root_path" do
22
+ subject.response_root_path.must_equal []
23
+ end
24
+
25
+ it "#body_xml_path" do
26
+ subject.body_xml_path.must_equal [:consultar_lote_rps_response, :return]
27
+ end
28
+
29
+ it "#soap_body_root_tag" do
30
+ subject.soap_body_root_tag.must_equal 'consultarLoteRps'
31
+ end
32
+
33
+ describe "Validação do XML através do XSD" do
34
+ let(:schemas_dir) { BrNfe.root+'/test/br_nfe/service/thema/v1/xsd' }
35
+
36
+ describe "Validações a partir do arquivo XSD" do
37
+ it "Deve ser válido com 1 RPS com todas as informações preenchidas" do
38
+ Dir.chdir(schemas_dir) do
39
+ schema = Nokogiri::XML::Schema(IO.read('nfse.xsd'))
40
+ document = Nokogiri::XML(subject.xml_builder)
41
+ errors = schema.validate(document)
42
+ errors.must_be_empty
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,50 @@
1
+ require 'test_helper'
2
+
3
+ describe BrNfe::Service::Thema::V1::ConsultaNfsPorRps do
4
+ subject { FactoryGirl.build(:service_thema_v1_consulta_nfs_por_rps, emitente: emitente) }
5
+ let(:emitente) { FactoryGirl.build(:emitente) }
6
+ let(:rps) { subject.rps }
7
+
8
+ describe "superclass" do
9
+ it { subject.class.superclass.must_equal BrNfe::Service::Thema::V1::Base }
10
+ end
11
+
12
+ it "deve conter as regras de BrNfe::Service::Concerns::Rules::ConsultaNfsPorRps inclusas" do
13
+ subject.class.included_modules.must_include BrNfe::Service::Concerns::Rules::ConsultaNfsPorRps
14
+ end
15
+
16
+ describe "#method_wsdl" do
17
+ it { subject.method_wsdl.must_equal :consultar_nfse_por_rps }
18
+ end
19
+
20
+ it "#response_path_module" do
21
+ subject.response_path_module.must_equal BrNfe::Service::Response::Paths::V1::ServicoConsultarNfseRpsResposta
22
+ end
23
+
24
+ it "#response_root_path" do
25
+ subject.response_root_path.must_equal []
26
+ end
27
+ it "#body_xml_path" do
28
+ subject.body_xml_path.must_equal [:consultar_nfse_por_rps_response, :return]
29
+ end
30
+
31
+ it "#soap_body_root_tag" do
32
+ subject.soap_body_root_tag.must_equal 'consultarNfsePorRps'
33
+ end
34
+
35
+ describe "Validação do XML através do XSD" do
36
+ let(:schemas_dir) { BrNfe.root+'/test/br_nfe/service/thema/v1/xsd' }
37
+
38
+ describe "Validações a partir do arquivo XSD" do
39
+ it "Deve ser válido com 1 RPS com todas as informações preenchidas" do
40
+ Dir.chdir(schemas_dir) do
41
+ schema = Nokogiri::XML::Schema(IO.read('nfse.xsd'))
42
+ document = Nokogiri::XML(subject.xml_builder)
43
+ errors = schema.validate(document)
44
+ errors.must_be_empty
45
+ end
46
+ end
47
+ end
48
+ end
49
+
50
+ end
@@ -0,0 +1,50 @@
1
+ require 'test_helper'
2
+
3
+ describe BrNfe::Service::Thema::V1::ConsultaNfse do
4
+ subject { FactoryGirl.build(:service_thema_v1_consulta_nfse, emitente: emitente) }
5
+ let(:emitente) { FactoryGirl.build(:emitente) }
6
+ let(:rps) { subject.rps }
7
+
8
+ describe "superclass" do
9
+ it { subject.class.superclass.must_equal BrNfe::Service::Thema::V1::Base }
10
+ end
11
+
12
+ it "deve conter as regras de BrNfe::Service::Concerns::Rules::ConsultaNfsPorRps inclusas" do
13
+ subject.class.included_modules.must_include BrNfe::Service::Concerns::Rules::ConsultaNfse
14
+ end
15
+
16
+ describe "#method_wsdl" do
17
+ it { subject.method_wsdl.must_equal :consultar_nfse }
18
+ end
19
+
20
+ it "#response_path_module" do
21
+ subject.response_path_module.must_equal BrNfe::Service::Response::Paths::V1::ServicoConsultarNfseResposta
22
+ end
23
+
24
+ it "#response_root_path" do
25
+ subject.response_root_path.must_equal []
26
+ end
27
+ it "#body_xml_path" do
28
+ subject.body_xml_path.must_equal [:consultar_nfse_response, :return]
29
+ end
30
+
31
+ it "#soap_body_root_tag" do
32
+ subject.soap_body_root_tag.must_equal 'consultarNfse'
33
+ end
34
+
35
+ describe "Validação do XML através do XSD" do
36
+ let(:schemas_dir) { BrNfe.root+'/test/br_nfe/service/thema/v1/xsd' }
37
+
38
+ describe "Validações a partir do arquivo XSD" do
39
+ it "Deve ser válido com 1 RPS com todas as informações preenchidas" do
40
+ Dir.chdir(schemas_dir) do
41
+ schema = Nokogiri::XML::Schema(IO.read('nfse.xsd'))
42
+ document = Nokogiri::XML(subject.xml_builder)
43
+ errors = schema.validate(document)
44
+ errors.must_be_empty
45
+ end
46
+ end
47
+ end
48
+ end
49
+
50
+ end
@@ -0,0 +1,47 @@
1
+ require 'test_helper'
2
+
3
+ describe BrNfe::Service::Thema::V1::ConsultaSituacaoLoteRps do
4
+ subject { FactoryGirl.build(:service_thema_v1_consulta_situacao_lote_rps, emitente: emitente) }
5
+ let(:emitente) { FactoryGirl.build(:emitente) }
6
+
7
+ it { must validate_presence_of(:protocolo) }
8
+
9
+ describe "superclass" do
10
+ it { subject.class.superclass.must_equal BrNfe::Service::Thema::V1::ConsultaLoteRps }
11
+ end
12
+
13
+ describe "#method_wsdl" do
14
+ it { subject.method_wsdl.must_equal :consultar_situacao_lote_rps }
15
+ end
16
+
17
+ it "#response_path_module" do
18
+ subject.response_path_module.must_equal BrNfe::Service::Response::Paths::V1::ServicoConsultarSituacaoLoteRpsResposta
19
+ end
20
+
21
+ it "#response_root_path" do
22
+ subject.response_root_path.must_equal []
23
+ end
24
+
25
+ it "#body_xml_path" do
26
+ subject.body_xml_path.must_equal [:consultar_situacao_lote_rps_response, :return]
27
+ end
28
+
29
+ it "#soap_body_root_tag" do
30
+ subject.soap_body_root_tag.must_equal 'consultarSituacaoLoteRps'
31
+ end
32
+
33
+ describe "Validação do XML através do XSD" do
34
+ let(:schemas_dir) { BrNfe.root+'/test/br_nfe/service/thema/v1/xsd' }
35
+
36
+ describe "Validações a partir do arquivo XSD" do
37
+ it "Deve ser válido com 1 RPS com todas as informações preenchidas" do
38
+ Dir.chdir(schemas_dir) do
39
+ schema = Nokogiri::XML::Schema(IO.read('nfse.xsd'))
40
+ document = Nokogiri::XML(subject.xml_builder)
41
+ errors = schema.validate(document)
42
+ errors.must_be_empty
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end