View Javadoc
1   package civitas.common.election;
2   
3   import static org.junit.jupiter.api.Assertions.assertFalse;
4   import static org.junit.jupiter.api.Assertions.assertThrows;
5   import static org.junit.jupiter.api.Assertions.assertTrue;
6   
7   import org.junit.jupiter.api.DisplayName;
8   import org.junit.jupiter.api.Test;
9   import org.mockito.InjectMocks;
10  
11  import civitas.common.RandomAwareTestBase;
12  import civitas.common.capabilityencryption.VoterEncCapabilities;
13  import civitas.common.mix.hashrevelation.MixHashRevelationTestData;
14  import civitas.common.votersubmission.VoterSubmission;
15  import civitas.common.votersubmission.VoterSubmissionTestData;
16  
17  class IsVoterSubmissionInBlockTest extends RandomAwareTestBase
18  		implements ElectionDetailsTestData,
19  				VoterSubmissionTestData,
20  				VoterEncCapabilitiesTestData,
21  				MixHashRevelationTestData {
22  
23  	@InjectMocks
24  	IsVoterSubmissionInBlock isVoterSubmissionInBlock;
25  
26  	@Test
27  	@DisplayName("checks if the block in the voter submission corresponds to the block number given\n"
28  			+ "(version without context)")
29  	void test() {
30  		assertTrue(isVoterSubmissionInBlock.apply(ELECTION_DETAILS, VOTER_SUBMISSION, 11));
31  	}
32  
33  	@Test
34  	@DisplayName("returns false if not\n" + "(version without context)")
35  	void test1() {
36  		assertFalse(isVoterSubmissionInBlock.apply(ELECTION_DETAILS, VOTER_SUBMISSION, 14));
37  	}
38  
39  	@Test
40  	@DisplayName("if voter is null, throws an IllegalArgumentException\n" + "(version without context)")
41  	void test2() {
42  		assertThrows(IllegalArgumentException.class, () -> isVoterSubmissionInBlock.apply(ELECTION_DETAILS, null, 11));
43  	}
44  
45  	@Test
46  	@DisplayName("checks if the block in the voter submission corresponds to the block number and context given\n"
47  			+ "(version with context)")
48  	void test_1() {
49  		assertTrue(isVoterSubmissionInBlock.apply(ELECTION_DETAILS, VOTER_SUBMISSION, FULL_CONTEXT_11, 11));
50  	}
51  
52  	@Test
53  	@DisplayName("returns false if context is different\n" + "(version with context)")
54  	void test3_1() {
55  		assertFalse(isVoterSubmissionInBlock.apply(ELECTION_DETAILS, VOTER_SUBMISSION, FULL_CONTEXT_14, 11));
56  	}
57  
58  	@Test
59  	@DisplayName("returns false if block number is different\n" + "(version with context)")
60  	void test1_1() {
61  		assertFalse(isVoterSubmissionInBlock.apply(ELECTION_DETAILS, VOTER_SUBMISSION, FULL_CONTEXT_14, 14));
62  	}
63  
64  	@Test
65  	@DisplayName("if voter is null, throws an IllegalArgumentException\n" + "(version with context)")
66  	void test2_1() {
67  		assertThrows(
68  				IllegalArgumentException.class,
69  				() -> isVoterSubmissionInBlock.apply(ELECTION_DETAILS, (VoterSubmission) null, FULL_CONTEXT_11, 11));
70  	}
71  
72  	@Test
73  	@DisplayName("checks if the block in the encrypted capabilities corresponds to the block number and context given\n"
74  			+ "(version with encrypted capabilities)")
75  	void test_2() {
76  		assertTrue(isVoterSubmissionInBlock.apply(ELECTION_DETAILS, VOTER_ENC_CAPABILITIES, BARE_CONTEXT_2, 11));
77  	}
78  
79  	@Test
80  	@DisplayName("returns false if context is different\n" + "(version with encrypted capabilities)")
81  	void test3_2() {
82  		assertFalse(isVoterSubmissionInBlock.apply(ELECTION_DETAILS, VOTER_ENC_CAPABILITIES, BARE_CONTEXT_1, 11));
83  	}
84  
85  	@Test
86  	@DisplayName("returns false if block number is different\n" + "(version with encrypted capabilities)")
87  	void test1_2() {
88  		assertFalse(isVoterSubmissionInBlock.apply(ELECTION_DETAILS, VOTER_ENC_CAPABILITIES, BARE_CONTEXT_2, 14));
89  	}
90  
91  	@Test
92  	@DisplayName("if voter is null, throws an IllegalArgumentException\n" + "(version with encrypted capabilities)")
93  	void test2_2() {
94  		assertThrows(
95  				IllegalArgumentException.class,
96  				() -> isVoterSubmissionInBlock.apply(
97  						ELECTION_DETAILS, (VoterEncCapabilities) null, BARE_CONTEXT_2, 11));
98  	}
99  }