View Javadoc
1   package civitas.crypto.votecapabilityshare;
2   
3   import static org.junit.jupiter.api.Assertions.assertArrayEquals;
4   import static org.junit.jupiter.api.Assertions.assertEquals;
5   
6   import org.junit.jupiter.api.DisplayName;
7   import org.junit.jupiter.api.Test;
8   import org.mockito.InjectMocks;
9   
10  import civitas.crypto.votecapability.VoteCapability;
11  import civitas.util.CivitasBigIntegerFactory;
12  import io.github.magwas.testing.TestBase;
13  
14  class CombineVoteCapabilitySharesTest extends TestBase implements VoteCapabilityShareTestData {
15  
16  	@InjectMocks
17  	CombineVoteCapabilityShares combineVoteCapabilityShares;
18  
19  	@Test
20  	@DisplayName("multiplies each row of a matrix of vote capability shares")
21  	void test() {
22  		VoteCapability[] actual = combineVoteCapabilityShares.apply(CAPABILITY_SHARE_MATRIX, EL_GAMAL_PARAMETERS);
23  		assertEquals(CivitasBigIntegerFactory.obtain(2 * 5), actual[0].m());
24  		assertEquals(CivitasBigIntegerFactory.obtain(3 * 7), actual[1].m());
25  	}
26  
27  	@Test
28  	@DisplayName("returns empty array if the matrix is null")
29  	void test1() {
30  		assertArrayEquals(EMPTY_ARRAY, combineVoteCapabilityShares.apply(null, EL_GAMAL_PARAMETERS));
31  	}
32  
33  	@Test
34  	@DisplayName("returns empty array if the matrix contains null")
35  	void test2() {
36  		assertArrayEquals(
37  				EMPTY_ARRAY,
38  				combineVoteCapabilityShares.apply(new VoteCapabilityShare[][] {null}, EL_GAMAL_PARAMETERS));
39  	}
40  }