From 0eecbd59077e49da26de72a91c897c301251da31 Mon Sep 17 00:00:00 2001 From: Dmitrii Cravcenco Date: Tue, 5 Dec 2023 10:11:10 +0200 Subject: [PATCH] Income Testing Add --- .../expensetrackerfaf/model/Income.java | 1 + .../faf223/expensetrackerfaf/model/User.java | 4 +- .../repository/IncomeRepositoryTest.java | 122 ++++++++++++++++++ 3 files changed, 125 insertions(+), 2 deletions(-) create mode 100644 src/test/java/com/faf223/expensetrackerfaf/repository/IncomeRepositoryTest.java diff --git a/src/main/java/com/faf223/expensetrackerfaf/model/Income.java b/src/main/java/com/faf223/expensetrackerfaf/model/Income.java index f5514ad..b3ddc60 100644 --- a/src/main/java/com/faf223/expensetrackerfaf/model/Income.java +++ b/src/main/java/com/faf223/expensetrackerfaf/model/Income.java @@ -13,6 +13,7 @@ import java.time.LocalDate; @AllArgsConstructor @NoArgsConstructor @Entity(name = "incomes") +@Builder public class Income implements IMoneyTransaction { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/src/main/java/com/faf223/expensetrackerfaf/model/User.java b/src/main/java/com/faf223/expensetrackerfaf/model/User.java index 93e8375..e3b0166 100644 --- a/src/main/java/com/faf223/expensetrackerfaf/model/User.java +++ b/src/main/java/com/faf223/expensetrackerfaf/model/User.java @@ -34,8 +34,8 @@ public class User { private String username; @Transient - @NotNull(message = "Password must not be null") - @NotEmpty(message = "Password must not be empty") +// @NotNull(message = "Password must not be null") +// @NotEmpty(message = "Password must not be empty") private String password; @OneToMany(mappedBy = "user", fetch = FetchType.LAZY) diff --git a/src/test/java/com/faf223/expensetrackerfaf/repository/IncomeRepositoryTest.java b/src/test/java/com/faf223/expensetrackerfaf/repository/IncomeRepositoryTest.java new file mode 100644 index 0000000..a2eddb6 --- /dev/null +++ b/src/test/java/com/faf223/expensetrackerfaf/repository/IncomeRepositoryTest.java @@ -0,0 +1,122 @@ +package com.faf223.expensetrackerfaf.repository; + +import com.faf223.expensetrackerfaf.model.Income; +import com.faf223.expensetrackerfaf.model.IncomeCategory; +import com.faf223.expensetrackerfaf.model.User; +import org.assertj.core.api.Assertions; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; +import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +@DataJpaTest +@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) +public class IncomeRepositoryTest { + + @Autowired + private IncomeRepository incomeRepository; + @Autowired + private IncomeCategoryRepository incomeCategoryRepository; + + @Autowired + private UserRepository userRepository; + + @Test + public void IncomeRepository_SaveAll_ReturnIncome() { + + User user = User.builder() + .firstName("Test") + .lastName("TestLast") + .username("UserTest") + .incomes(new ArrayList<>()) + .expenses(new ArrayList<>()) + .build(); + + userRepository.save(user); + IncomeCategory incomeCategory = incomeCategoryRepository.getReferenceById(1L); + + Income income = Income.builder() + .user(user) + .amount(BigDecimal.valueOf(77)) + .category(incomeCategory) + .date(LocalDate.now()) + .build(); + + Income savedIncome = incomeRepository.save(income); + + Assertions.assertThat(savedIncome).isNotNull(); + Assertions.assertThat(savedIncome.getId()).isGreaterThan(0L); + } + + @Test + public void IncomeRepository_GateAll_ReturnsMoreThenOneIncome() { + + User user = User.builder() + .firstName("Test") + .lastName("TestLast") + .username("UserTest") + .incomes(new ArrayList<>()) + .expenses(new ArrayList<>()) + .build(); + + userRepository.save(user); + IncomeCategory incomeCategory = incomeCategoryRepository.getReferenceById(1L); + + List incomeList = incomeRepository.findAll(); + int qtyBefore = incomeList.size(); + + Income income1 = Income.builder() + .user(user) + .amount(BigDecimal.valueOf(77)) + .category(incomeCategory) + .date(LocalDate.now()) + .build(); + Income income2 = Income.builder() + .user(user) + .amount(BigDecimal.valueOf(177)) + .category(incomeCategory) + .date(LocalDate.now()) + .build(); + + incomeRepository.save(income1); + incomeRepository.save(income2); + + incomeList = incomeRepository.findAll(); + + Assertions.assertThat(incomeList).isNotNull(); + Assertions.assertThat(incomeList.size()).isEqualTo(qtyBefore + 2); + } + + @Test + public void IncomeRepository_FindById_ReturnIncome() { + + User user = User.builder() + .firstName("Test") + .lastName("TestLast") + .username("UserTest") + .incomes(new ArrayList<>()) + .expenses(new ArrayList<>()) + .build(); + + userRepository.save(user); + IncomeCategory incomeCategory = incomeCategoryRepository.getReferenceById(1L); + + Income income = Income.builder() + .user(user) + .amount(BigDecimal.valueOf(77)) + .category(incomeCategory) + .date(LocalDate.now()) + .build(); + + incomeRepository.save(income); + + Optional incomeReturn = incomeRepository.findById(income.getId()); + Assertions.assertThat(incomeReturn.isPresent()).isTrue(); + } +}