Documentation
¶
Overview ¶
Package easmock provides hand-written test doubles for the github.com/hstern/go-activesync/eas interface set.
Each interface in eas has a sibling struct here with one func-typed field per method. Tests set the fields they care about; methods whose Func is nil return a sentinel error so a misbehaving handler fails loudly rather than silently calling a no-op.
mock := &easmock.Client{
EmailClient: easmock.EmailClient{
SyncEmailFunc: func(ctx context.Context, fid string, opts eas.EmailSyncOptions) (*eas.EmailSyncResult, error) {
return &eas.EmailSyncResult{SyncKey: "1", Added: []eas.EmailItem{{Subject: "hi"}}}, nil
},
},
}
// mock implements eas.Client; pass it where the consumer expects
// an eas.Client.
The mocks are intentionally hand-written: zero codegen, zero deps, and easy to extend when eas adds methods (the only edits are an extra Func field and a one-method stub).
Index ¶
- type CalendarClient
- func (m *CalendarClient) CreateEvent(ctx context.Context, folderID string, draft eas.EventDraft) (string, error)
- func (m *CalendarClient) DeleteEvent(ctx context.Context, folderID, serverID string) error
- func (m *CalendarClient) RespondInvite(ctx context.Context, folderID, serverID string, ...) (*eas.MeetingResponseResult, error)
- func (m *CalendarClient) SyncCalendar(ctx context.Context, folderID string, opts eas.CalendarSyncOptions) (*eas.CalendarSyncResult, error)
- func (m *CalendarClient) UpdateEvent(ctx context.Context, folderID, serverID string, draft eas.EventDraft) error
- type Client
- type ContactsClient
- func (m *ContactsClient) CreateContact(ctx context.Context, folderID string, draft eas.ContactDraft) (string, error)
- func (m *ContactsClient) DeleteContact(ctx context.Context, folderID, serverID string) error
- func (m *ContactsClient) SyncContacts(ctx context.Context, folderID string) (*eas.ContactsSyncResult, error)
- func (m *ContactsClient) UpdateContact(ctx context.Context, folderID, serverID string, draft eas.ContactDraft) error
- type EmailClient
- func (m *EmailClient) ApplyEmailChanges(ctx context.Context, folderID string, changes []eas.EmailChange) ([]eas.EmailChangeResult, error)
- func (m *EmailClient) FetchEmail(ctx context.Context, folderID, serverID string, opts eas.FetchEmailOptions) (*eas.EmailItem, error)
- func (m *EmailClient) FindEmail(ctx context.Context, query string, opts eas.FindOptions) (*eas.FindResult, error)
- func (m *EmailClient) SearchEmail(ctx context.Context, query string, opts eas.EmailSearchOptions) (*eas.EmailSearchResult, error)
- func (m *EmailClient) SearchEmailQuery(ctx context.Context, q eas.Query, opts eas.EmailSearchOptions) (*eas.EmailSearchResult, error)
- func (m *EmailClient) SendMail(ctx context.Context, opts eas.SendMailOptions) error
- func (m *EmailClient) SmartForward(ctx context.Context, opts eas.ReplyForwardOptions) error
- func (m *EmailClient) SmartReply(ctx context.Context, opts eas.ReplyForwardOptions) error
- func (m *EmailClient) SyncEmail(ctx context.Context, folderID string, opts eas.EmailSyncOptions) (*eas.EmailSyncResult, error)
- type FolderClient
- func (m *FolderClient) EmptyFolderContents(ctx context.Context, folderID string, deleteSubfolders bool) error
- func (m *FolderClient) FetchAttachment(ctx context.Context, fileReference string, rangeStart, rangeEnd int64) (*eas.FetchAttachmentResult, error)
- func (m *FolderClient) FetchDocumentLibrary(ctx context.Context, linkID string, rangeStart, rangeEnd int64) ([]byte, error)
- func (m *FolderClient) FolderCreate(ctx context.Context, parentID, displayName string, folderType eas.FolderType) (*eas.FolderCreateResult, error)
- func (m *FolderClient) FolderDelete(ctx context.Context, serverID string) error
- func (m *FolderClient) FolderSync(ctx context.Context) (*eas.FolderSyncResult, error)
- func (m *FolderClient) FolderUpdate(ctx context.Context, serverID, newParentID, newDisplayName string) error
- func (m *FolderClient) GetItemEstimate(ctx context.Context, folderIDs []string) ([]eas.ItemEstimate, error)
- func (m *FolderClient) MoveItems(ctx context.Context, srcFolder, dstFolder string, ids []string) ([]eas.MoveItemResult, error)
- func (m *FolderClient) MoveViaItemOperations(ctx context.Context, srcFolder, srcID, dstFolder string, moveAlways bool) (string, error)
- type NotesClient
- func (m *NotesClient) CreateNote(ctx context.Context, folderID string, draft eas.NoteDraft) (string, error)
- func (m *NotesClient) DeleteNote(ctx context.Context, folderID, serverID string) error
- func (m *NotesClient) SyncNotes(ctx context.Context, folderID string) (*eas.NotesSyncResult, error)
- func (m *NotesClient) UpdateNote(ctx context.Context, folderID, serverID string, draft eas.NoteDraft) error
- type PingClient
- type ProvisionClient
- func (m *ProvisionClient) AcknowledgeRemoteWipe(ctx context.Context, status int) error
- func (m *ProvisionClient) NegotiateVersion(ctx context.Context) (string, error)
- func (m *ProvisionClient) Options(ctx context.Context) (*eas.OptionsResult, error)
- func (m *ProvisionClient) Provision(ctx context.Context) error
- type SearchClient
- func (m *SearchClient) GALSearch(ctx context.Context, query string, limit int) (*eas.GALSearchResult, error)
- func (m *SearchClient) ResolveRecipients(ctx context.Context, recipients []string, opts eas.ResolveOptions) ([]eas.ResolveResponse, error)
- func (m *SearchClient) ValidateCert(ctx context.Context, certs, chain [][]byte, checkCRL bool) ([]eas.CertValidation, error)
- type SettingsClient
- func (m *SettingsClient) GetOof(ctx context.Context) (*eas.OofConfig, error)
- func (m *SettingsClient) GetRightsManagementTemplates(ctx context.Context) ([]eas.RightsTemplate, error)
- func (m *SettingsClient) GetUserInformation(ctx context.Context) (*eas.UserInformation, error)
- func (m *SettingsClient) SetDevicePassword(ctx context.Context, newPassword string) error
- func (m *SettingsClient) SetOof(ctx context.Context, cfg eas.OofConfig) error
- func (m *SettingsClient) SettingsDeviceInformation(ctx context.Context, info eas.DeviceInformation) error
- type TasksClient
- func (m *TasksClient) CompleteTask(ctx context.Context, folderID, serverID string) error
- func (m *TasksClient) CreateTask(ctx context.Context, folderID string, draft eas.TaskDraft) (string, error)
- func (m *TasksClient) DeleteTask(ctx context.Context, folderID, serverID string) error
- func (m *TasksClient) SyncTasks(ctx context.Context, folderID string) (*eas.TasksSyncResult, error)
- func (m *TasksClient) UpdateTask(ctx context.Context, folderID, serverID string, draft eas.TaskDraft) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CalendarClient ¶
type CalendarClient struct {
SyncCalendarFunc func(ctx context.Context, folderID string, opts eas.CalendarSyncOptions) (*eas.CalendarSyncResult, error)
CreateEventFunc func(ctx context.Context, folderID string, draft eas.EventDraft) (string, error)
UpdateEventFunc func(ctx context.Context, folderID, serverID string, draft eas.EventDraft) error
DeleteEventFunc func(ctx context.Context, folderID, serverID string) error
RespondInviteFunc func(ctx context.Context, folderID, serverID string, choice eas.MeetingResponseChoice) (*eas.MeetingResponseResult, error)
}
CalendarClient is a hand-written test double for eas.CalendarClient.
func (*CalendarClient) CreateEvent ¶
func (m *CalendarClient) CreateEvent(ctx context.Context, folderID string, draft eas.EventDraft) (string, error)
func (*CalendarClient) DeleteEvent ¶
func (m *CalendarClient) DeleteEvent(ctx context.Context, folderID, serverID string) error
func (*CalendarClient) RespondInvite ¶
func (m *CalendarClient) RespondInvite(ctx context.Context, folderID, serverID string, choice eas.MeetingResponseChoice) (*eas.MeetingResponseResult, error)
func (*CalendarClient) SyncCalendar ¶
func (m *CalendarClient) SyncCalendar(ctx context.Context, folderID string, opts eas.CalendarSyncOptions) (*eas.CalendarSyncResult, error)
func (*CalendarClient) UpdateEvent ¶
func (m *CalendarClient) UpdateEvent(ctx context.Context, folderID, serverID string, draft eas.EventDraft) error
type Client ¶
type Client struct {
EmailClient
CalendarClient
ContactsClient
TasksClient
NotesClient
FolderClient
SettingsClient
SearchClient
ProvisionClient
PingClient
LastPolicyFunc func() *eas.Policy
}
Client is the umbrella mock for eas.Client. Embed and override only the sub-mocks (or specific Func fields on them) the test cares about. Methods not configured return a sentinel error.
mock := &easmock.Client{
EmailClient: easmock.EmailClient{
SyncEmailFunc: func(ctx context.Context, fid string, opts eas.EmailSyncOptions) (*eas.EmailSyncResult, error) {
return &eas.EmailSyncResult{SyncKey: "1"}, nil
},
},
}
var _ eas.Client = mock
func (*Client) LastPolicy ¶
LastPolicy returns the canned Policy from LastPolicyFunc, or nil if unset.
type ContactsClient ¶
type ContactsClient struct {
SyncContactsFunc func(ctx context.Context, folderID string) (*eas.ContactsSyncResult, error)
CreateContactFunc func(ctx context.Context, folderID string, draft eas.ContactDraft) (string, error)
UpdateContactFunc func(ctx context.Context, folderID, serverID string, draft eas.ContactDraft) error
DeleteContactFunc func(ctx context.Context, folderID, serverID string) error
}
ContactsClient is a hand-written test double for eas.ContactsClient.
func (*ContactsClient) CreateContact ¶
func (m *ContactsClient) CreateContact(ctx context.Context, folderID string, draft eas.ContactDraft) (string, error)
func (*ContactsClient) DeleteContact ¶
func (m *ContactsClient) DeleteContact(ctx context.Context, folderID, serverID string) error
func (*ContactsClient) SyncContacts ¶
func (m *ContactsClient) SyncContacts(ctx context.Context, folderID string) (*eas.ContactsSyncResult, error)
func (*ContactsClient) UpdateContact ¶
func (m *ContactsClient) UpdateContact(ctx context.Context, folderID, serverID string, draft eas.ContactDraft) error
type EmailClient ¶
type EmailClient struct {
SyncEmailFunc func(ctx context.Context, folderID string, opts eas.EmailSyncOptions) (*eas.EmailSyncResult, error)
ApplyEmailChangesFunc func(ctx context.Context, folderID string, changes []eas.EmailChange) ([]eas.EmailChangeResult, error)
FetchEmailFunc func(ctx context.Context, folderID, serverID string, opts eas.FetchEmailOptions) (*eas.EmailItem, error)
SendMailFunc func(ctx context.Context, opts eas.SendMailOptions) error
SmartReplyFunc func(ctx context.Context, opts eas.ReplyForwardOptions) error
SmartForwardFunc func(ctx context.Context, opts eas.ReplyForwardOptions) error
SearchEmailFunc func(ctx context.Context, query string, opts eas.EmailSearchOptions) (*eas.EmailSearchResult, error)
SearchEmailQueryFunc func(ctx context.Context, q eas.Query, opts eas.EmailSearchOptions) (*eas.EmailSearchResult, error)
FindEmailFunc func(ctx context.Context, query string, opts eas.FindOptions) (*eas.FindResult, error)
}
EmailClient is a hand-written test double for eas.EmailClient.
func (*EmailClient) ApplyEmailChanges ¶
func (m *EmailClient) ApplyEmailChanges(ctx context.Context, folderID string, changes []eas.EmailChange) ([]eas.EmailChangeResult, error)
func (*EmailClient) FetchEmail ¶
func (m *EmailClient) FetchEmail(ctx context.Context, folderID, serverID string, opts eas.FetchEmailOptions) (*eas.EmailItem, error)
func (*EmailClient) FindEmail ¶
func (m *EmailClient) FindEmail(ctx context.Context, query string, opts eas.FindOptions) (*eas.FindResult, error)
func (*EmailClient) SearchEmail ¶
func (m *EmailClient) SearchEmail(ctx context.Context, query string, opts eas.EmailSearchOptions) (*eas.EmailSearchResult, error)
func (*EmailClient) SearchEmailQuery ¶
func (m *EmailClient) SearchEmailQuery(ctx context.Context, q eas.Query, opts eas.EmailSearchOptions) (*eas.EmailSearchResult, error)
func (*EmailClient) SendMail ¶
func (m *EmailClient) SendMail(ctx context.Context, opts eas.SendMailOptions) error
func (*EmailClient) SmartForward ¶
func (m *EmailClient) SmartForward(ctx context.Context, opts eas.ReplyForwardOptions) error
func (*EmailClient) SmartReply ¶
func (m *EmailClient) SmartReply(ctx context.Context, opts eas.ReplyForwardOptions) error
func (*EmailClient) SyncEmail ¶
func (m *EmailClient) SyncEmail(ctx context.Context, folderID string, opts eas.EmailSyncOptions) (*eas.EmailSyncResult, error)
type FolderClient ¶
type FolderClient struct {
FolderSyncFunc func(ctx context.Context) (*eas.FolderSyncResult, error)
FolderCreateFunc func(ctx context.Context, parentID, displayName string, folderType eas.FolderType) (*eas.FolderCreateResult, error)
FolderUpdateFunc func(ctx context.Context, serverID, newParentID, newDisplayName string) error
FolderDeleteFunc func(ctx context.Context, serverID string) error
GetItemEstimateFunc func(ctx context.Context, folderIDs []string) ([]eas.ItemEstimate, error)
MoveItemsFunc func(ctx context.Context, srcFolder, dstFolder string, ids []string) ([]eas.MoveItemResult, error)
MoveViaItemOperationsFunc func(ctx context.Context, srcFolder, srcID, dstFolder string, moveAlways bool) (string, error)
EmptyFolderContentsFunc func(ctx context.Context, folderID string, deleteSubfolders bool) error
FetchAttachmentFunc func(ctx context.Context, fileReference string, rangeStart, rangeEnd int64) (*eas.FetchAttachmentResult, error)
FetchDocumentLibraryFunc func(ctx context.Context, linkID string, rangeStart, rangeEnd int64) ([]byte, error)
}
FolderClient is a hand-written test double for eas.FolderClient.
func (*FolderClient) EmptyFolderContents ¶
func (*FolderClient) FetchAttachment ¶
func (m *FolderClient) FetchAttachment(ctx context.Context, fileReference string, rangeStart, rangeEnd int64) (*eas.FetchAttachmentResult, error)
func (*FolderClient) FetchDocumentLibrary ¶
func (*FolderClient) FolderCreate ¶
func (m *FolderClient) FolderCreate(ctx context.Context, parentID, displayName string, folderType eas.FolderType) (*eas.FolderCreateResult, error)
func (*FolderClient) FolderDelete ¶
func (m *FolderClient) FolderDelete(ctx context.Context, serverID string) error
func (*FolderClient) FolderSync ¶
func (m *FolderClient) FolderSync(ctx context.Context) (*eas.FolderSyncResult, error)
func (*FolderClient) FolderUpdate ¶
func (m *FolderClient) FolderUpdate(ctx context.Context, serverID, newParentID, newDisplayName string) error
func (*FolderClient) GetItemEstimate ¶
func (m *FolderClient) GetItemEstimate(ctx context.Context, folderIDs []string) ([]eas.ItemEstimate, error)
func (*FolderClient) MoveItems ¶
func (m *FolderClient) MoveItems(ctx context.Context, srcFolder, dstFolder string, ids []string) ([]eas.MoveItemResult, error)
func (*FolderClient) MoveViaItemOperations ¶
type NotesClient ¶
type NotesClient struct {
SyncNotesFunc func(ctx context.Context, folderID string) (*eas.NotesSyncResult, error)
CreateNoteFunc func(ctx context.Context, folderID string, draft eas.NoteDraft) (string, error)
UpdateNoteFunc func(ctx context.Context, folderID, serverID string, draft eas.NoteDraft) error
DeleteNoteFunc func(ctx context.Context, folderID, serverID string) error
}
NotesClient is a hand-written test double for eas.NotesClient.
func (*NotesClient) CreateNote ¶
func (*NotesClient) DeleteNote ¶
func (m *NotesClient) DeleteNote(ctx context.Context, folderID, serverID string) error
func (*NotesClient) SyncNotes ¶
func (m *NotesClient) SyncNotes(ctx context.Context, folderID string) (*eas.NotesSyncResult, error)
func (*NotesClient) UpdateNote ¶
type PingClient ¶
type PingClient struct {
PingFunc func(ctx context.Context, heartbeatSeconds int, folders []eas.PingFolder) (*eas.PingResult, error)
}
PingClient is a hand-written test double for eas.PingClient.
func (*PingClient) Ping ¶
func (m *PingClient) Ping(ctx context.Context, heartbeatSeconds int, folders []eas.PingFolder) (*eas.PingResult, error)
type ProvisionClient ¶
type ProvisionClient struct {
ProvisionFunc func(ctx context.Context) error
AcknowledgeRemoteWipeFunc func(ctx context.Context, status int) error
NegotiateVersionFunc func(ctx context.Context) (string, error)
OptionsFunc func(ctx context.Context) (*eas.OptionsResult, error)
}
ProvisionClient is a hand-written test double for eas.ProvisionClient.
func (*ProvisionClient) AcknowledgeRemoteWipe ¶
func (m *ProvisionClient) AcknowledgeRemoteWipe(ctx context.Context, status int) error
func (*ProvisionClient) NegotiateVersion ¶
func (m *ProvisionClient) NegotiateVersion(ctx context.Context) (string, error)
func (*ProvisionClient) Options ¶
func (m *ProvisionClient) Options(ctx context.Context) (*eas.OptionsResult, error)
type SearchClient ¶
type SearchClient struct {
GALSearchFunc func(ctx context.Context, query string, limit int) (*eas.GALSearchResult, error)
ResolveRecipientsFunc func(ctx context.Context, recipients []string, opts eas.ResolveOptions) ([]eas.ResolveResponse, error)
ValidateCertFunc func(ctx context.Context, certs, chain [][]byte, checkCRL bool) ([]eas.CertValidation, error)
}
SearchClient is a hand-written test double for eas.SearchClient.
func (*SearchClient) GALSearch ¶
func (m *SearchClient) GALSearch(ctx context.Context, query string, limit int) (*eas.GALSearchResult, error)
func (*SearchClient) ResolveRecipients ¶
func (m *SearchClient) ResolveRecipients(ctx context.Context, recipients []string, opts eas.ResolveOptions) ([]eas.ResolveResponse, error)
func (*SearchClient) ValidateCert ¶
func (m *SearchClient) ValidateCert(ctx context.Context, certs, chain [][]byte, checkCRL bool) ([]eas.CertValidation, error)
type SettingsClient ¶
type SettingsClient struct {
GetOofFunc func(ctx context.Context) (*eas.OofConfig, error)
SetOofFunc func(ctx context.Context, cfg eas.OofConfig) error
SetDevicePasswordFunc func(ctx context.Context, newPassword string) error
GetUserInformationFunc func(ctx context.Context) (*eas.UserInformation, error)
SettingsDeviceInformationFunc func(ctx context.Context, info eas.DeviceInformation) error
GetRightsManagementTemplatesFunc func(ctx context.Context) ([]eas.RightsTemplate, error)
}
SettingsClient is a hand-written test double for eas.SettingsClient.
func (*SettingsClient) GetRightsManagementTemplates ¶
func (m *SettingsClient) GetRightsManagementTemplates(ctx context.Context) ([]eas.RightsTemplate, error)
func (*SettingsClient) GetUserInformation ¶
func (m *SettingsClient) GetUserInformation(ctx context.Context) (*eas.UserInformation, error)
func (*SettingsClient) SetDevicePassword ¶
func (m *SettingsClient) SetDevicePassword(ctx context.Context, newPassword string) error
func (*SettingsClient) SettingsDeviceInformation ¶
func (m *SettingsClient) SettingsDeviceInformation(ctx context.Context, info eas.DeviceInformation) error
type TasksClient ¶
type TasksClient struct {
SyncTasksFunc func(ctx context.Context, folderID string) (*eas.TasksSyncResult, error)
CreateTaskFunc func(ctx context.Context, folderID string, draft eas.TaskDraft) (string, error)
UpdateTaskFunc func(ctx context.Context, folderID, serverID string, draft eas.TaskDraft) error
CompleteTaskFunc func(ctx context.Context, folderID, serverID string) error
DeleteTaskFunc func(ctx context.Context, folderID, serverID string) error
}
TasksClient is a hand-written test double for eas.TasksClient.
func (*TasksClient) CompleteTask ¶
func (m *TasksClient) CompleteTask(ctx context.Context, folderID, serverID string) error
func (*TasksClient) CreateTask ¶
func (*TasksClient) DeleteTask ¶
func (m *TasksClient) DeleteTask(ctx context.Context, folderID, serverID string) error
func (*TasksClient) SyncTasks ¶
func (m *TasksClient) SyncTasks(ctx context.Context, folderID string) (*eas.TasksSyncResult, error)