21 - Melhorar análise estática - #49
Merged
Merged
Conversation
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.
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.
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.
#21