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