Testing branch #41
@@ -5,25 +5,19 @@ import com.faf223.expensetrackerfaf.dto.ExpenseDTO;
|
|||||||
import com.faf223.expensetrackerfaf.model.Expense;
|
import com.faf223.expensetrackerfaf.model.Expense;
|
||||||
import com.faf223.expensetrackerfaf.service.ExpenseCategoryService;
|
import com.faf223.expensetrackerfaf.service.ExpenseCategoryService;
|
||||||
import com.faf223.expensetrackerfaf.service.ExpenseService;
|
import com.faf223.expensetrackerfaf.service.ExpenseService;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
|
@RequiredArgsConstructor
|
||||||
public class ExpenseMapper {
|
public class ExpenseMapper {
|
||||||
|
|
||||||
private final ExpenseService expenseService;
|
|
||||||
private final ExpenseCategoryService expenseCategoryService;
|
private final ExpenseCategoryService expenseCategoryService;
|
||||||
private final UserMapper userMapper;
|
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) {
|
public ExpenseDTO toDto(Expense expense) {
|
||||||
return new ExpenseDTO(expense.getId(), userMapper.toDto(expense.getUser()),
|
return new ExpenseDTO(expense.getId(), userMapper.toDto(expense.getUser()),
|
||||||
expense.getCategory(), expense.getDate(), expense.getAmount());
|
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.model.Income;
|
||||||
import com.faf223.expensetrackerfaf.service.IncomeCategoryService;
|
import com.faf223.expensetrackerfaf.service.IncomeCategoryService;
|
||||||
import com.faf223.expensetrackerfaf.service.IncomeService;
|
import com.faf223.expensetrackerfaf.service.IncomeService;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
|
@RequiredArgsConstructor
|
||||||
public class IncomeMapper {
|
public class IncomeMapper {
|
||||||
|
|
||||||
private final IncomeService incomeService;
|
|
||||||
private final IncomeCategoryService incomeCategoryService;
|
private final IncomeCategoryService incomeCategoryService;
|
||||||
private final UserMapper userMapper;
|
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) {
|
public IncomeDTO toDto(Income income) {
|
||||||
return new IncomeDTO(income.getId(), userMapper.toDto(income.getUser()),
|
return new IncomeDTO(income.getId(), userMapper.toDto(income.getUser()),
|
||||||
income.getCategory(), income.getDate(), income.getAmount());
|
income.getCategory(), income.getDate(), income.getAmount());
|
||||||
|
|||||||
@@ -1,24 +1,49 @@
|
|||||||
package com.faf223.expensetrackerfaf.service;
|
package com.faf223.expensetrackerfaf.service;
|
||||||
|
|
||||||
|
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.IncomeRepository;
|
||||||
|
import com.faf223.expensetrackerfaf.repository.UserRepository;
|
||||||
|
import org.assertj.core.api.Assertions;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.junit.jupiter.api.extension.ExtendWith;
|
import org.junit.jupiter.api.extension.ExtendWith;
|
||||||
import org.mockito.InjectMocks;
|
import org.mockito.InjectMocks;
|
||||||
import org.mockito.Mock;
|
import org.mockito.Mock;
|
||||||
import org.mockito.junit.jupiter.MockitoExtension;
|
import org.mockito.junit.jupiter.MockitoExtension;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
@ExtendWith(MockitoExtension.class)
|
@ExtendWith(MockitoExtension.class)
|
||||||
public class IncomeServiceTest {
|
public class IncomeServiceTest {
|
||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
private IncomeRepository incomeRepository;
|
private IncomeRepository incomeRepository;
|
||||||
|
@Mock
|
||||||
|
private IncomeCategoryRepository incomeCategoryRepository;
|
||||||
|
@Mock
|
||||||
|
private UserRepository userRepository;
|
||||||
@InjectMocks
|
@InjectMocks
|
||||||
private IncomeService incomeService;
|
private IncomeService incomeService;
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void IncomeService_CreateIncome_ReturnsIncome() {
|
public void IncomeService_CreateIncome_ReturnsIncome() {
|
||||||
|
|
||||||
|
// TODO: move income creation to service or move this test to controller tests
|
||||||
|
Optional<User> user = userRepository.findByUsername("Deep Deep");
|
||||||
|
Assertions.assertThat(user.isPresent()).isTrue();
|
||||||
|
IncomeCategory incomeCategory = incomeCategoryRepository.getReferenceById(4L);
|
||||||
|
|
||||||
|
Income income = Income.builder()
|
||||||
|
.user(user.get())
|
||||||
|
.amount(BigDecimal.valueOf(700))
|
||||||
|
.category(incomeCategory)
|
||||||
|
.date(LocalDate.of(2023,10,5))
|
||||||
|
.build();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user