github.com/hechain20/hechain@v0.0.0-20220316014945-b544036ba106/core/ledger/pvtdatapolicy/testutil/util.go (about)

     1  /*
     2  Copyright hechain. All Rights Reserved.
     3  
     4  SPDX-License-Identifier: Apache-2.0
     5  */
     6  
     7  package testutil
     8  
     9  import (
    10  	"github.com/hechain20/hechain/core/ledger/pvtdatapolicy"
    11  	"github.com/hechain20/hechain/core/ledger/pvtdatapolicy/mock"
    12  	"github.com/hyperledger/fabric-protos-go/peer"
    13  )
    14  
    15  // SampleBTLPolicy helps tests create a sample BTLPolicy
    16  // The example input entry is [2]string{ns, coll}:btl
    17  func SampleBTLPolicy(m map[[2]string]uint64) pvtdatapolicy.BTLPolicy {
    18  	ccInfoRetriever := &mock.CollectionInfoProvider{}
    19  	ccInfoRetriever.CollectionInfoStub = func(ccName, collName string) (*peer.StaticCollectionConfig, error) {
    20  		btl := m[[2]string{ccName, collName}]
    21  		return &peer.StaticCollectionConfig{BlockToLive: btl}, nil
    22  	}
    23  	return pvtdatapolicy.ConstructBTLPolicy(ccInfoRetriever)
    24  }
    25  
    26  type ErrorCausingBTLPolicy struct {
    27  	Err error
    28  }
    29  
    30  func (p *ErrorCausingBTLPolicy) GetBTL(namespace string, collection string) (uint64, error) {
    31  	return 0, p.Err
    32  }
    33  
    34  func (p *ErrorCausingBTLPolicy) GetExpiringBlock(namespace string, collection string, committingBlock uint64) (uint64, error) {
    35  	return 0, p.Err
    36  }