 1 @DataJpaTest
 2 @Import({AccountPersistenceAdapter.class, AccountMapper.class})
 3 class AccountPersistenceAdapterTest {
 4
 5   @Autowired
 6   private AccountPersistenceAdapter adapter;
 7
 8   @Autowired
 9   private ActivityRepository activityRepository;
10
11   @Test
12   @Sql("AccountPersistenceAdapterTest.sql")
13   void loadsAccount() {
14     Account account = adapter.loadAccount(
15         new AccountId(1L),
16         LocalDateTime.of(2018, 8, 10, 0, 0));
17
18     assertThat(account.getActivityWindow()
19             .getActivities())
20             .hasSize(2);
21     assertThat(account.calculateBalance())
22             .isEqualTo(Money.of(500));
23   }
24
25   @Test
26   void updatesActivities() {
27     Account account = defaultAccount()
28         .withBaselineBalance(Money.of(555L))
29         .withActivityWindow(new ActivityWindow(
30             defaultActivity()
31                 .withId(null)
32                 .withMoney(Money.of(1L)).build()))
33         .build();
34
35     adapter.updateActivities(account);
36
37     assertThat(activityRepository.count()).isEqualTo(1);
38
39     ActivityJpaEntity savedActivity = activityRepository
40             .findAll()
41             .get(0);
42     assertThat(savedActivity.getAmount()).isEqualTo(1L);
43   }
44 }
