Skip to content

Commit 276b462

Browse files
committed
add ChainsqlTest unit test code
1 parent 9ae2be3 commit 276b462

File tree

4 files changed

+200
-57
lines changed

4 files changed

+200
-57
lines changed

chainsql/src/main/java/com/peersafe/chainsql/core/Chainsql.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1124,7 +1124,7 @@ public JSONObject generateAddress(String secret){
11241124
}
11251125

11261126
/**
1127-
* {algorithm:"softGMAlg"}
1127+
* {algorithm:"softGMAlg",secret:"pw5MLePoMLs1DA8y7CgRZWw6NfHik7ZARg8Wp2pr44vVKrpSeUV"}
11281128
* @param options
11291129
* @return
11301130
*/
@@ -1151,7 +1151,16 @@ public JSONObject generateAddress(JSONObject options){
11511151
}
11521152
}
11531153

1154-
Seed seed = Seed.randomSeed(version);
1154+
Seed seed = null;
1155+
if(options.has("secret")){
1156+
1157+
String sSecret = options.getString("secret");
1158+
seed = Seed.fromBase58(sSecret);
1159+
1160+
}else{
1161+
seed = Seed.randomSeed(version);
1162+
}
1163+
11551164
return generateAddress(seed);
11561165
}
11571166

chainsql/src/main/java/com/peersafe/chainsql/crypto/EncryptCommon.java

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,16 +24,6 @@ public static byte[] asymEncrypt(byte[] plainBytes,byte[] publicKey){
2424
try{
2525
//
2626
byte[] ret = SM2Util.encrypt(publicKey, plainBytes);
27-
28-
System.out.println( "原文为: " + ByteUtils.toHexString(plainBytes).toUpperCase());
29-
System.out.println( "密文为: " + ByteUtils.toHexString(ret).toUpperCase());
30-
System.out.println( "公钥为: " + ByteUtils.toHexString(publicKey).toUpperCase());
31-
32-
byte[] priv = ByteUtils.fromHexString("32bbdc4cf266bf6d408c2a24354c7283c2b778cef491c60dfc27dd2ae2145681");
33-
byte[] testPlain = SM2Util.decrypt(priv, ret);
34-
35-
System.out.println( "解密后为: " + ByteUtils.toHexString(testPlain).toUpperCase());
36-
3727
return ret;
3828
} catch (Exception ex) {
3929
ex.printStackTrace();
Lines changed: 152 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,152 @@
1+
package com.peersafe.chainsql.core;
2+
3+
import com.peersafe.chainsql.util.Util;
4+
import junit.framework.TestCase;
5+
import org.json.JSONObject;
6+
import org.junit.Assert;
7+
8+
import java.util.List;
9+
10+
public class ChainsqlTest extends TestCase {
11+
12+
public static final Chainsql c = new Chainsql();
13+
public static String sTableName = "B14";
14+
public static String smRootSecret = "p97evg5Rht7ZB7DbEpVqmV3yiSBMxR3pRBKJyLcRWt7SL5gEeBb";
15+
public static String smRootAddress = "zN7TwUjJ899xcvNXZkNJ8eFFv2VLKdESsj";
16+
public static String smUserSecret = "pw5MLePoMLs1DA8y7CgRZWw6NfHik7ZARg8Wp2pr44vVKrpSeUV";
17+
public static String smUserAddress = "zKzpkRTZPtsaQ733G8aRRG5x5Z2bTqhGbt";
18+
19+
public static String smUserPublicKey = "pYvKjFb71Qrx26jpfMPAkpN1zfr5WTQoHCpsEtE98ZrBCv2EoxEs4rmWR7DcqTwSwEY81opTgL7pzZ2rZ3948vHi4H23vnY3";
20+
21+
public void setUp() throws Exception {
22+
try{
23+
24+
c.connect("ws://192.168.29.69:5003");
25+
c.as(smRootAddress,smRootSecret);
26+
super.setUp();
27+
28+
}catch (Exception e){
29+
e.printStackTrace();
30+
Assert.fail();
31+
}
32+
}
33+
34+
public void tearDown() throws Exception {
35+
c.disconnect();
36+
}
37+
38+
39+
public void testGenerateAddress(){
40+
41+
try{
42+
43+
for( int i= 0 ; i< 10; i++) {
44+
45+
JSONObject options = new JSONObject();
46+
options.put("algorithm","softGMAlg");
47+
JSONObject ret = c.generateAddress(options);
48+
System.out.println(ret);
49+
50+
// 指定软国密算法的secret
51+
options.put( "secret",smUserSecret);
52+
ret = c.generateAddress(options);
53+
System.out.println(ret);
54+
55+
// 默认使用spec256k1
56+
ret = c.generateAddress();
57+
System.out.println(ret);
58+
59+
// 指定secret 生成 账户信息
60+
ret = c.generateAddress(smUserSecret);
61+
System.out.println(ret);
62+
63+
}
64+
65+
}catch (Exception e){
66+
67+
e.printStackTrace();
68+
Assert.fail();
69+
}
70+
71+
}
72+
73+
public void testPay(){
74+
75+
try{
76+
77+
c.pay(smUserAddress,"1000").submit(Submit.SyncCond.validate_success);
78+
79+
}catch (Exception e){
80+
e.printStackTrace();
81+
Assert.fail();
82+
}
83+
84+
}
85+
86+
public void testCreateTable() {
87+
88+
try{
89+
90+
// 建表
91+
List<String> args = Util.array("{'field':'id','type':'int','length':11,'PK':1,'NN':1,'UQ':1}",
92+
"{'field':'name','type':'varchar','length':50,'default':null}", "{'field':'age','type':'int'}");
93+
94+
boolean bEncrypted = false;
95+
96+
JSONObject obj;
97+
obj = c.createTable(sTableName,args,bEncrypted).submit(Submit.SyncCond.db_success);
98+
System.out.println("create result:" + obj);
99+
100+
// 插入表
101+
List<String> orgs = Util.array("{'id':2,'age': 333,'name':'hello'}");
102+
obj = c.table(sTableName).insert(orgs).submit(Submit.SyncCond.db_success);
103+
System.out.println("insert result:" + obj);
104+
105+
// 更新表
106+
List<String> arr1 = Util.array("{'id': 2}");
107+
obj = c.table(sTableName).get(arr1).update("{'age':200}").submit(Submit.SyncCond.db_success);
108+
System.out.println("update result:" + obj);
109+
110+
// 删除表数据
111+
obj = c.table(sTableName).get(c.array("{'id': " + 2 + "}")).delete().submit(Submit.SyncCond.db_success);
112+
System.out.println("delete result:" + obj);
113+
114+
// 授权
115+
if(bEncrypted){
116+
117+
obj = c.grant(sTableName, smUserAddress,smUserPublicKey,"{insert:true,update:true}")
118+
.submit(Submit.SyncCond.validate_success);
119+
System.out.println("grant result:" + obj.toString());
120+
}else{
121+
122+
obj = c.grant(sTableName, smUserAddress,"{insert:true,update:true}")
123+
.submit(Submit.SyncCond.validate_success);
124+
System.out.println("grant result:" + obj.toString());
125+
}
126+
127+
128+
// 授权后使用被授权账户插入数据
129+
c.as(smUserAddress, smUserSecret);
130+
c.use(smRootAddress);
131+
List<String> orgLst = Util.array("{'id':105,'age': 333,'name':'hello'}","{'id':106,'age': 444,'name':'sss'}","{'id':107,'age': 555,'name':'rrr'}");
132+
obj = c.table(sTableName).insert(orgLst).submit(Submit.SyncCond.db_success);
133+
System.out.println("insert after grant result:" + obj);
134+
135+
136+
// 重命名表
137+
c.as(smRootAddress, smRootSecret);
138+
String sReName = "newTable";
139+
obj = c.renameTable(sTableName, sReName).submit(Submit.SyncCond.db_success);
140+
System.out.println("rename result:" + obj);
141+
142+
// 删除表
143+
obj = c.dropTable(sReName).submit(Submit.SyncCond.db_success);
144+
System.out.println("drop result:" + obj);
145+
146+
}catch (Exception e){
147+
e.printStackTrace();
148+
Assert.fail();
149+
}
150+
151+
}
152+
}

chainsql/src/test/java/com/peersafe/example/chainsql/TestChainsql.java

Lines changed: 37 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -37,39 +37,31 @@ public class TestChainsql {
3737
public static String smUserAddress = "zKzpkRTZPtsaQ733G8aRRG5x5Z2bTqhGbt";
3838

3939
public static String smUserPublicKey = "pYvKjFb71Qrx26jpfMPAkpN1zfr5WTQoHCpsEtE98ZrBCv2EoxEs4rmWR7DcqTwSwEY81opTgL7pzZ2rZ3948vHi4H23vnY3";
40-
public static void main(String[] args) {
41-
42-
43-
44-
// {
45-
// JSONObject options = new JSONObject();
46-
// options.put("algorithm","softGMAlg");
47-
//
48-
// JSONObject ret = c.generateAddress(userSecret);
49-
//
50-
// //c.as(ret.getString("address"), ret.getString("secret"));
51-
//
52-
// System.out.println(ret);
53-
// }
5440

5541

42+
public static String smNewUserSecret = "p96dJiLZfazo4gicnt1UCumwP6LJfFuo6iR4EVLwzYBWqKrJVgf";
43+
public static String smNewUserAddress = "zQA9xJDn2qzdexq2PMXjLhdoNffW1qdXq";
5644

57-
c.connect("ws://192.168.29.116:5006");
58-
//c.connect("ws://192.168.29.116:6005");
59-
60-
sTableName = "JM2";
61-
sTableName2 = "tTable2";
62-
sReName = "tTable3";
63-
64-
// {"address":"zKvWitcHvViJ7iVk8U313rkrp8ChYcJUk4","secret":"xhhMqARTEB2aUJgJs4pxvKxcKxHAj","publicKey":"cBQNvNdVSQqPXqWnUMvnsoDhGxzCZfxmoJpVMGzBCdDboDTgLvBv"}
65-
sNewAccountId = "zpMZ2H58HFPB5QTycMGWSXUeF47eA8jyd4";
66-
c.as(rootAddress, rootSecret);
45+
public static String smNewUserPublicKey = "pYvNX91FDmctDr7F9PPk8kEJz5XddiXyRfjHVWPP8Rekpb9Qc6WBrN1PBoNwMhkF1dHb46KpeUMzZahwL1sRqg3FDyGkRqhs";
6746

68-
//c.generateAddress()
47+
public static void main(String[] args) {
6948

70-
//String pemContent = readCertFile("D:\\git\\ca\\test\\userCert.cert");
71-
//c.useCert(pemContent);
49+
c.connect("ws://192.168.29.69:5003");
7250

51+
//
52+
sTableName = "B19";
53+
// sTableName2 = "tTable2";
54+
// sReName = "tTable3";
55+
//
56+
// // {"address":"zKvWitcHvViJ7iVk8U313rkrp8ChYcJUk4","secret":"xhhMqARTEB2aUJgJs4pxvKxcKxHAj","publicKey":"cBQNvNdVSQqPXqWnUMvnsoDhGxzCZfxmoJpVMGzBCdDboDTgLvBv"}
57+
// sNewAccountId = "zpMZ2H58HFPB5QTycMGWSXUeF47eA8jyd4";
58+
c.as(smRootAddress, smRootSecret);
59+
//
60+
// //c.generateAddress()
61+
//
62+
// //String pemContent = readCertFile("D:\\git\\ca\\test\\userCert.cert");
63+
// //c.useCert(pemContent);
64+
//
7365
//testRipple();
7466
testChainSql();
7567
}
@@ -112,23 +104,23 @@ private static String readCertFile(String pemPath){
112104
private static void testChainSql() {
113105
TestChainsql test = new TestChainsql();
114106
//建表
115-
//test.testCreateTable();
107+
test.testCreateTable();
116108
//建表,用于重命名,删除
117109
// test.testCreateTable1();
118110
// //插入数据
119-
//test.testinsert();
111+
test.testinsert();
120112
// //更新表数据
121-
// test.testUpdateTable();
113+
test.testUpdateTable();
122114
// //删除表数据
123-
// test.testdelete();
115+
test.testdelete();
124116
// //重命名表
125-
// test.testrename();
117+
test.testrename();
126118
// //查询表数据
127-
// test.testget();
119+
test.testget();
128120
// //删除表
129-
// test.testdrop();
121+
test.testdrop();
130122
// //授权
131-
//test.grant();
123+
test.grant();
132124
// //授权后使用被授权账户插入数据
133125
test.insertAfterGrant();
134126

@@ -147,7 +139,7 @@ private static void testRipple() {
147139
// //生成新账户
148140
// test.generateAccount();
149141
// //给新账户打钱
150-
test.activateAccount(smUserAddress);
142+
test.activateAccount(smNewUserAddress);
151143

152144
// test.getTransactions();
153145
// test.getTransaction();
@@ -259,7 +251,7 @@ public void testCreateTable() {
259251
"{'field':'name','type':'varchar','length':50,'default':null}", "{'field':'age','type':'int'}");
260252

261253
JSONObject obj;
262-
obj = c.createTable(sTableName,args,true).submit(SyncCond.db_success);
254+
obj = c.createTable(sTableName,args,false).submit(SyncCond.db_success);
263255
System.out.println("create result:" + obj);
264256
}
265257

@@ -269,28 +261,28 @@ public void testinsert() {
269261
// obj = c.table(sTableName).insert(orgs).submit(SyncCond.db_success);
270262
// System.out.println("insert result:" + obj);
271263
for(int i= 0; i<1; i++) {
272-
List<String> orgs = Util.array("{'id':1,'age': 333,'name':'hello'}");
264+
List<String> orgs = Util.array("{'id':11,'age': 333,'name':'hello'}");
273265
JSONObject obj;
274266
obj = c.table(sTableName).insert(orgs).submit(SyncCond.db_success);
275267
System.out.println("insert result:" + obj);
276-
orgs = Util.array("{'id':2,'age': 444,'name':'sss'}");
268+
orgs = Util.array("{'id':22,'age': 444,'name':'sss'}");
277269
obj = c.table(sTableName).insert(orgs).submit(SyncCond.db_success);
278270
System.out.println("insert result:" + obj);
279-
orgs = Util.array("{'id':3,'age': 555,'name':'rrr'}");
271+
orgs = Util.array("{'id':33,'age': 555,'name':'rrr'}");
280272
obj = c.table(sTableName).insert(orgs).submit(SyncCond.db_success);
281273
System.out.println("insert result:" + obj);
282274
}
283275

284276
}
285277

286278
public void insertAfterGrant(){
287-
c.as(userAddress, userSecret);
288-
c.use(rootAddress);
289-
List<String> orgs = Util.array("{'id':100,'age': 333,'name':'hello'}","{'id':101,'age': 444,'name':'sss'}","{'id':102,'age': 555,'name':'rrr'}");
279+
c.as(smNewUserAddress, smNewUserSecret);
280+
c.use(smRootAddress);
281+
List<String> orgs = Util.array("{'id':105,'age': 333,'name':'hello'}","{'id':106,'age': 444,'name':'sss'}","{'id':107,'age': 555,'name':'rrr'}");
290282
JSONObject obj;
291283
obj = c.table(sTableName).insert(orgs).submit(SyncCond.db_success);
292284
System.out.println("insert after grant result:" + obj);
293-
c.as(rootAddress, rootSecret);
285+
//c.as(rootAddress, rootSecret);
294286
}
295287

296288
public void testUpdateTable() {
@@ -373,7 +365,7 @@ public void testGetBySqlUser() {
373365

374366
public void grant() {
375367
JSONObject obj = new JSONObject();
376-
obj = c.grant(sTableName, userAddress,userPublicKey,"{insert:true,update:true}")
368+
obj = c.grant(sTableName, smNewUserAddress,smNewUserPublicKey,"{insert:true,update:true}")
377369
.submit(SyncCond.validate_success);
378370
System.out.println("grant result:" + obj.toString());
379371
}

0 commit comments

Comments
 (0)