View Javadoc
1   package civitas.common.mix.votemix.tests;
2   
3   import static org.junit.jupiter.api.Assertions.assertThrows;
4   import static org.mockito.Mockito.verify;
5   
6   import org.junit.jupiter.api.DisplayName;
7   import org.junit.jupiter.api.Test;
8   import org.mockito.InjectMocks;
9   import org.mockito.Mock;
10  
11  import civitas.common.mix.AddCommitmentToMix;
12  import civitas.common.mix.votemix.AddVoteAndCommitmentToVoteMix;
13  import civitas.common.mix.votemix.AddVoteToVoteMix;
14  import civitas.common.tests.RandomAwareTestBase;
15  import civitas.common.tests.VoteTestData;
16  
17  class AddVoteAndCommitmentToVoteMixTest extends RandomAwareTestBase implements VoteMixTestData, VoteTestData {
18  
19  	@InjectMocks
20  	AddVoteAndCommitmentToVoteMix addVoteAndCommitmentToVoteMix;
21  
22  	@Mock
23  	AddVoteToVoteMix addVoteToVoteMix;
24  
25  	@Mock
26  	AddCommitmentToMix addCommitmentToMix;
27  
28  	@Test
29  	@DisplayName("adds the vote to the mix and adds the commitment to the mix")
30  	void test() throws IllegalAccessException {
31  		addVoteAndCommitmentToVoteMix.apply(VOTE_MIX_MOCK, VOTE_MOCK, BYTES);
32  		verify(addCommitmentToMix).apply(VOTE_MIX_MOCK, BYTES);
33  		verify(addVoteToVoteMix).apply(VOTE_MIX_MOCK, VOTE_MOCK);
34  	}
35  
36  	@Test
37  	@DisplayName("if the mix is null, a NullPointerException is thrown")
38  	void test1() {
39  		assertThrows(NullPointerException.class, () -> addVoteAndCommitmentToVoteMix.apply(null, VOTE_MOCK, BYTES));
40  	}
41  
42  	@Test
43  	@DisplayName("if the vote is null, a NullPointerException is thrown")
44  	void test2() {
45  		assertThrows(NullPointerException.class, () -> addVoteAndCommitmentToVoteMix.apply(VOTE_MIX_MOCK, null, BYTES));
46  	}
47  
48  	@Test
49  	@DisplayName("if the commitments is null, a NullPointerException is thrown")
50  	void test3() {
51  		assertThrows(
52  				NullPointerException.class, () -> addVoteAndCommitmentToVoteMix.apply(VOTE_MIX_MOCK, VOTE_MOCK, null));
53  	}
54  }