plugintest

package
v5.6.1-rc2+incompatible Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 14, 2018 License: AGPL-3.0, Apache-2.0 Imports: 5 Imported by: 0

Documentation

Overview

The plugintest package provides mocks that can be used to test plugins.

The mocks are created using testify's mock package: https://godoc.org/github.com/stretchr/testify/mock

If you need to import the mock package, you can import it with "github.com/mattermost/mattermost-server/plugin/plugintest/mock".

Example
package main

import (
	"fmt"
	"io/ioutil"
	"net/http"
	"net/http/httptest"
	"testing"

	"github.com/stretchr/testify/assert"
	"github.com/stretchr/testify/require"

	"github.com/mattermost/mattermost-server/model"
	"github.com/mattermost/mattermost-server/plugin"
	"github.com/mattermost/mattermost-server/plugin/plugintest"
)

type HelloUserPlugin struct {
	plugin.MattermostPlugin
}

func (p *HelloUserPlugin) ServeHTTP(context *plugin.Context, w http.ResponseWriter, r *http.Request) {
	userId := r.Header.Get("Mattermost-User-Id")
	user, err := p.API.GetUser(userId)
	if err != nil {
		w.WriteHeader(http.StatusBadRequest)
		p.API.LogError(err.Error())
		return
	}

	fmt.Fprintf(w, "Welcome back, %s!", user.Username)
}

func main() {
	t := &testing.T{}
	user := &model.User{
		Id:       model.NewId(),
		Username: "billybob",
	}

	api := &plugintest.API{}
	api.On("GetUser", user.Id).Return(user, nil)
	defer api.AssertExpectations(t)

	p := &HelloUserPlugin{}
	p.SetAPI(api)

	w := httptest.NewRecorder()
	r := httptest.NewRequest("GET", "/", nil)
	r.Header.Add("Mattermost-User-Id", user.Id)
	p.ServeHTTP(&plugin.Context{}, w, r)
	body, err := ioutil.ReadAll(w.Result().Body)
	require.NoError(t, err)
	assert.Equal(t, "Welcome back, billybob!", string(body))
}
Output:

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type API

type API struct {
	mock.Mock
}

API is an autogenerated mock type for the API type

func (*API) AddChannelMember

func (_m *API) AddChannelMember(channelId string, userId string) (*model.ChannelMember, *model.AppError)

AddChannelMember provides a mock function with given fields: channelId, userId

func (*API) AddReaction

func (_m *API) AddReaction(reaction *model.Reaction) (*model.Reaction, *model.AppError)

AddReaction provides a mock function with given fields: reaction

func (*API) CopyFileInfos

func (_m *API) CopyFileInfos(userId string, fileIds []string) ([]string, *model.AppError)

CopyFileInfos provides a mock function with given fields: userId, fileIds

func (*API) CreateChannel

func (_m *API) CreateChannel(channel *model.Channel) (*model.Channel, *model.AppError)

CreateChannel provides a mock function with given fields: channel

func (*API) CreatePost

func (_m *API) CreatePost(post *model.Post) (*model.Post, *model.AppError)

CreatePost provides a mock function with given fields: post

func (*API) CreateTeam

func (_m *API) CreateTeam(team *model.Team) (*model.Team, *model.AppError)

CreateTeam provides a mock function with given fields: team

func (*API) CreateTeamMember

func (_m *API) CreateTeamMember(teamId string, userId string) (*model.TeamMember, *model.AppError)

CreateTeamMember provides a mock function with given fields: teamId, userId

func (*API) CreateTeamMembers

func (_m *API) CreateTeamMembers(teamId string, userIds []string, requestorId string) ([]*model.TeamMember, *model.AppError)

CreateTeamMembers provides a mock function with given fields: teamId, userIds, requestorId

func (*API) CreateUser

func (_m *API) CreateUser(user *model.User) (*model.User, *model.AppError)

CreateUser provides a mock function with given fields: user

func (*API) DeleteChannel

func (_m *API) DeleteChannel(channelId string) *model.AppError

DeleteChannel provides a mock function with given fields: channelId

func (*API) DeleteChannelMember

func (_m *API) DeleteChannelMember(channelId string, userId string) *model.AppError

DeleteChannelMember provides a mock function with given fields: channelId, userId

func (*API) DeletePost

func (_m *API) DeletePost(postId string) *model.AppError

DeletePost provides a mock function with given fields: postId

func (*API) DeleteTeam

func (_m *API) DeleteTeam(teamId string) *model.AppError

DeleteTeam provides a mock function with given fields: teamId

func (*API) DeleteTeamMember

func (_m *API) DeleteTeamMember(teamId string, userId string, requestorId string) *model.AppError

DeleteTeamMember provides a mock function with given fields: teamId, userId, requestorId

func (*API) DeleteUser

func (_m *API) DeleteUser(userId string) *model.AppError

DeleteUser provides a mock function with given fields: userId

func (*API) DisablePlugin

func (_m *API) DisablePlugin(id string) *model.AppError

DisablePlugin provides a mock function with given fields: id

func (*API) EnablePlugin

func (_m *API) EnablePlugin(id string) *model.AppError

EnablePlugin provides a mock function with given fields: id

func (*API) GetChannel

func (_m *API) GetChannel(channelId string) (*model.Channel, *model.AppError)

GetChannel provides a mock function with given fields: channelId

func (*API) GetChannelByName

func (_m *API) GetChannelByName(teamId string, name string, includeDeleted bool) (*model.Channel, *model.AppError)

GetChannelByName provides a mock function with given fields: teamId, name, includeDeleted

func (*API) GetChannelByNameForTeamName

func (_m *API) GetChannelByNameForTeamName(teamName string, channelName string, includeDeleted bool) (*model.Channel, *model.AppError)

GetChannelByNameForTeamName provides a mock function with given fields: teamName, channelName, includeDeleted

func (*API) GetChannelMember

func (_m *API) GetChannelMember(channelId string, userId string) (*model.ChannelMember, *model.AppError)

GetChannelMember provides a mock function with given fields: channelId, userId

func (*API) GetChannelMembers

func (_m *API) GetChannelMembers(channelId string, page int, perPage int) (*model.ChannelMembers, *model.AppError)

GetChannelMembers provides a mock function with given fields: channelId, page, perPage

func (*API) GetChannelMembersByIds

func (_m *API) GetChannelMembersByIds(channelId string, userIds []string) (*model.ChannelMembers, *model.AppError)

GetChannelMembersByIds provides a mock function with given fields: channelId, userIds

func (*API) GetChannelStats

func (_m *API) GetChannelStats(channelId string) (*model.ChannelStats, *model.AppError)

GetChannelStats provides a mock function with given fields: channelId

func (*API) GetChannelsForTeamForUser

func (_m *API) GetChannelsForTeamForUser(teamId string, userId string, includeDeleted bool) ([]*model.Channel, *model.AppError)

GetChannelsForTeamForUser provides a mock function with given fields: teamId, userId, includeDeleted

func (*API) GetConfig

func (_m *API) GetConfig() *model.Config

GetConfig provides a mock function with given fields:

func (*API) GetDirectChannel

func (_m *API) GetDirectChannel(userId1 string, userId2 string) (*model.Channel, *model.AppError)

GetDirectChannel provides a mock function with given fields: userId1, userId2

func (*API) GetEmoji

func (_m *API) GetEmoji(emojiId string) (*model.Emoji, *model.AppError)

GetEmoji provides a mock function with given fields: emojiId

func (*API) GetEmojiByName

func (_m *API) GetEmojiByName(name string) (*model.Emoji, *model.AppError)

GetEmojiByName provides a mock function with given fields: name

func (*API) GetEmojiImage

func (_m *API) GetEmojiImage(emojiId string) ([]byte, string, *model.AppError)

GetEmojiImage provides a mock function with given fields: emojiId

func (*API) GetEmojiList

func (_m *API) GetEmojiList(sortBy string, page int, perPage int) ([]*model.Emoji, *model.AppError)

GetEmojiList provides a mock function with given fields: sortBy, page, perPage

func (*API) GetFileInfo

func (_m *API) GetFileInfo(fileId string) (*model.FileInfo, *model.AppError)

GetFileInfo provides a mock function with given fields: fileId

func (_m *API) GetFileLink(fileId string) (string, *model.AppError)

GetFileLink provides a mock function with given fields: fileId

func (*API) GetGroupChannel

func (_m *API) GetGroupChannel(userIds []string) (*model.Channel, *model.AppError)

GetGroupChannel provides a mock function with given fields: userIds

func (*API) GetLDAPUserAttributes

func (_m *API) GetLDAPUserAttributes(userId string, attributes []string) (map[string]string, *model.AppError)

GetLDAPUserAttributes provides a mock function with given fields: userId, attributes

func (*API) GetPluginConfig

func (_m *API) GetPluginConfig() map[string]interface{}

GetPluginConfig provides a mock function with given fields:

func (*API) GetPluginStatus

func (_m *API) GetPluginStatus(id string) (*model.PluginStatus, *model.AppError)

GetPluginStatus provides a mock function with given fields: id

func (*API) GetPlugins

func (_m *API) GetPlugins() ([]*model.Manifest, *model.AppError)

GetPlugins provides a mock function with given fields:

func (*API) GetPost

func (_m *API) GetPost(postId string) (*model.Post, *model.AppError)

GetPost provides a mock function with given fields: postId

func (*API) GetPostThread

func (_m *API) GetPostThread(postId string) (*model.PostList, *model.AppError)

GetPostThread provides a mock function with given fields: postId

func (*API) GetPostsAfter

func (_m *API) GetPostsAfter(channelId string, postId string, page int, perPage int) (*model.PostList, *model.AppError)

GetPostsAfter provides a mock function with given fields: channelId, postId, page, perPage

func (*API) GetPostsBefore

func (_m *API) GetPostsBefore(channelId string, postId string, page int, perPage int) (*model.PostList, *model.AppError)

GetPostsBefore provides a mock function with given fields: channelId, postId, page, perPage

func (*API) GetPostsForChannel

func (_m *API) GetPostsForChannel(channelId string, page int, perPage int) (*model.PostList, *model.AppError)

GetPostsForChannel provides a mock function with given fields: channelId, page, perPage

func (*API) GetPostsSince

func (_m *API) GetPostsSince(channelId string, time int64) (*model.PostList, *model.AppError)

GetPostsSince provides a mock function with given fields: channelId, time

func (*API) GetProfileImage

func (_m *API) GetProfileImage(userId string) ([]byte, *model.AppError)

GetProfileImage provides a mock function with given fields: userId

func (*API) GetPublicChannelsForTeam

func (_m *API) GetPublicChannelsForTeam(teamId string, page int, perPage int) ([]*model.Channel, *model.AppError)

GetPublicChannelsForTeam provides a mock function with given fields: teamId, page, perPage

func (*API) GetReactions

func (_m *API) GetReactions(postId string) ([]*model.Reaction, *model.AppError)

GetReactions provides a mock function with given fields: postId

func (*API) GetServerVersion

func (_m *API) GetServerVersion() string

GetServerVersion provides a mock function with given fields:

func (*API) GetSession

func (_m *API) GetSession(sessionId string) (*model.Session, *model.AppError)

GetSession provides a mock function with given fields: sessionId

func (*API) GetTeam

func (_m *API) GetTeam(teamId string) (*model.Team, *model.AppError)

GetTeam provides a mock function with given fields: teamId

func (*API) GetTeamByName

func (_m *API) GetTeamByName(name string) (*model.Team, *model.AppError)

GetTeamByName provides a mock function with given fields: name

func (*API) GetTeamIcon

func (_m *API) GetTeamIcon(teamId string) ([]byte, *model.AppError)

GetTeamIcon provides a mock function with given fields: teamId

func (*API) GetTeamMember

func (_m *API) GetTeamMember(teamId string, userId string) (*model.TeamMember, *model.AppError)

GetTeamMember provides a mock function with given fields: teamId, userId

func (*API) GetTeamMembers

func (_m *API) GetTeamMembers(teamId string, page int, perPage int) ([]*model.TeamMember, *model.AppError)

GetTeamMembers provides a mock function with given fields: teamId, page, perPage

func (*API) GetTeams

func (_m *API) GetTeams() ([]*model.Team, *model.AppError)

GetTeams provides a mock function with given fields:

func (*API) GetTeamsForUser

func (_m *API) GetTeamsForUser(userId string) ([]*model.Team, *model.AppError)

GetTeamsForUser provides a mock function with given fields: userId

func (*API) GetTeamsUnreadForUser

func (_m *API) GetTeamsUnreadForUser(userId string) ([]*model.TeamUnread, *model.AppError)

GetTeamsUnreadForUser provides a mock function with given fields: userId

func (*API) GetUser

func (_m *API) GetUser(userId string) (*model.User, *model.AppError)

GetUser provides a mock function with given fields: userId

func (*API) GetUserByEmail

func (_m *API) GetUserByEmail(email string) (*model.User, *model.AppError)

GetUserByEmail provides a mock function with given fields: email

func (*API) GetUserByUsername

func (_m *API) GetUserByUsername(name string) (*model.User, *model.AppError)

GetUserByUsername provides a mock function with given fields: name

func (*API) GetUserStatus

func (_m *API) GetUserStatus(userId string) (*model.Status, *model.AppError)

GetUserStatus provides a mock function with given fields: userId

func (*API) GetUserStatusesByIds

func (_m *API) GetUserStatusesByIds(userIds []string) ([]*model.Status, *model.AppError)

GetUserStatusesByIds provides a mock function with given fields: userIds

func (*API) GetUsersByUsernames

func (_m *API) GetUsersByUsernames(usernames []string) ([]*model.User, *model.AppError)

GetUsersByUsernames provides a mock function with given fields: usernames

func (*API) GetUsersInChannel

func (_m *API) GetUsersInChannel(channelId string, sortBy string, page int, perPage int) ([]*model.User, *model.AppError)

GetUsersInChannel provides a mock function with given fields: channelId, sortBy, page, perPage

func (*API) GetUsersInTeam

func (_m *API) GetUsersInTeam(teamId string, page int, perPage int) ([]*model.User, *model.AppError)

GetUsersInTeam provides a mock function with given fields: teamId, page, perPage

func (*API) HasPermissionTo

func (_m *API) HasPermissionTo(userId string, permission *model.Permission) bool

HasPermissionTo provides a mock function with given fields: userId, permission

func (*API) HasPermissionToChannel

func (_m *API) HasPermissionToChannel(userId string, channelId string, permission *model.Permission) bool

HasPermissionToChannel provides a mock function with given fields: userId, channelId, permission

func (*API) HasPermissionToTeam

func (_m *API) HasPermissionToTeam(userId string, teamId string, permission *model.Permission) bool

HasPermissionToTeam provides a mock function with given fields: userId, teamId, permission

func (*API) KVDelete

func (_m *API) KVDelete(key string) *model.AppError

KVDelete provides a mock function with given fields: key

func (*API) KVDeleteAll

func (_m *API) KVDeleteAll() *model.AppError

KVDeleteAll provides a mock function with given fields:

func (*API) KVGet

func (_m *API) KVGet(key string) ([]byte, *model.AppError)

KVGet provides a mock function with given fields: key

func (*API) KVList

func (_m *API) KVList(page int, perPage int) ([]string, *model.AppError)

KVList provides a mock function with given fields: page, perPage

func (*API) KVSet

func (_m *API) KVSet(key string, value []byte) *model.AppError

KVSet provides a mock function with given fields: key, value

func (*API) KVSetWithExpiry

func (_m *API) KVSetWithExpiry(key string, value []byte, expireInSeconds int64) *model.AppError

KVSetWithExpiry provides a mock function with given fields: key, value, expireInSeconds

func (*API) LoadPluginConfiguration

func (_m *API) LoadPluginConfiguration(dest interface{}) error

LoadPluginConfiguration provides a mock function with given fields: dest

func (*API) LogDebug

func (_m *API) LogDebug(msg string, keyValuePairs ...interface{})

LogDebug provides a mock function with given fields: msg, keyValuePairs

func (*API) LogError

func (_m *API) LogError(msg string, keyValuePairs ...interface{})

LogError provides a mock function with given fields: msg, keyValuePairs

func (*API) LogInfo

func (_m *API) LogInfo(msg string, keyValuePairs ...interface{})

LogInfo provides a mock function with given fields: msg, keyValuePairs

func (*API) LogWarn

func (_m *API) LogWarn(msg string, keyValuePairs ...interface{})

LogWarn provides a mock function with given fields: msg, keyValuePairs

func (*API) OpenInteractiveDialog

func (_m *API) OpenInteractiveDialog(dialog model.OpenDialogRequest) *model.AppError

OpenInteractiveDialog provides a mock function with given fields: dialog

func (*API) PublishWebSocketEvent

func (_m *API) PublishWebSocketEvent(event string, payload map[string]interface{}, broadcast *model.WebsocketBroadcast)

PublishWebSocketEvent provides a mock function with given fields: event, payload, broadcast

func (*API) ReadFile

func (_m *API) ReadFile(path string) ([]byte, *model.AppError)

ReadFile provides a mock function with given fields: path

func (*API) RegisterCommand

func (_m *API) RegisterCommand(command *model.Command) error

RegisterCommand provides a mock function with given fields: command

func (*API) RemovePlugin

func (_m *API) RemovePlugin(id string) *model.AppError

RemovePlugin provides a mock function with given fields: id

func (*API) RemoveReaction

func (_m *API) RemoveReaction(reaction *model.Reaction) *model.AppError

RemoveReaction provides a mock function with given fields: reaction

func (*API) RemoveTeamIcon

func (_m *API) RemoveTeamIcon(teamId string) *model.AppError

RemoveTeamIcon provides a mock function with given fields: teamId

func (*API) SaveConfig

func (_m *API) SaveConfig(config *model.Config) *model.AppError

SaveConfig provides a mock function with given fields: config

func (*API) SavePluginConfig

func (_m *API) SavePluginConfig(config map[string]interface{}) *model.AppError

SavePluginConfig provides a mock function with given fields: config

func (*API) SearchChannels

func (_m *API) SearchChannels(teamId string, term string) ([]*model.Channel, *model.AppError)

SearchChannels provides a mock function with given fields: teamId, term

func (*API) SendEphemeralPost

func (_m *API) SendEphemeralPost(userId string, post *model.Post) *model.Post

SendEphemeralPost provides a mock function with given fields: userId, post

func (*API) SetProfileImage

func (_m *API) SetProfileImage(userId string, data []byte) *model.AppError

SetProfileImage provides a mock function with given fields: userId, data

func (*API) SetTeamIcon

func (_m *API) SetTeamIcon(teamId string, data []byte) *model.AppError

SetTeamIcon provides a mock function with given fields: teamId, data

func (*API) UnregisterCommand

func (_m *API) UnregisterCommand(teamId string, trigger string) error

UnregisterCommand provides a mock function with given fields: teamId, trigger

func (*API) UpdateChannel

func (_m *API) UpdateChannel(channel *model.Channel) (*model.Channel, *model.AppError)

UpdateChannel provides a mock function with given fields: channel

func (*API) UpdateChannelMemberNotifications

func (_m *API) UpdateChannelMemberNotifications(channelId string, userId string, notifications map[string]string) (*model.ChannelMember, *model.AppError)

UpdateChannelMemberNotifications provides a mock function with given fields: channelId, userId, notifications

func (*API) UpdateChannelMemberRoles

func (_m *API) UpdateChannelMemberRoles(channelId string, userId string, newRoles string) (*model.ChannelMember, *model.AppError)

UpdateChannelMemberRoles provides a mock function with given fields: channelId, userId, newRoles

func (*API) UpdatePost

func (_m *API) UpdatePost(post *model.Post) (*model.Post, *model.AppError)

UpdatePost provides a mock function with given fields: post

func (*API) UpdateTeam

func (_m *API) UpdateTeam(team *model.Team) (*model.Team, *model.AppError)

UpdateTeam provides a mock function with given fields: team

func (*API) UpdateTeamMemberRoles

func (_m *API) UpdateTeamMemberRoles(teamId string, userId string, newRoles string) (*model.TeamMember, *model.AppError)

UpdateTeamMemberRoles provides a mock function with given fields: teamId, userId, newRoles

func (*API) UpdateUser

func (_m *API) UpdateUser(user *model.User) (*model.User, *model.AppError)

UpdateUser provides a mock function with given fields: user

func (*API) UpdateUserStatus

func (_m *API) UpdateUserStatus(userId string, status string) (*model.Status, *model.AppError)

UpdateUserStatus provides a mock function with given fields: userId, status

func (*API) UploadFile

func (_m *API) UploadFile(data []byte, channelId string, filename string) (*model.FileInfo, *model.AppError)

UploadFile provides a mock function with given fields: data, channelId, filename

type Hooks

type Hooks struct {
	mock.Mock
}

Hooks is an autogenerated mock type for the Hooks type

func (*Hooks) ChannelHasBeenCreated

func (_m *Hooks) ChannelHasBeenCreated(c *plugin.Context, channel *model.Channel)

ChannelHasBeenCreated provides a mock function with given fields: c, channel

func (*Hooks) ExecuteCommand

func (_m *Hooks) ExecuteCommand(c *plugin.Context, args *model.CommandArgs) (*model.CommandResponse, *model.AppError)

ExecuteCommand provides a mock function with given fields: c, args

func (*Hooks) FileWillBeUploaded

func (_m *Hooks) FileWillBeUploaded(c *plugin.Context, info *model.FileInfo, file io.Reader, output io.Writer) (*model.FileInfo, string)

FileWillBeUploaded provides a mock function with given fields: c, info, file, output

func (*Hooks) Implemented

func (_m *Hooks) Implemented() ([]string, error)

Implemented provides a mock function with given fields:

func (*Hooks) MessageHasBeenPosted

func (_m *Hooks) MessageHasBeenPosted(c *plugin.Context, post *model.Post)

MessageHasBeenPosted provides a mock function with given fields: c, post

func (*Hooks) MessageHasBeenUpdated

func (_m *Hooks) MessageHasBeenUpdated(c *plugin.Context, newPost *model.Post, oldPost *model.Post)

MessageHasBeenUpdated provides a mock function with given fields: c, newPost, oldPost

func (*Hooks) MessageWillBePosted

func (_m *Hooks) MessageWillBePosted(c *plugin.Context, post *model.Post) (*model.Post, string)

MessageWillBePosted provides a mock function with given fields: c, post

func (*Hooks) MessageWillBeUpdated

func (_m *Hooks) MessageWillBeUpdated(c *plugin.Context, newPost *model.Post, oldPost *model.Post) (*model.Post, string)

MessageWillBeUpdated provides a mock function with given fields: c, newPost, oldPost

func (*Hooks) OnActivate

func (_m *Hooks) OnActivate() error

OnActivate provides a mock function with given fields:

func (*Hooks) OnConfigurationChange

func (_m *Hooks) OnConfigurationChange() error

OnConfigurationChange provides a mock function with given fields:

func (*Hooks) OnDeactivate

func (_m *Hooks) OnDeactivate() error

OnDeactivate provides a mock function with given fields:

func (*Hooks) ServeHTTP

func (_m *Hooks) ServeHTTP(c *plugin.Context, w http.ResponseWriter, r *http.Request)

ServeHTTP provides a mock function with given fields: c, w, r

func (*Hooks) UserHasJoinedChannel

func (_m *Hooks) UserHasJoinedChannel(c *plugin.Context, channelMember *model.ChannelMember, actor *model.User)

UserHasJoinedChannel provides a mock function with given fields: c, channelMember, actor

func (*Hooks) UserHasJoinedTeam

func (_m *Hooks) UserHasJoinedTeam(c *plugin.Context, teamMember *model.TeamMember, actor *model.User)

UserHasJoinedTeam provides a mock function with given fields: c, teamMember, actor

func (*Hooks) UserHasLeftChannel

func (_m *Hooks) UserHasLeftChannel(c *plugin.Context, channelMember *model.ChannelMember, actor *model.User)

UserHasLeftChannel provides a mock function with given fields: c, channelMember, actor

func (*Hooks) UserHasLeftTeam

func (_m *Hooks) UserHasLeftTeam(c *plugin.Context, teamMember *model.TeamMember, actor *model.User)

UserHasLeftTeam provides a mock function with given fields: c, teamMember, actor

func (*Hooks) UserHasLoggedIn

func (_m *Hooks) UserHasLoggedIn(c *plugin.Context, user *model.User)

UserHasLoggedIn provides a mock function with given fields: c, user

func (*Hooks) UserWillLogIn

func (_m *Hooks) UserWillLogIn(c *plugin.Context, user *model.User) string

UserWillLogIn provides a mock function with given fields: c, user

Directories

Path Synopsis
This package provides aliases for the contents of "github.com/stretchr/testify/mock".
This package provides aliases for the contents of "github.com/stretchr/testify/mock".

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL