Skip to content

Commit 4941e36

Browse files
committed
refactoring
1 parent 4e3397d commit 4941e36

File tree

7 files changed

+74
-35
lines changed

7 files changed

+74
-35
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@
33
/build/
44
/local.properties
55
*.DS_Store
6+
etherspace-java/contract/yarn.lock

etherspace-java/contract/contracts/Greeter.sol

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ contract mortal {
77
address owner;
88

99
/* this function is executed at initialization and sets the owner of the contract */
10-
function mortal() { owner = msg.sender; }
10+
function mortal() {owner = msg.sender;}
1111

1212
/* Function to recover the funds on the contract */
13-
function kill() { if (msg.sender == owner) suicide(owner); }
13+
function kill() {if (msg.sender == owner) suicide(owner);}
1414
}
1515

1616
contract greeter is mortal {
@@ -27,10 +27,6 @@ contract greeter is mortal {
2727
greeting = _greeting;
2828
}
2929

30-
function twoDimensionArray(uint[5][] array, uint row, uint col) constant returns (uint) {
31-
return array[row][col];
32-
}
33-
3430
/* main function */
3531
function greet() constant returns (string) {
3632
return greeting;
@@ -39,8 +35,12 @@ contract greeter is mortal {
3935
/* we include indexed events to demonstrate the difference that can be
4036
captured versus non-indexed */
4137
event Modified(
42-
string indexed oldGreetingIdx, string indexed newGreetingIdx,
43-
string oldGreeting, string newGreeting);
38+
string indexed oldGreetingIdx, string indexed newGreetingIdx,
39+
string oldGreeting, string newGreeting);
40+
41+
function twoDimensionArray(uint[5][] array, uint row, uint col) constant returns (uint) {
42+
return array[row][col];
43+
}
4444

4545
function boolType(bool a) constant returns (bool) {
4646
return a;

etherspace-java/src/main/java/cc/etherspace/EtherSpace.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package cc.etherspace
33
import cc.etherspace.calladapter.CallAdapter
44
import cc.etherspace.calladapter.PassThroughCallAdaptor
55
import cc.etherspace.web3j.Web3jAdapter
6+
import com.fasterxml.jackson.databind.exc.MismatchedInputException
67
import com.google.common.reflect.TypeToken
78
import okhttp3.OkHttpClient
89
import java.io.IOException

etherspace-java/src/test/java/cc/etherspace/GreeterTest.kt

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package cc.etherspace
33
import okhttp3.OkHttpClient
44
import okhttp3.logging.HttpLoggingInterceptor
55
import org.amshove.kluent.`should be equal to`
6+
import org.amshove.kluent.`should be false`
67
import org.amshove.kluent.`should be greater than`
78
import org.amshove.kluent.`should equal`
89
import org.junit.Before
@@ -13,6 +14,7 @@ import java.math.BigInteger
1314

1415
class GreeterTest {
1516
private lateinit var greeter: Greeter
17+
private lateinit var etherSpace: EtherSpace
1618

1719
@Before
1820
fun setUp() {
@@ -22,14 +24,21 @@ class GreeterTest {
2224
.addInterceptor(interceptor)
2325
.build()
2426

25-
val etherSpace = EtherSpace.build {
27+
etherSpace = EtherSpace.build {
2628
client = okHttpClient
2729
provider = "https://rinkeby.infura.io/"
2830
credentials = WalletCredentials(Tests.TEST_WALLET_KEY)
2931
}
3032
greeter = etherSpace.create(Tests.TEST_CONTRACT_ADDRESS, Greeter::class.java)
3133
}
3234

35+
@Test
36+
fun wrongContract() {
37+
val wrongGreeter = etherSpace.create("0xf9746f03bd6f29787994701996dffd7a1007f3a6", Greeter::class.java)
38+
val receipt = wrongGreeter.newGreeting("Hello World")
39+
receipt.success.`should be false`()
40+
}
41+
3342
@Test
3443
fun newGreeting() {
3544
val receipt = greeter.newGreeting("Hello World")

etherspace-java/src/test/java/cc/etherspace/LocalGreeterTest.kt

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,37 +2,32 @@ package cc.etherspace
22

33
import com.fasterxml.jackson.annotation.JsonIgnoreProperties
44
import com.fasterxml.jackson.annotation.JsonInclude
5+
import com.fasterxml.jackson.databind.exc.MismatchedInputException
56
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
6-
import okhttp3.OkHttpClient
7-
import okhttp3.logging.HttpLoggingInterceptor
87
import org.amshove.kluent.`should be equal to`
8+
import org.amshove.kluent.`should be false`
99
import org.amshove.kluent.`should be greater than`
1010
import org.amshove.kluent.`should equal`
1111
import org.junit.Before
1212
import org.junit.Test
1313
import org.web3j.utils.Numeric
14-
import java.io.File
1514

1615
class LocalGreeterTest {
1716
private lateinit var greeter: Greeter
1817
private val objectMapper = jacksonObjectMapper()
18+
private lateinit var etherSpace: EtherSpace
1919

2020
@Before
2121
fun setUp() {
22-
var contractAddress = objectMapper.readValue(File("build/contracts/greeter.json"),
23-
ContractMetaData::class.java).networks.values.first().address
24-
25-
val interceptor = HttpLoggingInterceptor(HttpLoggingInterceptor.Logger { message -> println(message) })
26-
interceptor.level = HttpLoggingInterceptor.Level.BODY
27-
val okHttpClient = OkHttpClient.Builder()
28-
.addInterceptor(interceptor)
29-
.build()
22+
etherSpace = Tests.createEtherSpace()
23+
greeter = Tests.createContract(etherSpace, Greeter::class.java, objectMapper)
24+
}
3025

31-
val etherSpace = EtherSpace.build {
32-
client = okHttpClient
33-
credentials = WalletCredentials("0xc5aea8fb8b669d27da1c644064fb4cd80b7d3c9b7d2ebcab2bfade236834c784")
34-
}
35-
greeter = etherSpace.create(contractAddress, Greeter::class.java)
26+
@Test(expected = MismatchedInputException::class)
27+
fun wrongContract() {
28+
val wrongGreeter = etherSpace.create("0xf9746f03bd6f29787994701996dffd7a1007f3a6", Greeter::class.java)
29+
val receipt = wrongGreeter.newGreeting("Hello World")
30+
receipt.success.`should be false`()
3631
}
3732

3833
@Test
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,40 @@
11
package cc.etherspace
22

3+
import cc.etherspace.calladapter.CoroutineCallAdapter
4+
import com.fasterxml.jackson.databind.ObjectMapper
5+
import okhttp3.OkHttpClient
6+
import okhttp3.logging.HttpLoggingInterceptor
37
import org.web3j.crypto.Keys
8+
import java.io.File
49

510
object Tests {
611
const val TEST_WALLET_KEY = "0xab1e199623aa5bb2c381c349b1734e31b5be08de0486ffab68e3af4853d9980b"
712
@JvmField
813
val TEST_WALLET_ADDRESS = Keys.toChecksumAddress("0x39759a3c0ada2d61b6ca8eb6afc8243075307ed3")!!
914
@JvmField
1015
val TEST_CONTRACT_ADDRESS = Keys.toChecksumAddress("0xa871c507184ecfaf947253e187826c1907e8dc7d")!!
16+
17+
fun createEtherSpace(logLevel: HttpLoggingInterceptor.Level = HttpLoggingInterceptor.Level.NONE): EtherSpace {
18+
val interceptor = HttpLoggingInterceptor(HttpLoggingInterceptor.Logger { message -> println(message) })
19+
interceptor.level = logLevel
20+
val okHttpClient = OkHttpClient.Builder()
21+
.addInterceptor(interceptor)
22+
.build()
23+
24+
return EtherSpace.build {
25+
client = okHttpClient
26+
credentials = WalletCredentials("0xc5aea8fb8b669d27da1c644064fb4cd80b7d3c9b7d2ebcab2bfade236834c784")
27+
callAdapters += CoroutineCallAdapter()
28+
}
29+
}
30+
31+
fun <T> createContract(etherSpace: EtherSpace, clazz: Class<T>, objectMapper: ObjectMapper): T {
32+
val contractAddress = objectMapper.readValue(File("build/contracts/greeter.json"),
33+
LocalGreeterTest.ContractMetaData::class.java).networks.values.first().address
34+
return etherSpace.create(contractAddress, clazz)
35+
}
36+
37+
fun <T> createContract(etherSpace: EtherSpace, clazz: Class<T>, contractAddress: String): T {
38+
return etherSpace.create(contractAddress, clazz)
39+
}
1140
}

etherspace-java/src/test/java/cc/etherspace/calladapter/CoroutineGreeterTest.kt

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package cc.etherspace.calladapter
22

33
import cc.etherspace.*
4+
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
45
import kotlinx.coroutines.experimental.Deferred
56
import kotlinx.coroutines.experimental.runBlocking
67
import org.amshove.kluent.*
@@ -12,15 +13,22 @@ import java.math.BigInteger
1213

1314
class CoroutineGreeterTest {
1415
private lateinit var greeter: CoroutineGreeter
16+
private lateinit var etherSpace: EtherSpace
17+
private val objectMapper = jacksonObjectMapper()
1518

1619
@Before
1720
fun setUp() {
18-
val etherSpace = EtherSpace.build {
19-
provider = "https://rinkeby.infura.io/"
20-
credentials = WalletCredentials(Tests.TEST_WALLET_KEY)
21-
callAdapters += CoroutineCallAdapter()
21+
etherSpace = Tests.createEtherSpace()
22+
greeter = Tests.createContract(etherSpace, CoroutineGreeter::class.java, objectMapper)
23+
}
24+
25+
@Test(expected = IOException::class)
26+
fun wrongContract() {
27+
runBlocking {
28+
val wrongGreeter = etherSpace.create("0xf9746f03bd6f29787994701996dffd7a1007f3a6", CoroutineGreeter::class.java)
29+
val receipt = wrongGreeter.newGreeting("Hello World").await()
30+
receipt.success.`should be false`()
2231
}
23-
greeter = etherSpace.create(Tests.TEST_CONTRACT_ADDRESS, CoroutineGreeter::class.java)
2432
}
2533

2634
@Test
@@ -29,8 +37,6 @@ class CoroutineGreeterTest {
2937
val receipt = greeter.newGreeting("Hello World").await()
3038
receipt.blockHash.length.`should be equal to`(66)
3139
receipt.transactionHash.length.`should be equal to`(66)
32-
receipt.from!!.`should be equal to`(Tests.TEST_WALLET_ADDRESS)
33-
receipt.to!!.`should be equal to`(Tests.TEST_CONTRACT_ADDRESS)
3440
receipt.logs.size.`should be greater than`(0)
3541

3642
val events = receipt.listEvents(CoroutineGreeter.Modified::class.java)
@@ -51,8 +57,6 @@ class CoroutineGreeterTest {
5157
val receipt = hash.requestTransactionReceipt<Deferred<TransactionReceipt>>().await()
5258
receipt.blockHash.length.`should be equal to`(66)
5359
receipt.transactionHash.length.`should be equal to`(66)
54-
receipt.from!!.`should be equal to`(Tests.TEST_WALLET_ADDRESS)
55-
receipt.to!!.`should be equal to`(Tests.TEST_CONTRACT_ADDRESS)
5660
receipt.logs.size.`should be greater than`(0)
5761
}
5862
}
@@ -73,7 +77,7 @@ class CoroutineGreeterTest {
7377
}
7478
}
7579

76-
@Test(expected = IllegalArgumentException::class)
80+
@Test(expected = IOException::class)
7781
fun greet_wrongFunctionName() {
7882
runBlocking {
7983
val greet = greeter.greet_wrongFunctionName().await()

0 commit comments

Comments
 (0)