Skip to content

fix: destrava 21 testes pre-existentes do DanfeSharp.Test#44

Open
rhfranzoni wants to merge 3 commits into
mainfrom
fix/textoreservadofisco-default
Open

fix: destrava 21 testes pre-existentes do DanfeSharp.Test#44
rhfranzoni wants to merge 3 commits into
mainfrom
fix/textoreservadofisco-default

Conversation

@rhfranzoni
Copy link
Copy Markdown

Resumo

Destrava o test suite do DanfeSharp.Test: antes do PR a suite tinha 3 erros de compilação + 21 testes falhando em runtime (todos com NotImplementedException em TextoReservadoFisco). Depois: 27/27 verdes.

Três problemas distintos, fixados em conjunto porque um bloqueava a verificação do outro.

1. DanfeViewModel.TextoReservadoFisco() (raiz das 21 falhas)

Switch sobre TipoEmissao lançava throw new NotImplementedException() no default — disparado sempre que o ViewModel é construído sem atribuir TipoEmissao (caso comum: FabricaFake.DanfeViewModel_1() não atribui, enum fica no valor default 0, fora do conjunto mapeado). Também faltava FormaEmissao.ContingenciaOffLineNFCe = 9 no switch.

Fix: switch retorna null no default; método sai com string.Empty se contingencyType == null. Adicionado ContingenciaOffLineNFCe.

2. DanfeTest.GerarDanfeEventoXml referenciava DanfeCCC (removido em 2c6bf64, jan/2022)

Test project não compilava em main desde então. Removidos 3 metodos "personal dev sandbox" com caminhos locais hardcoded (D:\teste\, C:\works\Companies\nfe\João\pdf, C:\Users\BrunoAlencar\Documents\pdf).

3. FabricaFake.vFCPUFDest = v (CS0266 double->decimal?)

Cast explicito (decimal)v.

Test plan

  • dotnet build DanfeSharp.sln -> 0 erros
  • dotnet vstest DanfeSharp.Test/bin/Debug/DanfeSharp.Test.dll -> 27 passed, 0 failed
  • Validar manualmente que os 2 testes existentes de contingencia (Contingencia_SVC_AN, Contingencia_SVC_RS) continuam gerando PDF corretamente

Notas

🤖 Generated with Claude Code

Tres problemas distintos faziam o suite quebrar em main:

1. TextoReservadoFisco() lancava NotImplementedException quando
   TipoEmissao caia no caso default do switch — situacao normal
   ao construir o ViewModel programaticamente (FabricaFake nao
   atribui TipoEmissao, default = 0 do enum). Switch reescrito
   para retornar null no default + string.Empty na saida, e
   adicionado ContingenciaOffLineNFCe (mapeado para "Off-Line NFCe"
   conforme NT NFC-e).

2. DanfeTest.GerarDanfeEventoXml referenciava o tipo DanfeCCC,
   removido do projeto em 2c6bf64 (jan/2022, renomeado para
   DanfeCartaCorrecao) — o test project nao compilava em main
   desde entao. Removido junto com outros 2 metodos da mesma
   classe (GerarDanfeNFCXml, GerarDanfeXml) que usavam caminhos
   locais hardcoded de maquinas pessoais de desenvolvedores
   (D:\teste\, C:\works\Companies\nfe\Joao\pdf,
   C:\Users\BrunoAlencar\Documents\pdf).

3. FabricaFake.CalculoImpostoViewModel atribuia double 'v' ao
   campo vFCPUFDest que e decimal? — erro CS0266 ao compilar.
   Cast explicito (decimal)v.

Suite agora: 27 testes, todos verdes. Antes: 21 com falha
(NotImplementedException) + 3 erros de compilacao.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 28, 2026 21:50
@rhfranzoni rhfranzoni requested a review from john182 May 28, 2026 21:52
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Este PR destrava o test suite do DanfeSharp.Test ao remover falhas de compilação e eliminar exceções em runtime geradas por valores default/inesperados no DanfeViewModel, garantindo que os testes voltem a executar de forma determinística.

Changes:

  • Ajusta DanfeViewModel.TextoReservadoFisco() para não lançar NotImplementedException em valores não mapeados e adiciona suporte a ContingenciaOffLineNFCe.
  • Corrige erro de compilação no FabricaFake com cast explícito double -> decimal em vFCPUFDest.
  • Remove métodos de “dev sandbox” em DanfeTest com paths locais hardcoded e referência a DanfeCCC (inexistente), substituindo por nota orientando uso de fixtures versionadas.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

File Description
DanfeSharp/Modelo/DanfeViewModel.cs Evita exceção em TextoReservadoFisco() para TipoEmissao default/fora do switch e inclui contingência offline NFC-e.
DanfeSharp.Test/FabricaFake.cs Resolve incompatibilidade de tipos atribuindo vFCPUFDest com cast para decimal.
DanfeSharp.Test/DanfeTest.cs Remove testes locais não determinísticos/que não compilavam (paths hardcoded e DanfeCCC).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread DanfeSharp/Modelo/DanfeViewModel.cs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants