Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Teste/luiz-henrique-da-costa #82

Open
wants to merge 15 commits into
base: main
Choose a base branch
from

Conversation

lhcosta93
Copy link

Este Pull Request realiza a refatoração e a implementação de novos métodos relacionados ao cálculo de valores para o sistema de faturamento. As mudanças incluem a adição de interfaces e classes responsáveis pelos cálculos de valores base, valores adicionais e créditos de audiência. Também foram implementados novos testes para garantir a precisão desses cálculos. Além disso, todos os valores fixos foram alterados para permitir a persistência e oferecer flexibilidade e escalabilidade para a adição de novos gêneros de peças.

Principais Alterações:

Implementação das Interfaces e Classes:
ICalculateBaseAmountPerLine e CalculateBaseAmountPerLine: Interface e implementação para calcular o valor base por linha.
ICalculateAdditionalValuePerPlayType e CalculateAdditionalValuePerPlayType: Interface e implementação para calcular valores adicionais por tipo de peça.
ICalculateCreditAudience e CalculateCreditAudience: Interface e implementação para calcular créditos baseados na audiência.

Atualização dos Valores Fixos:
Todos os valores fixos foram substituídos por valores configuráveis e persistentes, permitindo que sejam armazenados no banco de dados. Isso melhora a flexibilidade do sistema e facilita a adição de novos gêneros de peças sem a necessidade de alterações no código-fonte.

Implementação dos Métodos de Impressão:
InvoicePrintText: Implementa a interface IInvoicePrint para gerar relatórios em texto.
InvoicePrintXML: Implementa a interface IInvoicePrint para gerar relatórios em XML.

Implementação do Contexto do Banco de Dados:
ApplicationDbContext: Atualização das definições de DbSet para refletir as novas entidades e configurações, incluindo as novas configurações de peças e créditos.

Implementação do Controlador de API com Swagger:
InvoiceController: Atualização para utilizar o novo StatementPrinter e suas dependências, além de habilitar a documentação com Swagger.

Adição de Testes:
Testes de Cálculo de Valores: Implementação de testes para verificar a precisão dos cálculos de valores base e valores adicionais.
CalculateBaseAmount_ValidLines_ReturnsExpectedAmount: Testa o cálculo do valor base para um número específico de linhas.
CalculateAdditionalValue_ForAudienceAboveThreshold_ReturnsExpectedAmount: Testa o cálculo de valores adicionais quando a audiência está acima do limite.
CalculateAdditionalValue_ForAudienceBelowThreshold_ReturnsExpectedAmount: Testa o cálculo de valores adicionais quando a audiência está abaixo do limite.

Impacto:
Essas mudanças melhoram a estrutura e a manutenção do código, garantindo que as lógicas de cálculo sejam devidamente testadas e validadas. A refatoração segue os princípios do Clean Code e melhora a clareza e a testabilidade do código. A atualização dos valores fixos para configurações persistentes oferece maior flexibilidade e escalabilidade, permitindo a adaptação às necessidades futuras do sistema.

Testes:
Todos os testes foram executados e passaram com sucesso. Os testes cobrem os cálculos base e adicionais e garantem que os valores retornados estão de acordo com as expectativas.

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.

1 participant