package com.piggymetrics.account.repository; import com.piggymetrics.account.AccountApplication; import com.piggymetrics.account.domain.*; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.SpringApplicationConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import java.math.BigDecimal; import java.util.Arrays; import java.util.Date; import static org.junit.Assert.assertEquals; @RunWith(SpringJUnit4ClassRunner.class) @SpringApplicationConfiguration(classes = AccountApplication.class) public class AccountRepositoryTest { @Autowired private AccountRepository repository; @Test public void shouldFindAccountByName() { Account stub = getStubAccount(); repository.save(stub); Account found = repository.findByName(stub.getName()); assertEquals(stub.getLastSeen(), found.getLastSeen()); assertEquals(stub.getNote(), found.getNote()); assertEquals(stub.getIncomes().size(), found.getIncomes().size()); assertEquals(stub.getExpenses().size(), found.getExpenses().size()); } private Account getStubAccount() { Saving saving = new Saving(); saving.setAmount(new BigDecimal(1500)); saving.setCurrency(Currency.USD); saving.setInterest(new BigDecimal("3.32")); saving.setDeposit(true); saving.setCapitalization(false); Item vacation = new Item(); vacation.setTitle("Vacation"); vacation.setAmount(new BigDecimal(3400)); vacation.setCurrency(Currency.EUR); vacation.setPeriod(TimePeriod.YEAR); vacation.setIcon("tourism"); Item grocery = new Item(); grocery.setTitle("Grocery"); grocery.setAmount(new BigDecimal(10)); grocery.setCurrency(Currency.USD); grocery.setPeriod(TimePeriod.DAY); grocery.setIcon("meal"); Item salary = new Item(); salary.setTitle("Salary"); salary.setAmount(new BigDecimal(9100)); salary.setCurrency(Currency.USD); salary.setPeriod(TimePeriod.MONTH); salary.setIcon("wallet"); Account account = new Account(); account.setName("test"); account.setNote("test note"); account.setLastSeen(new Date()); account.setSaving(saving); account.setExpenses(Arrays.asList(grocery, vacation)); account.setIncomes(Arrays.asList(salary)); return account; } }