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 }