fix: destrava 21 testes pre-existentes do DanfeSharp.Test#44
Open
rhfranzoni wants to merge 3 commits into
Open
fix: destrava 21 testes pre-existentes do DanfeSharp.Test#44rhfranzoni wants to merge 3 commits into
rhfranzoni wants to merge 3 commits into
Conversation
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>
There was a problem hiding this comment.
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çarNotImplementedExceptionem valores não mapeados e adiciona suporte aContingenciaOffLineNFCe. - Corrige erro de compilação no
FabricaFakecom cast explícitodouble -> decimalemvFCPUFDest. - Remove métodos de “dev sandbox” em
DanfeTestcom paths locais hardcoded e referência aDanfeCCC(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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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 comNotImplementedExceptionemTextoReservadoFisco). 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
TipoEmissaolançavathrow new NotImplementedException()no default — disparado sempre que o ViewModel é construído sem atribuirTipoEmissao(caso comum:FabricaFake.DanfeViewModel_1()não atribui, enum fica no valor default0, fora do conjunto mapeado). Também faltavaFormaEmissao.ContingenciaOffLineNFCe = 9no switch.Fix: switch retorna
nullno default; método sai comstring.EmptysecontingencyType == null. AdicionadoContingenciaOffLineNFCe.2.
DanfeTest.GerarDanfeEventoXmlreferenciavaDanfeCCC(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 errosdotnet vstest DanfeSharp.Test/bin/Debug/DanfeSharp.Test.dll-> 27 passed, 0 failedContingencia_SVC_AN,Contingencia_SVC_RS) continuam gerando PDF corretamenteNotas
origin/main- independente das features Revenda Mais (Corrigir renderização da coluna O/CSOSN (separador + rótulo por regime) #38, Renderizar bloco FORMA DE PAGAMENTO na DANFE (grupo <pag> do XML) #39, Suportar DANFE de NF-e cancelada com marca d'água CANCELADA #40, feat(danfe): ajustes Revenda Mais (CST/CSOSN + Forma de Pagamento + Marca Cancelada) #43)🤖 Generated with Claude Code