github.com/Hnampk/fabric@v2.1.1+incompatible/core/ledger/pvtdatastorage/test_exports.go (about)

     1  /*
     2  Copyright IBM Corp. All Rights Reserved.
     3  
     4  SPDX-License-Identifier: Apache-2.0
     5  */
     6  
     7  package pvtdatastorage
     8  
     9  import (
    10  	"io/ioutil"
    11  	"os"
    12  	"testing"
    13  
    14  	"github.com/hyperledger/fabric/core/ledger"
    15  	"github.com/hyperledger/fabric/core/ledger/pvtdatapolicy"
    16  	"github.com/stretchr/testify/assert"
    17  )
    18  
    19  func pvtDataConf() *PrivateDataConfig {
    20  	return &PrivateDataConfig{
    21  		PrivateDataConfig: &ledger.PrivateDataConfig{
    22  			BatchesInterval: 1000,
    23  			MaxBatchSize:    5000,
    24  			PurgeInterval:   2,
    25  		},
    26  		StorePath: "",
    27  	}
    28  }
    29  
    30  // StoreEnv provides the  store env for testing
    31  type StoreEnv struct {
    32  	t                 testing.TB
    33  	TestStoreProvider Provider
    34  	TestStore         Store
    35  	ledgerid          string
    36  	btlPolicy         pvtdatapolicy.BTLPolicy
    37  	conf              *PrivateDataConfig
    38  }
    39  
    40  // NewTestStoreEnv construct a StoreEnv for testing
    41  func NewTestStoreEnv(
    42  	t *testing.T,
    43  	ledgerid string,
    44  	btlPolicy pvtdatapolicy.BTLPolicy,
    45  	conf *PrivateDataConfig) *StoreEnv {
    46  
    47  	storeDir, err := ioutil.TempDir("", "pdstore")
    48  	if err != nil {
    49  		t.Fatalf("Failed to create private data storage directory: %s", err)
    50  	}
    51  	assert := assert.New(t)
    52  	conf.StorePath = storeDir
    53  	testStoreProvider, err := NewProvider(conf)
    54  	assert.NoError(err)
    55  	testStore, err := testStoreProvider.OpenStore(ledgerid)
    56  	testStore.Init(btlPolicy)
    57  	assert.NoError(err)
    58  	return &StoreEnv{t, testStoreProvider, testStore, ledgerid, btlPolicy, conf}
    59  }
    60  
    61  // CloseAndReopen closes and opens the store provider
    62  func (env *StoreEnv) CloseAndReopen() {
    63  	var err error
    64  	env.TestStoreProvider.Close()
    65  	env.TestStoreProvider, err = NewProvider(env.conf)
    66  	assert.NoError(env.t, err)
    67  	env.TestStore, err = env.TestStoreProvider.OpenStore(env.ledgerid)
    68  	env.TestStore.Init(env.btlPolicy)
    69  	assert.NoError(env.t, err)
    70  }
    71  
    72  // Cleanup cleansup the  store env after testing
    73  func (env *StoreEnv) Cleanup() {
    74  	os.RemoveAll(env.conf.StorePath)
    75  }