Skip to content

Commit f0a8f0f

Browse files
authored
test(framework): consolidate and stabilize CredentialsTest (tronprotocol#6614)
* test(framework): merge duplicate CredentialsTest coverage Consolidate the misplaced keystroe CredentialsTest into org.tron.keystore.CredentialsTest. - remove the duplicate test under the misspelled keystroe package - add explicit equals behavior coverage for address and cryptoEngine - normalize assertions to JUnit Assert and remove legacy TestCase usage * test(framework): stabilize CredentialsTest fixtures Replace random Credentials test setup with deterministic SignInterface mocks so the suite no longer depends on platform-specific SecureRandom providers or probabilistic retries. - remove NativePRNG usage from CredentialsTest - replace random key generation with fixed address fixtures via mocked SignInterface - assert create(SignInterface) returns the expected base58check address - keep equals/hashCode contract coverage with deterministic inputs
1 parent 2de63bb commit f0a8f0f

2 files changed

Lines changed: 58 additions & 58 deletions

File tree

Lines changed: 58 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,36 @@
11
package org.tron.keystore;
22

3-
import java.security.NoSuchAlgorithmException;
4-
import java.security.SecureRandom;
5-
import junit.framework.TestCase;
6-
import lombok.extern.slf4j.Slf4j;
3+
import org.junit.Assert;
74
import org.junit.Test;
8-
import org.springframework.util.Assert;
9-
import org.tron.common.crypto.SignUtils;
5+
import org.mockito.Mockito;
6+
import org.tron.common.crypto.SignInterface;
107
import org.tron.common.crypto.sm2.SM2;
118
import org.tron.common.utils.ByteUtil;
9+
import org.tron.common.utils.StringUtil;
1210

13-
@Slf4j
14-
public class CredentialsTest extends TestCase {
11+
public class CredentialsTest {
12+
13+
private static final byte[] ADDRESS_1 = ByteUtil.hexToBytes(
14+
"410102030405060708090a0b0c0d0e0f1011121314");
15+
private static final byte[] ADDRESS_2 = ByteUtil.hexToBytes(
16+
"411415161718191a1b1c1d1e1f2021222324252627");
17+
18+
private SignInterface mockSignInterface(byte[] address) {
19+
SignInterface signInterface = Mockito.mock(SignInterface.class);
20+
Mockito.when(signInterface.getAddress()).thenReturn(address);
21+
return signInterface;
22+
}
1523

1624
@Test
17-
public void testCreate() throws NoSuchAlgorithmException {
18-
Credentials credentials = Credentials.create(SignUtils.getGeneratedRandomSign(
19-
SecureRandom.getInstance("NativePRNG"),true));
20-
Assert.hasText(credentials.getAddress(),"Credentials address create failed!");
21-
Assert.notNull(credentials.getSignInterface(),
22-
"Credentials cryptoEngine create failed");
25+
public void testCreate() {
26+
SignInterface signInterface = mockSignInterface(ADDRESS_1);
27+
28+
Credentials credentials = Credentials.create(signInterface);
29+
30+
Assert.assertEquals("Credentials address create failed!",
31+
StringUtil.encode58Check(ADDRESS_1), credentials.getAddress());
32+
Assert.assertSame("Credentials cryptoEngine create failed", signInterface,
33+
credentials.getSignInterface());
2334
}
2435

2536
@Test
@@ -28,21 +39,43 @@ public void testCreateFromSM2() {
2839
Credentials.create(SM2.fromNodeId(ByteUtil.hexToBytes("fffffffffff"
2940
+ "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
3041
+ "fffffffffffffffffffffffffffffffffffffff")));
42+
Assert.fail("Expected IllegalArgumentException");
3143
} catch (Exception e) {
32-
Assert.isInstanceOf(IllegalArgumentException.class, e);
44+
Assert.assertTrue(e instanceof IllegalArgumentException);
3345
}
3446
}
3547

3648
@Test
37-
public void testEquals() throws NoSuchAlgorithmException {
38-
Credentials credentials1 = Credentials.create(SignUtils.getGeneratedRandomSign(
39-
SecureRandom.getInstance("NativePRNG"),true));
40-
Credentials credentials2 = Credentials.create(SignUtils.getGeneratedRandomSign(
41-
SecureRandom.getInstance("NativePRNG"),true));
42-
Assert.isTrue(!credentials1.equals(credentials2),
43-
"Credentials instance should be not equal!");
44-
Assert.isTrue(!(credentials1.hashCode() == credentials2.hashCode()),
45-
"Credentials instance hashcode should be not equal!");
49+
public void testEquals() {
50+
Credentials credentials1 = Credentials.create(mockSignInterface(ADDRESS_1));
51+
Credentials credentials2 = Credentials.create(mockSignInterface(ADDRESS_2));
52+
53+
Assert.assertNotEquals("Credentials address fixtures should differ",
54+
credentials1.getAddress(), credentials2.getAddress());
55+
Assert.assertNotEquals("Credentials instance should be not equal!",
56+
credentials1, credentials2);
57+
}
58+
59+
@Test
60+
public void testEqualsWithAddressAndCryptoEngine() {
61+
Object aObject = new Object();
62+
SignInterface signInterface = mockSignInterface(ADDRESS_1);
63+
SignInterface signInterface2 = mockSignInterface(ADDRESS_1);
64+
SignInterface signInterface3 = mockSignInterface(ADDRESS_2);
65+
66+
Credentials credential = Credentials.create(signInterface);
67+
Credentials sameCredential = Credentials.create(signInterface);
68+
Credentials sameAddressDifferentEngineCredential = Credentials.create(signInterface2);
69+
Credentials differentCredential = Credentials.create(signInterface3);
70+
71+
Assert.assertFalse(aObject.equals(credential));
72+
Assert.assertFalse(credential.equals(aObject));
73+
Assert.assertFalse(credential.equals(null));
74+
Assert.assertEquals(credential, sameCredential);
75+
Assert.assertEquals("Equal credentials must have the same hashCode",
76+
credential.hashCode(), sameCredential.hashCode());
77+
Assert.assertNotEquals(credential, sameAddressDifferentEngineCredential);
78+
Assert.assertFalse(credential.equals(differentCredential));
4679
}
4780

48-
}
81+
}

framework/src/test/java/org/tron/keystroe/CredentialsTest.java

Lines changed: 0 additions & 33 deletions
This file was deleted.

0 commit comments

Comments
 (0)