Testing branch #41
@@ -5,25 +5,19 @@ import com.faf223.expensetrackerfaf.dto.ExpenseDTO;
|
||||
import com.faf223.expensetrackerfaf.model.Expense;
|
||||
import com.faf223.expensetrackerfaf.service.ExpenseCategoryService;
|
||||
import com.faf223.expensetrackerfaf.service.ExpenseService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class ExpenseMapper {
|
||||
|
||||
private final ExpenseService expenseService;
|
||||
private final ExpenseCategoryService expenseCategoryService;
|
||||
private final UserMapper userMapper;
|
||||
|
||||
@Autowired
|
||||
public ExpenseMapper(ExpenseService expenseService, ExpenseCategoryService expenseCategoryService, UserMapper userMapper) {
|
||||
this.expenseService = expenseService;
|
||||
this.expenseCategoryService = expenseCategoryService;
|
||||
this.userMapper = userMapper;
|
||||
}
|
||||
|
||||
public ExpenseDTO toDto(Expense expense) {
|
||||
return new ExpenseDTO(expense.getId(), userMapper.toDto(expense.getUser()),
|
||||
expense.getCategory(), expense.getDate(), expense.getAmount());
|
||||
|
||||
@@ -6,25 +6,19 @@ import com.faf223.expensetrackerfaf.model.Expense;
|
||||
import com.faf223.expensetrackerfaf.model.Income;
|
||||
import com.faf223.expensetrackerfaf.service.IncomeCategoryService;
|
||||
import com.faf223.expensetrackerfaf.service.IncomeService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class IncomeMapper {
|
||||
|
||||
private final IncomeService incomeService;
|
||||
private final IncomeCategoryService incomeCategoryService;
|
||||
private final UserMapper userMapper;
|
||||
|
||||
@Autowired
|
||||
public IncomeMapper(IncomeService incomeService, IncomeCategoryService incomeCategoryService, UserMapper userMapper) {
|
||||
this.incomeService = incomeService;
|
||||
this.incomeCategoryService = incomeCategoryService;
|
||||
this.userMapper = userMapper;
|
||||
}
|
||||
|
||||
public IncomeDTO toDto(Income income) {
|
||||
return new IncomeDTO(income.getId(), userMapper.toDto(income.getUser()),
|
||||
income.getCategory(), income.getDate(), income.getAmount());
|
||||
|
||||
@@ -3,10 +3,16 @@ package com.faf223.expensetrackerfaf.model;
|
||||
import jakarta.persistence.*;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@Entity(name = "income_categories")
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class IncomeCategory implements IMoneyTransactionCategory {
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
package com.faf223.expensetrackerfaf.service;
|
||||
|
||||
import com.faf223.expensetrackerfaf.model.IMoneyTransaction;
|
||||
import com.faf223.expensetrackerfaf.model.Income;
|
||||
import com.faf223.expensetrackerfaf.model.IncomeCategory;
|
||||
import com.faf223.expensetrackerfaf.model.User;
|
||||
import com.faf223.expensetrackerfaf.repository.IncomeCategoryRepository;
|
||||
import com.faf223.expensetrackerfaf.repository.IncomeRepository;
|
||||
import com.faf223.expensetrackerfaf.repository.UserRepository;
|
||||
import org.assertj.core.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.Mockito;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
@ExtendWith(MockitoExtension.class)
|
||||
public class IncomeServiceTest {
|
||||
|
||||
@Mock
|
||||
private IncomeRepository incomeRepository;
|
||||
@Mock
|
||||
private IncomeCategoryRepository incomeCategoryRepository;
|
||||
@Mock
|
||||
private UserRepository userRepository;
|
||||
@InjectMocks
|
||||
private IncomeService incomeService;
|
||||
|
||||
// public void createOrUpdate(IMoneyTransaction income) {
|
||||
// incomeRepository.save((Income) income);
|
||||
// }
|
||||
|
||||
@Test
|
||||
public void IncomeService_CreateIncome_ReturnsIncome() {
|
||||
|
||||
User user = User.builder().build();
|
||||
when(userRepository.findByUsername("Deep Deep")).thenReturn(Optional.of(user));
|
||||
user = userRepository.findByUsername("Deep Deep").get();
|
||||
|
||||
IncomeCategory incomeCategory = IncomeCategory.builder().build();
|
||||
when(incomeCategoryRepository.findById(1L)).thenReturn(Optional.of(incomeCategory));
|
||||
incomeCategory = incomeCategoryRepository.findById(1L).get();
|
||||
|
||||
Income income = Income.builder()
|
||||
.user(user)
|
||||
.amount(BigDecimal.valueOf(111))
|
||||
.category(incomeCategory)
|
||||
.date(LocalDate.of(2023,10,5))
|
||||
.build();
|
||||
|
||||
when(incomeRepository.save(Mockito.any(Income.class))).thenReturn(income);
|
||||
incomeService.createOrUpdate(income);
|
||||
|
||||
Assertions.assertThat(income.getId()).isGreaterThan(0);
|
||||
|
||||
List<Income> incomes = new ArrayList<>();
|
||||
when(incomeRepository.findByUser(user)).thenReturn(List.of(income));
|
||||
incomes = incomeRepository.findByUser(user);
|
||||
|
||||
// TODO: finish service test
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user