br_nfe 1.1.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -1,62 +0,0 @@
1
- require 'test_helper'
2
-
3
- describe BrNfe::Servico::Betha::V2::GeraNfse do
4
- subject { FactoryGirl.build(:br_nfe_servico_betha_v2_gera_nfse, emitente: emitente, rps: rps, certificate_pkcs12: certificado) }
5
- let(:emitente) { FactoryGirl.build(:emitente) }
6
- let(:rps) { FactoryGirl.build(:br_nfe_rps) }
7
- let(:certificado) { Certificado.new }
8
-
9
- describe "inheritance class" do
10
- it { subject.class.superclass.must_equal BrNfe::Servico::Betha::V2::Gateway }
11
- end
12
-
13
- describe "validations" do
14
-
15
- context "validações do certificado" do
16
- before { subject.certificate_pkcs12 = nil }
17
- it { must validate_presence_of(:certificate) }
18
- it { must validate_presence_of(:certificate_key) }
19
- end
20
- context "deve validar o rps" do
21
- it "quando o rps for válido não deve setar nenhuma mensagem no objeto" do
22
- rps.stubs(:errors).returns(stub(full_messages: ["Erro rps"]))
23
- sequence_1 = sequence('sequence_1')
24
- rps.expects(:validar_recepcao_rps=).with(true).in_sequence(sequence_1)
25
- rps.expects(:invalid?).returns(false).in_sequence(sequence_1)
26
- subject.valid?.must_equal true
27
- subject.errors.full_messages.must_equal( [] )
28
- end
29
- it "quando o rps for inválido deve setar mensagem de erro no objeto" do
30
- rps.stubs(:errors).returns(stub(full_messages: ["Erro rps"]))
31
- sequence_1 = sequence('sequence_1')
32
- rps.expects(:validar_recepcao_rps=).with(true).in_sequence(sequence_1)
33
- rps.expects(:invalid?).returns(true).in_sequence(sequence_1)
34
- subject.valid?.must_equal false
35
- subject.errors.full_messages.must_equal( ["RPS: Erro rps"] )
36
- end
37
-
38
- end
39
- end
40
-
41
- describe "#method_wsdl" do
42
- it { subject.method_wsdl.must_equal :gerar_nfse }
43
- end
44
-
45
- describe "#xml_builder" do
46
- it "não ocorre erro" do
47
- subject.stubs(:assinatura_xml).returns('<Signature>signed</Signature>')
48
- subject.xml_builder.class.must_equal Nokogiri::XML::Builder
49
- end
50
- it "estrutura" do
51
- subject.expects(:xml_rps_assinado).returns( Nokogiri::XML::Builder.new{|x| x.RpsAssinado 'valor rps assinado'} )
52
- xml = subject.xml_builder.doc
53
-
54
- xml.namespaces.must_equal({"xmlns"=>"http://www.betha.com.br/e-nota-contribuinte-ws"})
55
- xml.remove_namespaces!
56
-
57
- xml.xpath('GerarNfseEnvio/RpsAssinado').first.text.must_equal 'valor rps assinado'
58
- end
59
- end
60
-
61
-
62
- end
@@ -1,108 +0,0 @@
1
- require 'test_helper'
2
-
3
- describe BrNfe::Servico::Betha::V2::RecepcaoLoteRps do
4
- subject { FactoryGirl.build(:br_nfe_servico_betha_v2_recepcao_lote_rps, emitente: emitente) }
5
- let(:emitente) { FactoryGirl.build(:emitente) }
6
-
7
- describe "inheritance class" do
8
- it { subject.class.superclass.must_equal BrNfe::Servico::Betha::V2::Gateway }
9
- end
10
-
11
- describe "validations" do
12
- it { must validate_presence_of(:numero_lote_rps) }
13
-
14
- context "validações do certificado" do
15
- before { subject.certificate_pkcs12 = nil }
16
- it { must validate_presence_of(:certificate) }
17
- it { must validate_presence_of(:certificate_key) }
18
- end
19
-
20
- it "deve chamar o metodo validar_lote_rps" do
21
- subject.expects(:validar_lote_rps)
22
- subject.valid?
23
- end
24
- end
25
-
26
- describe "#method_wsdl" do
27
- it { subject.method_wsdl.must_equal :recepcionar_lote_rps }
28
- end
29
-
30
- describe "#xml_builder" do
31
- it "não ocorre erro" do
32
- subject.stubs(:assinatura_xml).returns('<Signature>signed</Signature>')
33
- subject.xml_builder.class.must_equal Nokogiri::XML::Builder
34
- end
35
- it "estrutura" do
36
- subject.numero_lote_rps = 88966
37
- lote_rps_xml = Nokogiri::XML::Builder.new{|x| x.LoteRps 'valor loterps'}
38
- subject.expects(:lote_rps_xml).returns(lote_rps_xml)
39
- subject.expects(:assinatura_xml).with(lote_rps_xml.doc.root.to_s, '#lote88966').returns('<Signature>signed</Signature>')
40
- xml = subject.xml_builder.doc
41
-
42
- xml.namespaces.must_equal({"xmlns"=>"http://www.betha.com.br/e-nota-contribuinte-ws"})
43
- xml.remove_namespaces!
44
-
45
- xml.xpath('EnviarLoteRpsEnvio/LoteRps').first.text.must_equal 'valor loterps'
46
- xml.xpath('EnviarLoteRpsEnvio/Signature').first.text.must_equal 'signed'
47
- end
48
- end
49
-
50
- describe "#lote_rps_xml" do
51
- let(:rps1) { FactoryGirl.build(:br_nfe_rps, numero: '1') }
52
- let(:rps2) { FactoryGirl.build(:br_nfe_rps, numero: '2') }
53
-
54
- before do
55
- subject.stubs(:assinatura_xml).returns('<Signature>signed</Signature>')
56
- subject.assign_attributes({
57
- numero_lote_rps: '5568'.ljust(50, '1'),
58
- emitente: {
59
- cnpj: '66.554.778/9654-12',
60
- inscricao_municipal: '6565498713134687984313868135798'
61
- },
62
- lote_rps: [rps1, rps2]
63
- })
64
- end
65
-
66
- it "estrutura com env = production" do
67
- subject.env = :production
68
- sequence1 = sequence('sequence1')
69
- subject.expects(:xml_rps_assinado).with(rps1).in_sequence(sequence1).returns(Nokogiri::XML::Builder.new{|x| x.Rps 'valor rps1'})
70
- subject.expects(:xml_rps_assinado).with(rps2).in_sequence(sequence1).returns(Nokogiri::XML::Builder.new{|x| x.Rps 'valor rps2'})
71
-
72
- xml = subject.send(:lote_rps_xml).doc
73
-
74
- xml.xpath('LoteRps').first.attr('Id').must_equal "lote#{'5568'.ljust(50, '1')}"
75
- xml.xpath('LoteRps').first.attr('versao').must_equal '2.02'
76
-
77
- xml.xpath('LoteRps/NumeroLote').first.text.must_equal '556811111111111'
78
- xml.xpath('LoteRps/CpfCnpj/Cnpj').first.text.must_equal '66554778965412'
79
- xml.xpath('LoteRps/InscricaoMunicipal').first.text.must_equal '656549871313468'
80
- xml.xpath('LoteRps/QuantidadeRps').first.text.must_equal '2'
81
-
82
- xml.xpath('LoteRps/ListaRps/Rps').first.text.must_equal 'valor rps1'
83
- xml.xpath('LoteRps/ListaRps/Rps').last.text.must_equal 'valor rps2'
84
- end
85
-
86
- it "estrutura com env = test" do
87
- subject.env = :test
88
- sequence1 = sequence('sequence1')
89
- subject.expects(:xml_rps_assinado).with(rps1).in_sequence(sequence1).returns(Nokogiri::XML::Builder.new{|x| x.Rps 'valor rps1'})
90
- subject.expects(:xml_rps_assinado).with(rps2).in_sequence(sequence1).returns(Nokogiri::XML::Builder.new{|x| x.Rps 'valor rps2'})
91
-
92
- xml = subject.send(:lote_rps_xml).doc
93
-
94
- xml.xpath('LoteRps').first.attr('Id').must_equal "lote#{'5568'.ljust(50, '1')}"
95
- xml.xpath('LoteRps').first.attr('versao').must_equal '2.02'
96
-
97
- xml.xpath('LoteRps/NumeroLote').first.text.must_equal '556811111111111'
98
- xml.xpath('LoteRps/CpfCnpj/Cnpj').first.text.must_equal '66554778965412'
99
- xml.xpath('LoteRps/InscricaoMunicipal').first.must_be_nil
100
- xml.xpath('LoteRps/QuantidadeRps').first.text.must_equal '2'
101
-
102
- xml.xpath('LoteRps/ListaRps/Rps').first.text.must_equal 'valor rps1'
103
- xml.xpath('LoteRps/ListaRps/Rps').last.text.must_equal 'valor rps2'
104
- end
105
- end
106
-
107
-
108
- end
@@ -1,84 +0,0 @@
1
- require 'test_helper'
2
-
3
- describe BrNfe::Servico::Betha::V2::SubstituicaoNfse do
4
- subject { FactoryGirl.build(:br_nfe_servico_betha_v2_substituicao_nfse, emitente: emitente, rps: rps, certificate_pkcs12: certificado) }
5
- let(:emitente) { FactoryGirl.build(:emitente) }
6
- let(:rps) { FactoryGirl.build(:br_nfe_rps) }
7
- let(:certificado) { Certificado.new }
8
-
9
- describe "inheritance class" do
10
- it { subject.class.superclass.must_equal BrNfe::Servico::Betha::V2::Gateway }
11
- end
12
-
13
- describe "validations" do
14
- context "validações do certificado" do
15
- before { subject.certificate_pkcs12 = nil }
16
- it { must validate_presence_of(:certificate) }
17
- it { must validate_presence_of(:certificate_key) }
18
- end
19
- it { must validate_presence_of(:numero_nfse) }
20
- it { must validate_presence_of(:codigo_cancelamento) }
21
-
22
- context "deve validar o rps" do
23
- it "quando o rps for válido não deve setar nenhuma mensagem no objeto" do
24
- rps.stubs(:errors).returns(stub(full_messages: ["Erro rps"]))
25
- sequence_1 = sequence('sequence_1')
26
- rps.expects(:validar_recepcao_rps=).with(true).in_sequence(sequence_1)
27
- rps.expects(:invalid?).returns(false).in_sequence(sequence_1)
28
- subject.valid?.must_equal true
29
- subject.errors.full_messages.must_equal( [] )
30
- end
31
- it "quando o rps for inválido deve setar mensagem de erro no objeto" do
32
- rps.stubs(:errors).returns(stub(full_messages: ["Erro rps"]))
33
- sequence_1 = sequence('sequence_1')
34
- rps.expects(:validar_recepcao_rps=).with(true).in_sequence(sequence_1)
35
- rps.expects(:invalid?).returns(true).in_sequence(sequence_1)
36
- subject.valid?.must_equal false
37
- subject.errors.full_messages.must_equal( ["RPS: Erro rps"] )
38
- end
39
-
40
- end
41
- end
42
-
43
- describe "#method_wsdl" do
44
- it { subject.method_wsdl.must_equal :substituir_nfse }
45
- end
46
-
47
- describe "#xml_builder" do
48
- it "não ocorre erro" do
49
- subject.stubs(:assinatura_xml).returns('<Signature>signed</Signature>')
50
- subject.xml_builder.class.must_equal Nokogiri::XML::Builder
51
- end
52
- it "estrutura" do
53
- xml_substituicao = Nokogiri::XML::Builder.new{|x| x.Substituicao 'valor subs'}
54
- subject.expects(:xml_substituicao_nfse).returns(xml_substituicao)
55
- subject.expects(:assinatura_xml).with(xml_substituicao.doc.root.to_s, '#substituicao').returns('<Signature>signed</Signature>')
56
- xml = subject.xml_builder.doc
57
-
58
- xml.namespaces.must_equal({"xmlns"=>"http://www.betha.com.br/e-nota-contribuinte-ws"})
59
- xml.remove_namespaces!
60
-
61
- xml.xpath('SubstituirNfseEnvio/Substituicao').first.text.must_equal 'valor subs'
62
- xml.xpath('SubstituirNfseEnvio/Signature').first.text.must_equal 'signed'
63
- end
64
- end
65
-
66
- describe "#xml_substituicao_nfse" do
67
- it "não ocorre erro" do
68
- subject.stubs(:assinatura_xml).returns('<Signature>signed</Signature>')
69
- subject.xml_substituicao_nfse.class.must_equal Nokogiri::XML::Builder
70
- end
71
- it "estrutura" do
72
- sequence1 = sequence('sequence1')
73
- subject.expects(:xml_pedido_cancelamento_assinado).in_sequence(sequence1).returns(Nokogiri::XML::Builder.new{|x| x.Pedido 'valor pedido'})
74
- subject.expects(:xml_rps_assinado).with(rps).in_sequence(sequence1).returns(Nokogiri::XML::Builder.new{|x| x.Rps 'valor rps'})
75
- xml = subject.xml_substituicao_nfse.doc
76
-
77
- xml.xpath('SubstituicaoNfse').first.attr('Id').must_equal 'substituicao'
78
- xml.xpath('SubstituicaoNfse/Pedido').first.text.must_equal 'valor pedido'
79
- xml.xpath('SubstituicaoNfse/Rps').first.text.must_equal 'valor rps'
80
- end
81
- end
82
-
83
-
84
- end
@@ -1,54 +0,0 @@
1
- require 'test_helper'
2
-
3
- describe BrNfe::Servico::Response::Default do
4
- subject { FactoryGirl.build(:response_default) }
5
-
6
- describe "#success?" do
7
- it "when is true" do
8
- subject.success = true
9
- subject.success?.must_equal true
10
- end
11
-
12
- it "when is false" do
13
- subject.success = false
14
- subject.success?.must_equal false
15
- end
16
- end
17
-
18
- describe "#notas_fiscais" do
19
- it "deve inicializar como um vetor vazio" do
20
- subject.class.new.notas_fiscais.must_equal []
21
- end
22
-
23
- it "posso utilizar o << para adicionar valores" do
24
- new_object = subject.class.new
25
- new_object.notas_fiscais << 'x'
26
- new_object.notas_fiscais << 'y'
27
- new_object.notas_fiscais.must_equal ['x','y']
28
- end
29
-
30
- it "sempre retorna um array" do
31
- subject.notas_fiscais = {valor: '2'}
32
- subject.notas_fiscais.must_equal [{valor: '2'}]
33
- end
34
- end
35
-
36
- describe "#error_messages" do
37
- it "deve inicializar como um vetor vazio" do
38
- subject.class.new.error_messages.must_equal []
39
- end
40
-
41
- it "posso utilizar o << para adicionar valores" do
42
- new_object = subject.class.new
43
- new_object.error_messages << 'aaa'
44
- new_object.error_messages << 'bbbbb'
45
- new_object.error_messages.must_equal ['aaa','bbbbb']
46
- end
47
-
48
- it "sempre retorna um array" do
49
- subject.error_messages = {valor: '2'}
50
- subject.error_messages.must_equal [{valor: '2'}]
51
- end
52
- end
53
-
54
- end
@@ -1,5 +0,0 @@
1
- FactoryGirl.define do
2
- factory :br_nfe_servico_base, class: BrNfe::Servico::Base do
3
- numero_lote_rps '1'
4
- end
5
- end
@@ -1,5 +0,0 @@
1
- FactoryGirl.define do
2
- factory :br_nfe_servico_betha_base, class: BrNfe::Servico::Betha::Base do
3
- numero_lote_rps '1'
4
- end
5
- end
@@ -1,6 +0,0 @@
1
- FactoryGirl.define do
2
- factory :betha_v1_build_response, class: BrNfe::Servico::Betha::V1::BuildResponse do
3
- hash { {first_key_resposta: {protocolo: '123', data_recebimento: Date.today, numero_lote: '111'} } }
4
- nfe_method :first_key
5
- end
6
- end
@@ -1,7 +0,0 @@
1
- FactoryGirl.define do
2
- factory :servico_betha_cancelamento_nfs, class: BrNfe::Servico::Betha::V1::CancelamentoNfs do
3
- numero_nfse '3365'
4
- codigo_cancelamento '1'
5
-
6
- end
7
- end
@@ -1,8 +0,0 @@
1
- FactoryGirl.define do
2
- factory :servico_betha_consulta_nfse, class: BrNfe::Servico::Betha::V1::ConsultaNfse do
3
- numero_nfse '5566778'
4
- data_inicial { Date.yesterday }
5
- data_final { Date.today }
6
- emitente { FactoryGirl.build(:emitente) }
7
- end
8
- end
@@ -1,6 +0,0 @@
1
- FactoryGirl.define do
2
- factory :br_nfe_servico_betha_recepcao_lote_rps, class: BrNfe::Servico::Betha::V1::RecepcaoLoteRps do
3
- numero_lote_rps '123'
4
- operacao '1'
5
- end
6
- end
@@ -1,7 +0,0 @@
1
- FactoryGirl.define do
2
- factory :br_nfe_servico_betha_v2_cancelamento_nfs, class: BrNfe::Servico::Betha::V2::CancelamentoNfs do
3
- emitente { FactoryGirl.build(:emitente) }
4
- numero_nfse '5664'
5
- codigo_cancelamento '1'
6
- end
7
- end
@@ -1,6 +0,0 @@
1
- FactoryGirl.define do
2
- factory :br_nfe_servico_betha_v2_consulta_lote_rps, class: BrNfe::Servico::Betha::V2::ConsultaLoteRps do
3
- emitente { FactoryGirl.build(:emitente) }
4
- protocolo '65987946798'
5
- end
6
- end
@@ -1,6 +0,0 @@
1
- FactoryGirl.define do
2
- factory :br_nfe_servico_betha_v2_consulta_nfse_por_rps, class: BrNfe::Servico::Betha::V2::ConsultaNfsePorRps do
3
- emitente { FactoryGirl.build(:emitente) }
4
- rps { FactoryGirl.build(:br_nfe_rps) }
5
- end
6
- end
@@ -1,5 +0,0 @@
1
- FactoryGirl.define do
2
- factory :br_nfe_servico_betha_v2_envio_lote_rps_sincrono, class: BrNfe::Servico::Betha::V2::EnvioLoteRpsSincrono do
3
- emitente { FactoryGirl.build(:emitente) }
4
- end
5
- end
@@ -1,5 +0,0 @@
1
- FactoryGirl.define do
2
- factory :br_nfe_servico_betha_v2_gateway, class: BrNfe::Servico::Betha::V2::Gateway do
3
-
4
- end
5
- end
@@ -1,6 +0,0 @@
1
- FactoryGirl.define do
2
- factory :br_nfe_servico_betha_v2_gera_nfse, class: BrNfe::Servico::Betha::V2::GeraNfse do
3
- emitente { FactoryGirl.build(:emitente) }
4
- rps { FactoryGirl.build(:br_nfe_rps) }
5
- end
6
- end
@@ -1,5 +0,0 @@
1
- FactoryGirl.define do
2
- factory :br_nfe_servico_betha_v2_recepcao_lote_rps, class: BrNfe::Servico::Betha::V2::RecepcaoLoteRps do
3
- emitente { FactoryGirl.build(:emitente) }
4
- end
5
- end
@@ -1,8 +0,0 @@
1
- FactoryGirl.define do
2
- factory :br_nfe_servico_betha_v2_substituicao_nfse, class: BrNfe::Servico::Betha::V2::SubstituicaoNfse do
3
- emitente { FactoryGirl.build(:emitente) }
4
- rps { FactoryGirl.build(:br_nfe_rps) }
5
- numero_nfse '5526'
6
- codigo_cancelamento '1'
7
- end
8
- end
@@ -1,10 +0,0 @@
1
- FactoryGirl.define do
2
- factory :response_default, class: BrNfe::Servico::Response::Default do
3
- success true
4
- error_messages {[]}
5
- notas_fiscais { [FactoryGirl.build(:response_nota_fiscal)] }
6
- protocolo '6988965463213549'
7
- data_recebimento { DateTime.parse('10/09/2015 03:00:00') }
8
- numero_lote '111'
9
- end
10
- end
@@ -1,44 +0,0 @@
1
- FactoryGirl.define do
2
- factory :br_nfe_rps, class: BrNfe::Servico::Rps do
3
- destinatario { FactoryGirl.build(:destinatario) }
4
- numero 556
5
- serie 'SN'
6
- tipo '1'
7
- data_emissao DateTime.now
8
- status '1'
9
- competencia Date.today
10
- valor_servicos '349.00'
11
- valor_deducoes '0.0'
12
- valor_pis '0.0'
13
- valor_cofins '0.0'
14
- valor_inss '0.0'
15
- valor_ir '0.0'
16
- valor_csll '0.0'
17
- outras_retencoes '0.0'
18
- valor_iss '6.98'
19
- aliquota '0.02'
20
- base_calculo '349.00'
21
- desconto_incondicionado '0.0'
22
- desconto_condicionado '0.0'
23
- iss_retido '2'
24
- responsavel_retencao ''
25
- item_lista_servico '0107'
26
- discriminacao "MENSALIDADE PLANO PRO. 349,00 \n\nValor Aprox dos Tributos: R$ 6,59 Federal, R$ 0,00 Estadual e R$ 1,62 Municipal \n Fonte: IBPT/FECOMERCIO SC 5oi7eW"
27
- exigibilidade_iss ''
28
- codigo_municipio '4204202'
29
- numero_processo ''
30
- codigo_cnae '6202300'
31
-
32
- trait :completo do
33
- codigo_tributacao_municipio '6699'
34
- condicao_pagamento { FactoryGirl.build(:condicao_pagamento, :a_prazo) }
35
- intermediario { FactoryGirl.build(:intermediario) }
36
- numero_substituicao '555'
37
- serie_substituicao 'SN'
38
- tipo_substituicao '1'
39
- codigo_obra '66'
40
- codigo_art '223'
41
- outras_informacoes 'info a mais'
42
- end
43
- end
44
- end