Skip to content

Commit fd47b90

Browse files
author
[a561842] hubert marteau
committed
Version 2.0.1 - Init
1 parent 5df0d4d commit fd47b90

File tree

2 files changed

+335
-0
lines changed

2 files changed

+335
-0
lines changed
Lines changed: 196 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,196 @@
1+
/*
2+
* Copyright (C) 2017 Worldline, Inc.
3+
*
4+
* MultiChainJavaAPI code distributed under the GPLv3 license, see COPYING file.
5+
* https://github.com/SimplyUb/MultiChainJavaAPI/blob/master/LICENSE
6+
*
7+
*/
8+
package multichain.command;
9+
10+
import java.util.ArrayList;
11+
import java.util.HashMap;
12+
import org.junit.Test;
13+
import junit.framework.TestCase;
14+
15+
/**
16+
* @author Ub - H. MARTEAU
17+
* @version 2.0.1
18+
*/
19+
public class CommandManagerTest extends TestCase {
20+
21+
22+
@Test
23+
public void testPingPauseResume() {
24+
System.out.println("--- testGetInfo ---");
25+
26+
CommandManager commandManager =
27+
new CommandManager(TestConst.MULTICHAIN_SERVER_IP, TestConst.MULTICHAIN_SERVER_PORT,
28+
TestConst.MULTICHAIN_SERVER_LOGIN, TestConst.MULTICHAIN_SERVER_PWD, null);
29+
30+
Object result = null;
31+
32+
try {
33+
result = commandManager.invoke(CommandElt.PING);
34+
} catch (MultichainException e) {
35+
e.printStackTrace();
36+
fail();
37+
}
38+
39+
assertNull(result);
40+
41+
try {
42+
result = commandManager.invoke(CommandElt.PAUSE, "offchain");
43+
} catch (MultichainException e) {
44+
e.printStackTrace();
45+
fail();
46+
}
47+
48+
assertNotNull(result);
49+
assertEquals("Paused", result);
50+
51+
try {
52+
result = commandManager.invoke(CommandElt.RESUME, "offchain");
53+
} catch (MultichainException e) {
54+
e.printStackTrace();
55+
fail();
56+
}
57+
58+
assertNotNull(result);
59+
assertEquals("Resumed", result);
60+
61+
}
62+
63+
@Test
64+
public void testGetInfo() {
65+
System.out.println("--- testGetInfo ---");
66+
67+
CommandManager commandManager =
68+
new CommandManager(TestConst.MULTICHAIN_SERVER_IP, TestConst.MULTICHAIN_SERVER_PORT,
69+
TestConst.MULTICHAIN_SERVER_LOGIN, TestConst.MULTICHAIN_SERVER_PWD, null);
70+
71+
Object result = null;
72+
73+
try {
74+
result = commandManager.invoke(CommandElt.GETINFO);
75+
} catch (MultichainException e) {
76+
e.printStackTrace();
77+
fail();
78+
}
79+
80+
assertNotNull(result);
81+
82+
System.out.println(result);
83+
System.out.println(result.getClass());
84+
}
85+
86+
@Test
87+
public void testGetAddresses() {
88+
System.out.println("--- testGetAddresses ---");
89+
90+
CommandManager commandManager =
91+
new CommandManager(TestConst.MULTICHAIN_SERVER_IP, TestConst.MULTICHAIN_SERVER_PORT,
92+
TestConst.MULTICHAIN_SERVER_LOGIN, TestConst.MULTICHAIN_SERVER_PWD, null);
93+
94+
Object addressResult = null;
95+
96+
try {
97+
addressResult = commandManager.invoke(CommandElt.GETADDRESSES);
98+
} catch (MultichainException e) {
99+
e.printStackTrace();
100+
fail();
101+
}
102+
103+
assertNotNull(addressResult);
104+
105+
System.out.println(addressResult);
106+
System.out.println(addressResult.getClass());
107+
if (ArrayList.class.isInstance(addressResult) && addressResult != null
108+
&& ((ArrayList<?>) addressResult).size() > 0) {
109+
System.out.println(((ArrayList<?>) addressResult).get(0).getClass());
110+
}
111+
112+
113+
try {
114+
addressResult = commandManager.invoke(CommandElt.GETADDRESSES, true);
115+
} catch (MultichainException e) {
116+
e.printStackTrace();
117+
fail();
118+
}
119+
120+
assertNotNull(addressResult);
121+
122+
System.out.println(addressResult);
123+
System.out.println(addressResult.getClass());
124+
if (ArrayList.class.isInstance(addressResult) && addressResult != null
125+
&& ((ArrayList<?>) addressResult).size() > 0) {
126+
System.out.println(((ArrayList<?>) addressResult).get(0).getClass());
127+
}
128+
129+
130+
}
131+
132+
@Test
133+
public void testAddMultisigAddress() {
134+
System.out.println("--- testAddMultisigAddress ---");
135+
136+
CommandManager commandManager =
137+
new CommandManager(TestConst.MULTICHAIN_SERVER_IP, TestConst.MULTICHAIN_SERVER_PORT,
138+
TestConst.MULTICHAIN_SERVER_LOGIN, TestConst.MULTICHAIN_SERVER_PWD, null);
139+
140+
Object result = null;
141+
142+
try {
143+
result = commandManager.invoke(CommandElt.GETADDRESSES);
144+
} catch (MultichainException e) {
145+
e.printStackTrace();
146+
fail();
147+
}
148+
149+
assertNotNull(result);
150+
151+
String[] addresses = null;
152+
153+
if (ArrayList.class.isInstance(result) && result != null
154+
&& ((ArrayList<?>) result).size() > 1) {
155+
addresses =
156+
new String[] {((ArrayList<String>) result).get(0), ((ArrayList<String>) result).get(1)};
157+
}
158+
159+
try {
160+
result = commandManager.invoke(CommandElt.ADDMULTISIGADDRESS, 1, addresses);
161+
} catch (MultichainException e) {
162+
e.printStackTrace();
163+
fail();
164+
}
165+
166+
assertNotNull(result);
167+
168+
System.out.println(result);
169+
System.out.println(result.getClass());
170+
}
171+
172+
@Test
173+
public void testGetBlockchainParams() {
174+
System.out.println("--- testGetBlockchainParams ---");
175+
176+
CommandManager commandManager =
177+
new CommandManager(TestConst.MULTICHAIN_SERVER_IP, TestConst.MULTICHAIN_SERVER_PORT,
178+
TestConst.MULTICHAIN_SERVER_LOGIN, TestConst.MULTICHAIN_SERVER_PWD, null);
179+
180+
HashMap<String, String> result = null;
181+
182+
try {
183+
result = (HashMap<String, String>) commandManager.invoke(CommandElt.GETBLOCKCHAINPARAMS);
184+
} catch (MultichainException e) {
185+
e.printStackTrace();
186+
fail();
187+
}
188+
189+
assertNotNull(result);
190+
for (String key : result.keySet()) {
191+
System.out.println(key + " - " + String.valueOf(result.get(key)));
192+
}
193+
194+
}
195+
}
196+
Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
/*
2+
* Copyright (C) 2017 Worldline, Inc.
3+
*
4+
* MultiChainJavaAPI code distributed under the GPLv3 license, see COPYING file.
5+
* https://github.com/SimplyUb/MultiChainJavaAPI/blob/master/LICENSE
6+
*
7+
*/
8+
package multichain.object.formatters;
9+
10+
import java.util.ArrayList;
11+
import java.util.List;
12+
import org.junit.Assert;
13+
import org.junit.Test;
14+
import com.google.gson.Gson;
15+
import com.google.gson.internal.LinkedTreeMap;
16+
import multichain.command.CommandElt;
17+
18+
/**
19+
* @author Ub - H. MARTEAU
20+
* @version 2.0.1
21+
*/
22+
public class GenericOutputFormatterTest {
23+
24+
@Test
25+
public void testFormatBlock() {
26+
String blockJsonValue =
27+
"{\"hash\": \"00cd11ab4a7146236595c29f52a874521845cb2a417da4e938266e1a3a1f3bb2\","
28+
+ "\"miner\": \"13SKg7Qw7UxPWvjDMkskyvKU7HfM9mz1KHi43E\"," + "\"confirmations\": 235,"
29+
+ "\"size\": 241," + "\"height\": 0," + "\"version\": 1,"
30+
+ "\"merkleroot\": \"428c3d6b97720175dba80c893ec97407522f564af5665ecff0684cd8d74eae6e\","
31+
+ "\"tx\": [" + " \"428c3d6b97720175dba80c893ec97407522f564af5665ecff0684cd8d74eae6e\""
32+
+ "]," + "\"time\": 1543504235," + "\"nonce\": 97," + "\"bits\": \"2000ffff\","
33+
+ "\"difficulty\": 5.96046447753906E-8,"
34+
+ "\"chainwork\": \"0000000000000000000000000000000000000000000000000000000000000100\","
35+
+ "\"nextblockhash\": \"0074f303c0b50dcf4a0f8e48840c14af9dd5666f5f953b154b9d7d2549ea02f9\""
36+
+ "}";
37+
38+
Class<?>[] returnedTypes = CommandElt.GETBLOCK.getReturnedClass();
39+
LinkedTreeMap<String, Object> linkedTreeMapValue =
40+
new Gson().fromJson(blockJsonValue, LinkedTreeMap.class);
41+
42+
Object returnedValue = GenericOutputFormatter.format(linkedTreeMapValue, returnedTypes);
43+
44+
System.out.println(returnedValue);
45+
System.out.println(returnedValue.getClass());
46+
47+
Assert.assertNotNull(returnedValue);
48+
49+
}
50+
51+
@Test
52+
public void testFormatAddressesSimple() {
53+
String addresseJsonValue01 = "\"11ADDRESSE01ADDRESSE01ADDRESSE01111111\"";
54+
String addresseJsonValue02 = "\"22ADDRESSE02ADDRESSE02ADDRESSE02222222\"";
55+
String addresseJsonValue03 = "\"33ADDRESSE03ADDRESSE03ADDRESSE03333333\"";
56+
String addresseJsonValue04 = "\"44ADDRESSE04ADDRESSE04ADDRESSE04444444\"";
57+
58+
Class<?>[] returnedTypes = CommandElt.GETADDRESSES.getReturnedClass();
59+
String linkedTreeMapValue1 = new Gson().fromJson(addresseJsonValue01, String.class);
60+
String linkedTreeMapValue2 = new Gson().fromJson(addresseJsonValue02, String.class);
61+
String linkedTreeMapValue3 = new Gson().fromJson(addresseJsonValue03, String.class);
62+
String linkedTreeMapValue4 = new Gson().fromJson(addresseJsonValue04, String.class);
63+
64+
List<String> listLinkedTreeMap = new ArrayList<>();
65+
listLinkedTreeMap.add(linkedTreeMapValue1);
66+
listLinkedTreeMap.add(linkedTreeMapValue2);
67+
listLinkedTreeMap.add(linkedTreeMapValue3);
68+
listLinkedTreeMap.add(linkedTreeMapValue4);
69+
70+
Object returnedValue = GenericOutputFormatter.formatList(listLinkedTreeMap, returnedTypes);
71+
72+
System.out.println(returnedValue);
73+
System.out.println(returnedValue.getClass());
74+
if (ArrayList.class.isInstance(returnedValue) && returnedValue != null
75+
&& ((ArrayList) returnedValue).size() > 0) {
76+
System.out.println(((ArrayList) returnedValue).get(0).getClass());
77+
}
78+
79+
Assert.assertNotNull(returnedValue);
80+
81+
}
82+
83+
84+
85+
@Test
86+
public void testFormatAddressesVerbose() {
87+
String addresseJsonValue01 =
88+
"{\"address\": \"11ADDRESSE01ADDRESSE01ADDRESSE01111111\",\"ismine\": true,"
89+
+ "\"iswatchonly\": false,\"isscript\": false,"
90+
+ "\"pubkey\": \"000011ADDRESSE01ADDRESSE01ADDRESSE01111111ADRESSE01ADDRESSE0111111\","
91+
+ "\"iscompressed\": true,\"account\": \"adresse01\"}";
92+
String addresseJsonValue02 =
93+
"{\"address\": \"22ADDRESSE02ADDRESSE02ADDRESSE02222222\",\"ismine\": true,"
94+
+ "\"iswatchonly\": false,\"isscript\": false,"
95+
+ "\"pubkey\": \"000022ADDRESSE02ADDRESSE02ADDRESSE02222222ADRESSE02ADDRESSE0222222\","
96+
+ "\"iscompressed\": true,\"account\": \"adresse02\"}";
97+
String addresseJsonValue03 =
98+
"{\"address\": \"33ADDRESSE03ADDRESSE03ADDRESSE03333333\",\"ismine\": true,"
99+
+ "\"iswatchonly\": false,\"isscript\": false,"
100+
+ "\"pubkey\": \"000033ADDRESSE03ADDRESSE03ADDRESSE03333333ADRESSE03ADDRESSE0333333\","
101+
+ "\"iscompressed\": true,\"account\": \"adresse03\"}";
102+
String addresseJsonValue04 =
103+
"{\"address\": \"44ADDRESSE04ADDRESSE04ADDRESSE04444444\",\"ismine\": true,"
104+
+ "\"iswatchonly\": false,\"isscript\": false,"
105+
+ "\"pubkey\": \"000044ADDRESSE04ADDRESSE04ADDRESSE04444444ADRESSE04ADDRESSE0444444\","
106+
+ "\"iscompressed\": true,\"account\": \"adresse04\"}";
107+
108+
Class<?>[] returnedTypes = CommandElt.GETADDRESSES.getReturnedClass();
109+
LinkedTreeMap<String, Object> linkedTreeMapValue1 =
110+
new Gson().fromJson(addresseJsonValue01, LinkedTreeMap.class);
111+
LinkedTreeMap<String, Object> linkedTreeMapValue2 =
112+
new Gson().fromJson(addresseJsonValue02, LinkedTreeMap.class);
113+
LinkedTreeMap<String, Object> linkedTreeMapValue3 =
114+
new Gson().fromJson(addresseJsonValue03, LinkedTreeMap.class);
115+
LinkedTreeMap<String, Object> linkedTreeMapValue4 =
116+
new Gson().fromJson(addresseJsonValue04, LinkedTreeMap.class);
117+
118+
List<LinkedTreeMap<String, Object>> listLinkedTreeMap = new ArrayList<>();
119+
listLinkedTreeMap.add(linkedTreeMapValue1);
120+
listLinkedTreeMap.add(linkedTreeMapValue2);
121+
listLinkedTreeMap.add(linkedTreeMapValue3);
122+
listLinkedTreeMap.add(linkedTreeMapValue4);
123+
124+
Object returnedValue = GenericOutputFormatter.formatList(listLinkedTreeMap, returnedTypes);
125+
126+
System.out.println(returnedValue);
127+
System.out.println(returnedValue.getClass());
128+
if (ArrayList.class.isInstance(returnedValue) && returnedValue != null
129+
&& ((ArrayList) returnedValue).size() > 0) {
130+
System.out.println(((ArrayList) returnedValue).get(0).getClass());
131+
}
132+
133+
Assert.assertNotNull(returnedValue);
134+
135+
}
136+
137+
138+
139+
}

0 commit comments

Comments
 (0)