Skip to content

21 - Melhorar análise estática - #49

Merged
rinaldoserra-dev merged 23 commits into
mainfrom
fix/21-melhorar-analise-estatica
Aug 12, 2026
Merged

rinaldoserra-dev merged 23 commits into
mainfrom
fix/21-melhorar-analise-estatica

Conversation

@marcio28

Copy link
Copy Markdown
Collaborator

#21

Inclui arquivos de configuração para padronizar estilo e análise de código C#. Define regras detalhadas de formatação, nomenclatura e severidade de analisadores. Configura propriedades comuns para projetos .NET 8 e adiciona referências aos analisadores Microsoft.CodeAnalysis.NetAnalyzers e StyleCop.Analyzers, garantindo aplicação consistente das regras em toda a solução.
Refatoração do nome da classe base de eventos de Event para Evento em todo o projeto, incluindo métodos, interfaces, testes e contextos do Entity Framework. Separação da classe ResponseErrorMessages em arquivo próprio. Ajustes de nomenclatura e organização em Entity, CommandHandler, Command e Message para maior clareza e aderência a padrões. Melhorias de formatação, inicialização de listas e uso de string.IsNullOrWhiteSpace. Atualização de métodos, propriedades e testes para refletir as mudanças de nomes. Pequenas correções para garantir consistência e funcionamento correto.
Atualiza e adiciona regras de análise de código no .editorconfig, incluindo sugestões para uso de vírgula à direita em inicializadores multilinha (SA1413), remoção de membros privados não utilizados (IDE0052), uso e nomenclatura de campos privados (SA1401, SA1306), entre outras. Algumas regras foram desabilitadas para melhor adequação ao projeto, visando padronização e melhoria da qualidade do código.
Refatoração de nomenclaturas para padronização e clareza. Extração de validações FluentValidation para arquivos próprios. Inclusão de propriedades e construtores protegidos em entidades para EF. Novos métodos em repositórios e ajustes em serviços/handlers. Renomeação de handlers de eventos e atualização de testes. Melhoria em logging, CORS e código de autorização. Ajustes em métodos de domínio, correções em testes e uso de recursos modernos do C#. Remoção de código morto e pequenas correções de sintaxe.
Foram atualizadas configurações no .editorconfig para personalizar a severidade das regras: IDE0022 desabilitada, IDE0301 e CA1305 definidas como sugestão. Essas mudanças permitem maior flexibilidade no uso dos analisadores de código no projeto.
Refatoração geral: separação de ViewModels, ajustes de propriedades, melhoria de legibilidade, padronização de nomes, centralização de validações, melhorias em testes, configurações e tratamento de erros. Pequenas correções e uso de sintaxe moderna do C#.
Refatoração e padronização de código em diversos arquivos, centralização de opções de serialização JSON, modernização de métodos de seed, melhorias e correções em endpoints de controllers, inclusão de endpoints públicos para cursos, ajustes no Swagger e melhorias de legibilidade sem alterar regras de negócio.
Foram criados arquivos de teste separados para CardHash, PaymentMethod, TransactionStatus e Transaction em PlataformaEducacao.GestaoFinanceira.Business.Tests.EduPag. O conteúdo correspondente foi removido de EduPagTests.cs, promovendo melhor organização e separação dos testes. Os novos testes cobrem geração de hash, enums e cenários de transação.
Foram adicionadas configurações ao .editorconfig para sugerir melhorias relacionadas à atribuição desnecessária de valores (IDE0059), possíveis argumentos de referência nula (CS8604) e uso de Any() ao invés de Count()/LongCount() (CA1827). Essas regras agora aparecem como sugestões no ambiente de desenvolvimento.
Refatoração e reorganização dos testes de integração, extraindo fakes de serviços para arquivos separados e criando utilitários padronizados de resposta. Padronização dos nomes das fixtures e coleções, melhorias de legibilidade, remoção de duplicidades e ajustes para compatibilidade com novas implementações. Correções em asserts e inicialização de strings, eliminando warnings de nullability.
Padronização e refatoração dos testes de integração, com ajustes em fixtures e helpers para garantir consistência na desserialização de respostas HTTP e manipulação de erros. Criação/ajuste de IntegrationTestsFixture<TProgram>.cs e ResponseApi.cs, atualização do ResponseResult para novo padrão de propriedades, extração do FakeMessageBus para facilitar injeção de dependências, melhorias de nomenclatura e uso de string.Empty, além da reorganização dos imports/usings.
Classes de teste e utilitários marcados como sealed para evitar herança. Implementação correta de Dispose nos testes, substituindo NotImplementedException. Ajustes de estilo, como uso de string.Empty e organização de usings. Adicionada propriedade Data em ResponseApi<T>. Refatoração sem impacto na lógica de negócio, focada em clareza e manutenção.
- Atualiza Microsoft.CodeAnalysis.NetAnalyzers para 10.0.302 em Directory.Build.props.
- Refatora testes de enumeração para usar Enum.GetNames<TEnum>() e Enum.Parse<TEnum>() (C# 11/.NET 7) em SituacaoCursoTest.cs e SituacaoMatriculaTest.cs.
- Renomeia e migra IntegrationTestsFixture{TProgram}.cs e ResponseApi{T}.cs para IntegrationTestsFixtureTProgram.cs e ResponseApi.cs, apenas reorganização sem mudanças de lógica.
@marcio28 marcio28 linked an issue Aug 11, 2026 that may be closed by this pull request
2 tasks
Foram criados testes unitários na classe MessageBusTests para verificar a delegação correta dos métodos para a instância interna de IBus. Os testes abrangem Publish, PublishAsync, Subscribe, SubscribeAsync, Request, RequestAsync, Respond e RespondAsync, utilizando mocks e classes auxiliares. Também foram adicionados os usings necessários para Moq, Xunit e demais dependências.
Foram adicionados os atributos [ExcludeFromCodeCoverage] em todas as classes de migração e snapshots de contexto, além dos imports de System.Diagnostics.CodeAnalysis necessários. Também foi configurado o MessageBus em MessageBusConfig.cs utilizando métodos utilitários para obter a conexão a partir da configuração.
Foram adicionados testes unitários ao projeto PlataformaEducacao.GestaoConteudo.Data.Tests, incluindo configuração do .csproj com xUnit, coverlet e EF Core InMemory. Criado CursoRepositoryTests para validar ObterAulaPorCursoIdEAulaId. No projeto de testes do MessageBus, criados arquivos auxiliares EventoTeste.cs e RespostaTeste.cs, e ajustados testes existentes para novo construtor de RespostaTeste. Adicionados dois testes para TryConnect da MessageBus. Atualizada a solução para incluir o novo projeto de testes.
Foram criados testes para o método RefreshToken do IdentidadeController, cobrindo cenários de request nulo, token vazio e token expirado. Implementação fake de IAutenticacaoService foi utilizada para simular comportamentos nos testes.
Removido o uso do operador de supressão de nulidade (!) em várias partes do código, substituindo por chamadas diretas. Propriedades DbSet foram marcadas como required, reforçando a obrigatoriedade de inicialização. Essas alterações aumentam a segurança contra nulidade e melhoram a clareza do código, reduzindo riscos de exceções em tempo de execução.
As propriedades DbSet foram inicializadas com = default!; e o modificador required foi removido. O construtor explícito foi adicionado à classe GestaoConteudoContext, separando a declaração da classe da inicialização das propriedades.
Foi adicionada a inicialização com default! à propriedade RefreshTokens em GestaoIdentidadeContext para evitar avisos de nulabilidade.
O parâmetro end_of_line foi alterado de crlf para lf no arquivo .editorconfig, garantindo que todas as quebras de linha utilizem o formato LF (Line Feed) em vez de CRLF (Carriage Return + Line Feed). Isso melhora a consistência do projeto entre diferentes sistemas operacionais.
@rinaldoserra-dev
rinaldoserra-dev merged commit ea1c2b6 into main Aug 12, 2026
3 checks passed
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.

Melhorar análise estática

3 participants