Browse Source

Updated dependent version of bft-smart;

tags/1.2.0^2
huanghaiquan 4 years ago
parent
commit
e05c42702c
5 changed files with 706 additions and 870 deletions
  1. +1
    -1
      core/pom.xml
  2. +0
    -140
      framework/ledger-model/src/main/java/test/com/jd/blockchain/intgr/TestDbFactory.java
  3. +0
    -24
      framework/ledger-model/src/main/java/test/com/jd/blockchain/intgr/TestMemoryKVStorage.java
  4. +1
    -1
      libs/bft-smart
  5. +704
    -704
      test/test-integration/src/main/java/test/com/jd/blockchain/intgr/IntegrationTest.java

+ 1
- 1
core/pom.xml View File

@@ -15,7 +15,7 @@
<packaging>pom</packaging>

<properties>
<bftsmart.version>0.3.0.RELEASE</bftsmart.version>
<bftsmart.version>0.4.0.RELEASE</bftsmart.version>

<framework.version>1.2.0-SNAPSHOT</framework.version>
<explorer.version>1.1.2.RELEASE</explorer.version>


+ 0
- 140
framework/ledger-model/src/main/java/test/com/jd/blockchain/intgr/TestDbFactory.java View File

@@ -1,140 +0,0 @@
package test.com.jd.blockchain.intgr;

import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyLong;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.when;

import java.util.concurrent.atomic.AtomicBoolean;

import com.jd.blockchain.storage.service.*;
import com.jd.blockchain.storage.service.utils.MemoryKVStorage;
import org.mockito.Mockito;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;

public class TestDbFactory implements DbConnectionFactory{
private DbConnectionFactory innerDbFactory;
private AtomicBoolean errorSetTurnOn = new AtomicBoolean(false);
public TestDbFactory(DbConnectionFactory innerDbFactory) {
this.innerDbFactory = innerDbFactory;
}


Answer<ExPolicyKVStorage> exKVStorageMockedAnswer = new Answer<ExPolicyKVStorage>() {

@Override
public ExPolicyKVStorage answer(InvocationOnMock invocation) throws Throwable {

ExPolicyKVStorage reallyExKVStorage = (ExPolicyKVStorage) invocation.callRealMethod();

ExPolicyKVStorage mockExKVStorage = Mockito.spy(reallyExKVStorage);

//按条件开关触发异常;
doAnswer(new Answer<Boolean>() {

@Override
public Boolean answer(InvocationOnMock invocation) throws Throwable {
if (isErrorSetTurnOn()) {
return false;
}
return (Boolean) invocation.callRealMethod();
}
}).when(mockExKVStorage).set(any(), any(), any());

return mockExKVStorage;
}
};

Answer<VersioningKVStorage> verKVStorageMockedAnswer = new Answer<VersioningKVStorage>() {

@Override
public VersioningKVStorage answer(InvocationOnMock invocation) throws Throwable {

VersioningKVStorage reallyVerKVStorage = (VersioningKVStorage) invocation.callRealMethod();

VersioningKVStorage mockVerKVStorage = Mockito.spy(reallyVerKVStorage);

//按条件开关触发异常;
doAnswer(new Answer<Long>() {

@Override
public Long answer(InvocationOnMock invocation) throws Throwable {
if (isErrorSetTurnOn()) {
return (long)(-1);
}
return (Long) invocation.callRealMethod();
}
}).when(mockVerKVStorage).set(any(), any(), anyLong());

return mockVerKVStorage;
}
};

Answer<KVStorageService> storageMockedAnswer = new Answer<KVStorageService>() {

@Override
public KVStorageService answer(InvocationOnMock invocation) throws Throwable {

KVStorageService reallyStorage = (KVStorageService) invocation.callRealMethod();

TestMemoryKVStorage testMemoryKVStorage = new TestMemoryKVStorage((MemoryKVStorage)reallyStorage);

KVStorageService mockedStorage = Mockito.spy(testMemoryKVStorage);

doAnswer(exKVStorageMockedAnswer).when(mockedStorage).getExPolicyKVStorage();

doAnswer(verKVStorageMockedAnswer).when(mockedStorage).getVersioningKVStorage();

return mockedStorage;
}

};


@Override
public String dbPrefix() {
return innerDbFactory.dbPrefix();
}

@Override
public boolean support(String scheme) {
return innerDbFactory.support(scheme);
}

@Override
public DbConnection connect(String dbConnectionString) {
DbConnection reallyDbConn = innerDbFactory.connect(dbConnectionString);
DbConnection mockDbConn = Mockito.spy(reallyDbConn);

when(mockDbConn.getStorageService()).then(storageMockedAnswer);
return mockDbConn;
}

@Override
public DbConnection connect(String dbConnectionString, String password) {
return connect(dbConnectionString);
}

@Override
public void close() {
innerDbFactory.close();
}

public boolean isErrorSetTurnOn() {
return errorSetTurnOn.get();
}

public void setErrorSetTurnOn(boolean errorSetTurnOn) {
this.errorSetTurnOn.set(errorSetTurnOn);;
}

}

+ 0
- 24
framework/ledger-model/src/main/java/test/com/jd/blockchain/intgr/TestMemoryKVStorage.java View File

@@ -1,24 +0,0 @@
package test.com.jd.blockchain.intgr;

import com.jd.blockchain.storage.service.ExPolicyKVStorage;
import com.jd.blockchain.storage.service.VersioningKVStorage;
import com.jd.blockchain.storage.service.utils.MemoryKVStorage;

public class TestMemoryKVStorage extends MemoryKVStorage {

private MemoryKVStorage memoryKVStorage;

public TestMemoryKVStorage(MemoryKVStorage memoryKVStorage) {
this.memoryKVStorage = memoryKVStorage;
}

@Override
public ExPolicyKVStorage getExPolicyKVStorage() {
return memoryKVStorage;
}

@Override
public VersioningKVStorage getVersioningKVStorage() {
return memoryKVStorage;
}
}

+ 1
- 1
libs/bft-smart

@@ -1 +1 @@
Subproject commit 6b5b3c24353536ac6316ff8be1ffb186f8875a86
Subproject commit 765d6909106afaae966c5c25137d7ad12c44e61f

+ 704
- 704
test/test-integration/src/main/java/test/com/jd/blockchain/intgr/IntegrationTest.java
File diff suppressed because it is too large
View File


Loading…
Cancel
Save