func (cm *Manager) Apply(configEnv *cb.ConfigEnvelope) error {
	cm.AppliedConfigUpdateEnvelope = configEnv
	return cm.ApplyVal
}
Apply returns ApplyVal
package configtx
import (
	"github.com/inklabsfoundation/inkchain/common/config"
	mockpolicies "github.com/inklabsfoundation/inkchain/common/mocks/policies"
	"github.com/inklabsfoundation/inkchain/common/policies"
	"github.com/inklabsfoundation/inkchain/msp"
	cb "github.com/inklabsfoundation/inkchain/protos/common"
	"github.com/golang/protobuf/proto"
)
type Resources struct {
	PolicyManagerVal *mockpolicies.Manager
	ChannelConfigVal config.Channel
	OrdererConfigVal config.Orderer
	ApplicationConfigVal config.Application
	ConsortiumsConfigVal config.Consortiums
	MSPManagerVal msp.MSPManager
}
func (r *Resources) PolicyManager() policies.Manager {
	return r.PolicyManagerVal
}
func (r *Resources) ChannelConfig() config.Channel {
	return r.ChannelConfigVal
}
func (r *Resources) OrdererConfig() (config.Orderer, bool) {
	return r.OrdererConfigVal, r.OrdererConfigVal == nil
}
func (r *Resources) ApplicationConfig() (config.Application, bool) {
	return r.ApplicationConfigVal, r.ApplicationConfigVal == nil
}
func (r *Resources) ConsortiumsConfig() (config.Consortiums, bool) {
	return r.ConsortiumsConfigVal, r.ConsortiumsConfigVal != nil
}
func (r *Resources) MSPManager() msp.MSPManager {
	return r.MSPManagerVal
}
type Transactional struct{}
func (t *Transactional) PreCommit(tx interface{}) error { return nil }
func (t *Transactional) CommitProposals(tx interface{}) {}
func (t *Transactional) RollbackProposals(tx interface{}) {}
type Initializer struct {
	Resources
	PolicyProposerVal *PolicyProposer
	ValueProposerVal *ValueProposer
}
func (i *Initializer) PolicyProposer() policies.Proposer {
	return i.PolicyProposerVal
}
func (i *Initializer) ValueProposer() config.ValueProposer {
	return i.ValueProposerVal
}
type PolicyProposer struct {
	Transactional
	LastKey               string
	LastPolicy            *cb.ConfigPolicy
	ErrorForProposePolicy error
}
func (pp *PolicyProposer) ProposePolicy(tx interface{}, key string, configPolicy *cb.ConfigPolicy) (proto.Message, error) {
	pp.LastKey = key
	pp.LastPolicy = configPolicy
	return nil, pp.ErrorForProposePolicy
}
func (pp *PolicyProposer) BeginPolicyProposals(tx interface{}, groups []string) ([]policies.Proposer, error) {
	handlers := make([]policies.Proposer, len(groups))
	for i := range handlers {
		handlers[i] = pp
	}
	return handlers, nil
}
type ValueProposer struct {
	Transactional
	LastKey               string
	LastValue             *cb.ConfigValue
	ErrorForProposeConfig error
	DeserializeReturn     proto.Message
	DeserializeError      error
}
func (vp *ValueProposer) BeginValueProposals(tx interface{}, groups []string) (config.ValueDeserializer, []config.ValueProposer, error) {
	handlers := make([]config.ValueProposer, len(groups))
	for i := range handlers {
		handlers[i] = vp
	}
	return vp, handlers, nil
}
func (vp *ValueProposer) Deserialize(key string, value []byte) (proto.Message, error) {
	return vp.DeserializeReturn, vp.DeserializeError
}
type Manager struct {
	Initializer
	ChainIDVal string
	SequenceVal uint64
	ApplyVal error
	AppliedConfigUpdateEnvelope *cb.ConfigEnvelope
	ValidateVal error
	ProposeConfigUpdateError error
	ProposeConfigUpdateVal *cb.ConfigEnvelope
	ConfigEnvelopeVal *cb.ConfigEnvelope
}
func (cm *Manager) ConfigEnvelope() *cb.ConfigEnvelope {
	return cm.ConfigEnvelopeVal
}
func (cm *Manager) ChainID() string {
	return cm.ChainIDVal
}
func (cm *Manager) Sequence() uint64 {
	return cm.SequenceVal
}
func (cm *Manager) ProposeConfigUpdate(update *cb.Envelope) (*cb.ConfigEnvelope, error) {
	return cm.ProposeConfigUpdateVal, cm.ProposeConfigUpdateError
}