func (p *MockProvider) VDRegistry() vdrapi.Registry {
	if p.CustomVDR != nil {
		return p.CustomVDR
	}
	return &mockvdr.MockVDRegistry{}
}
VDRegistry is mock vdr registry.
package protocol
import (
	"github.com/hyperledger/aries-framework-go/pkg/crypto"
	"github.com/hyperledger/aries-framework-go/pkg/didcomm/common/service"
	"github.com/hyperledger/aries-framework-go/pkg/didcomm/dispatcher"
	"github.com/hyperledger/aries-framework-go/pkg/didcomm/transport"
	didapi "github.com/hyperledger/aries-framework-go/pkg/doc/did"
	vdrapi "github.com/hyperledger/aries-framework-go/pkg/framework/aries/api/vdr"
	"github.com/hyperledger/aries-framework-go/pkg/kms"
	mockcrypto "github.com/hyperledger/aries-framework-go/pkg/mock/crypto"
	mockdispatcher "github.com/hyperledger/aries-framework-go/pkg/mock/didcomm/dispatcher"
	mockservice "github.com/hyperledger/aries-framework-go/pkg/mock/didcomm/service"
	mockkms "github.com/hyperledger/aries-framework-go/pkg/mock/kms"
	mocksecretlock "github.com/hyperledger/aries-framework-go/pkg/mock/secretlock"
	mockstore "github.com/hyperledger/aries-framework-go/pkg/mock/storage"
	mockvdr "github.com/hyperledger/aries-framework-go/pkg/mock/vdr"
	"github.com/hyperledger/aries-framework-go/pkg/secretlock"
	"github.com/hyperledger/aries-framework-go/pkg/store/did"
	"github.com/hyperledger/aries-framework-go/spi/storage"
)
type MockProvider struct {
	StoreProvider                storage.Provider
	ProtocolStateStoreProvider   storage.Provider
	CustomVDR                    vdrapi.Registry
	CustomOutbound               *mockdispatcher.MockOutbound
	CustomMessenger              *mockservice.MockMessenger
	CustomKMS                    kms.KeyManager
	CustomLock                   secretlock.Service
	CustomCrypto                 *mockcrypto.Crypto
	ServiceErr                   error
	ServiceMap                   map[string]interface{}
	InboundMsgHandler            transport.InboundMessageHandler
	InboundDIDCommMsgHandlerFunc func() service.InboundHandler
	KeyTypeValue                 kms.KeyType
	KeyAgreementTypeValue        kms.KeyType
	mediaTypeProfilesValue       []string
}
func (p *MockProvider) OutboundDispatcher() dispatcher.Outbound {
	if p.CustomOutbound != nil {
		return p.CustomOutbound
	}
	return &mockdispatcher.MockOutbound{}
}
func (p *MockProvider) StorageProvider() storage.Provider {
	if p.StoreProvider != nil {
		return p.StoreProvider
	}
	return mockstore.NewMockStoreProvider()
}
func (p *MockProvider) ProtocolStateStorageProvider() storage.Provider {
	if p.ProtocolStateStoreProvider != nil {
		return p.ProtocolStateStoreProvider
	}
	return mockstore.NewMockStoreProvider()
}
func (p *MockProvider) Crypto() crypto.Crypto {
	return &mockcrypto.Crypto{}
}