View Javadoc
1   /**
2    *
3    */
4   package de.japrost.jabudget.service;
5   
6   import java.util.Set;
7   
8   import org.junit.Before;
9   import org.junit.Test;
10  import org.mockito.Mockito;
11  
12  import de.japrost.jabudget.domain.account.Account;
13  import de.japrost.jabudget.domain.fixtures.account.AccountFixtures;
14  import de.japrost.jabudget.repository.AccountRepository;
15  import de.japrost.jabudget.serialization.DomainStore;
16  import de.japrost.jabudget.serialization.Serialization;
17  
18  /**
19   * Test the {@link SerializationService}.
20   */
21  public class SerializationServiceTest {
22  
23  	private SerializationService cut;
24  	private Serialization serialization;
25  	private AccountRepository accountRepository;
26  	private final AccountFixtures accountFixtures = new AccountFixtures();
27  
28  	/**
29  	 */
30  	@Before
31  	public void setUp() {
32  		serialization = Mockito.mock(Serialization.class);
33  		accountRepository = Mockito.mock(AccountRepository.class);
34  		cut = new SerializationService(serialization, accountRepository);
35  	}
36  
37  	/**
38  	 * Delegate finding all values and passing them to serialization.
39  	 */
40  	@Test
41  	public void serializeDelegates() {
42  		// given
43  		Mockito.when(accountRepository.findAll()).thenReturn(Set.of(accountFixtures.createDefault()));
44  		// when
45  		cut.serialize();
46  		// then
47  		Mockito.verify(serialization).serialize(Mockito.any());
48  	}
49  
50  	/**
51  	 * Delegate loading all values and passing them for replacement.
52  	 */
53  	@Test
54  	public void deserializeDelegates() {
55  		// given
56  		// TODO use fixture
57  		final DomainStore domainStore = new DomainStore();
58  		final Set<Account> accounts = Set.of(accountFixtures.createDefault());
59  		domainStore.setAccounts(accounts);
60  		Mockito.when(serialization.deserialize()).thenReturn(domainStore);
61  		// when
62  		cut.deserialize();
63  		// then
64  		Mockito.verify(accountRepository).replaceAll(accounts);
65  	}
66  }