code: func NewMockProviderContext(userOpts ...ProviderOption) *MockProviderContext {
  
  	users := ProviderUsersOptions{}
  	for _, param := range userOpts {
  		err := param(&users)
  		if err != nil {
  			panic(fmt.Errorf("error creating MockProviderContext: %s", err))
  		}
  	}
  
  	im := make(map[string]msp.IdentityManager)
  	for org := range users.users {
  		im[org] = NewMockIdentityManager(WithUsers(users.users[org]))
  	}
  
  	context := MockProviderContext{
  		cryptoSuiteConfig: NewMockCryptoConfig(),
  		endpointConfig:    NewMockEndpointConfig(),
  		identityConfig:    NewMockIdentityConfig(),
  		signingManager:    mocks.NewMockSigningManager(),
  		cryptoSuite:       &MockCryptoSuite{},
  		userStore:         &mspmocks.MockUserStore{},
  		identityManager:   im,
  		infraProvider:     &MockInfraProvider{},
  		channelProvider:   &MockChannelProvider{},
  		identity:          users.identity,
  	}
  	return &context
  }
docs: // NewMockProviderContext creates a MockProviderContext consisting of defaults