Documentation
¶
Overview ¶
Package factories provides test data factories for consistent test data generation
Package factories provides actor factory for test data generation ¶
Package factories provides test data factories for consistent test data generation ¶
Package factories provides timeline factory for test data generation
Index ¶
- func WithDefaults(values map[string]interface{}, defaults map[string]interface{}) map[string]interface{}
- type ActivityBuilder
- func (b *ActivityBuilder) Build() *activitypub.Activity
- func (b *ActivityBuilder) BuildAnnounce(actor, object string) *activitypub.Activity
- func (b *ActivityBuilder) BuildCreate(actor string, note *activitypub.Note) *activitypub.Activity
- func (b *ActivityBuilder) BuildDelete(actor, object string) *activitypub.Activity
- func (b *ActivityBuilder) BuildFollow(follower, target string) *activitypub.Activity
- func (b *ActivityBuilder) BuildLike(actor, object string) *activitypub.Activity
- func (b *ActivityBuilder) BuildUndo(actor string, activity *activitypub.Activity) *activitypub.Activity
- func (b *ActivityBuilder) BuildUpdate(actor string, object interface{}) *activitypub.Activity
- func (b *ActivityBuilder) Reset() *ActivityBuilder
- func (b *ActivityBuilder) WithActor(actor string) *ActivityBuilder
- func (b *ActivityBuilder) WithCC(recipients ...string) *ActivityBuilder
- func (b *ActivityBuilder) WithID(id string) *ActivityBuilder
- func (b *ActivityBuilder) WithObject(object interface{}) *ActivityBuilder
- func (b *ActivityBuilder) WithPublished(published time.Time) *ActivityBuilder
- func (b *ActivityBuilder) WithTarget(target string) *ActivityBuilder
- func (b *ActivityBuilder) WithTo(recipients ...string) *ActivityBuilder
- func (b *ActivityBuilder) WithType(activityType string) *ActivityBuilder
- type ActivityFactory
- func (f *ActivityFactory) CreateActivity(opts ActivityOptions) *activitypub.Activity
- func (f *ActivityFactory) CreateAnnounce(actor string, object interface{}, opts ...ActivityOptions) *activitypub.Activity
- func (f *ActivityFactory) CreateBatch(activityType string, count int, actor string) []*activitypub.Activity
- func (f *ActivityFactory) CreateConversation(participants []string, messages []string) []*activitypub.Activity
- func (f *ActivityFactory) CreateDelete(actor string, object interface{}, opts ...ActivityOptions) *activitypub.Activity
- func (f *ActivityFactory) CreateFollow(follower, target string, opts ...ActivityOptions) *activitypub.Activity
- func (f *ActivityFactory) CreateLike(actor string, object interface{}, opts ...ActivityOptions) *activitypub.Activity
- func (f *ActivityFactory) CreateNote(content string, actorID string, opts ...NoteOptions) *activitypub.Note
- func (f *ActivityFactory) CreateThread(originalActor string, originalContent string, replies []ThreadReply) []*activitypub.Activity
- func (f *ActivityFactory) CreateUpdate(actor string, object interface{}, opts ...ActivityOptions) *activitypub.Activity
- func (f *ActivityFactory) CreateWithMention(content string, actor string, mentions []string) *activitypub.Activity
- func (f *ActivityFactory) CreateWithTags(content string, actor string, hashtags []string) *activitypub.Activity
- func (f *ActivityFactory) GetSequence() int
- func (f *ActivityFactory) Reset()
- func (f *ActivityFactory) SetBaseTime(t time.Time)
- type ActivityOptions
- type ActorBuilder
- func (b *ActorBuilder) AsApplication() *ActorBuilder
- func (b *ActorBuilder) AsBot() *ActorBuilder
- func (b *ActorBuilder) AsGroup() *ActorBuilder
- func (b *ActorBuilder) Build() *activitypub.Actor
- func (b *ActorBuilder) BuildBot(username string) *activitypub.Actor
- func (b *ActorBuilder) BuildLocal(username string) *activitypub.Actor
- func (b *ActorBuilder) BuildLocked(username string) *activitypub.Actor
- func (b *ActorBuilder) BuildRemote(username, remoteDomain string) *activitypub.Actor
- func (b *ActorBuilder) Reset() *ActorBuilder
- func (b *ActorBuilder) WithAttachment(name, value string) *ActorBuilder
- func (b *ActorBuilder) WithDiscoverable(discoverable bool) *ActorBuilder
- func (b *ActorBuilder) WithDisplayName(name string) *ActorBuilder
- func (b *ActorBuilder) WithEndpoints(sharedInbox string) *ActorBuilder
- func (b *ActorBuilder) WithFollowers(followers string) *ActorBuilder
- func (b *ActorBuilder) WithFollowing(following string) *ActorBuilder
- func (b *ActorBuilder) WithID(id string) *ActorBuilder
- func (b *ActorBuilder) WithIcon(url, mediaType string) *ActorBuilder
- func (b *ActorBuilder) WithImage(url, mediaType string) *ActorBuilder
- func (b *ActorBuilder) WithInbox(inbox string) *ActorBuilder
- func (b *ActorBuilder) WithManuallyApprovesFollowers(approves bool) *ActorBuilder
- func (b *ActorBuilder) WithOutbox(outbox string) *ActorBuilder
- func (b *ActorBuilder) WithPublicKey(keyPEM string) *ActorBuilder
- func (b *ActorBuilder) WithPublished(published time.Time) *ActorBuilder
- func (b *ActorBuilder) WithSummary(summary string) *ActorBuilder
- func (b *ActorBuilder) WithUsername(username string) *ActorBuilder
- type ActorFactory
- func (f *ActorFactory) CreateActor(opts ActorOptions) *activitypub.Actor
- func (f *ActorFactory) CreateActorBatch(count int, prefix string) []*activitypub.Actor
- func (f *ActorFactory) CreateActorWithCustomFields(username string, fields map[string]string) *activitypub.Actor
- func (f *ActorFactory) CreateActorWithFollowers(username string, followerCount int) (*activitypub.Actor, []*activitypub.Actor)
- func (f *ActorFactory) CreateActorWithFollowing(username string, followingCount int) (*activitypub.Actor, []*activitypub.Actor)
- func (f *ActorFactory) CreateActorWithProfile(username string) *activitypub.Actor
- func (f *ActorFactory) CreateBotActor(username string) *activitypub.Actor
- func (f *ActorFactory) CreateLockedActor(username string) *activitypub.Actor
- func (f *ActorFactory) CreateRemoteActor(username, remoteDomain string) *activitypub.Actor
- func (f *ActorFactory) CreateUserData(opts ActorOptions) map[string]interface{}
- func (f *ActorFactory) CreateUserDataBatch(count int, prefix string) []map[string]interface{}
- func (f *ActorFactory) GetSequence() int
- func (f *ActorFactory) Reset()
- func (f *ActorFactory) SetDomain(domain string)
- type ActorOptions
- type BaseBuilder
- type Builder
- type FluentSetter
- type NoteBuilder
- func (b *NoteBuilder) AsDirect(recipients ...string) *NoteBuilder
- func (b *NoteBuilder) AsFollowersOnly(actor string) *NoteBuilder
- func (b *NoteBuilder) AsPublic() *NoteBuilder
- func (b *NoteBuilder) Build() *activitypub.Note
- func (b *NoteBuilder) BuildDirectMessage(content, from string, to ...string) *activitypub.Note
- func (b *NoteBuilder) BuildReply(content, inReplyTo, author string) *activitypub.Note
- func (b *NoteBuilder) BuildSensitiveNote(content, summary, author string) *activitypub.Note
- func (b *NoteBuilder) Reset() *NoteBuilder
- func (b *NoteBuilder) WithAttachment(attachment activitypub.Attachment) *NoteBuilder
- func (b *NoteBuilder) WithAttributedTo(actor string) *NoteBuilder
- func (b *NoteBuilder) WithCC(recipients ...string) *NoteBuilder
- func (b *NoteBuilder) WithContent(content string) *NoteBuilder
- func (b *NoteBuilder) WithHashtag(name string) *NoteBuilder
- func (b *NoteBuilder) WithID(id string) *NoteBuilder
- func (b *NoteBuilder) WithImageAttachment(url, mediaType string) *NoteBuilder
- func (b *NoteBuilder) WithInReplyTo(replyTo string) *NoteBuilder
- func (b *NoteBuilder) WithMention(name, href string) *NoteBuilder
- func (b *NoteBuilder) WithPublished(published time.Time) *NoteBuilder
- func (b *NoteBuilder) WithSensitive(sensitive bool) *NoteBuilder
- func (b *NoteBuilder) WithSummary(summary string) *NoteBuilder
- func (b *NoteBuilder) WithTag(tag activitypub.Tag) *NoteBuilder
- func (b *NoteBuilder) WithTo(recipients ...string) *NoteBuilder
- type NoteOptions
- type ThreadReply
- type TimelineBuilder
- func (b *TimelineBuilder) Build() *TimelineData
- func (b *TimelineBuilder) BuildConversationTimeline(username string) *TimelineData
- func (b *TimelineBuilder) BuildEmptyTimeline(username string) *TimelineData
- func (b *TimelineBuilder) BuildHighVolumeTimeline(username string) *TimelineData
- func (b *TimelineBuilder) BuildMixedTimeline(username string) *TimelineData
- func (b *TimelineBuilder) BuildSimpleTimeline(username string) *TimelineData
- func (b *TimelineBuilder) Reset() *TimelineBuilder
- func (b *TimelineBuilder) WithBoosts(count int) *TimelineBuilder
- func (b *TimelineBuilder) WithFollowers(count int) *TimelineBuilder
- func (b *TimelineBuilder) WithFollowing(count int) *TimelineBuilder
- func (b *TimelineBuilder) WithLikes(count int) *TimelineBuilder
- func (b *TimelineBuilder) WithPosts(count int) *TimelineBuilder
- func (b *TimelineBuilder) WithReplies(count int) *TimelineBuilder
- func (b *TimelineBuilder) WithScenario(scenario TimelineScenario) *TimelineBuilder
- func (b *TimelineBuilder) WithUser(username string) *TimelineBuilder
- type TimelineData
- type TimelineFactory
- func (f *TimelineFactory) CreateCustomTimeline(username string, followingCount int, postsPerUser int) *TimelineData
- func (f *TimelineFactory) CreateNotificationData(username string, count int) []map[string]interface{}
- func (f *TimelineFactory) CreateTimelineScenario(username string, scenario TimelineScenario) *TimelineData
- func (f *TimelineFactory) CreateTimelineWithMedia(username string) *TimelineData
- func (f *TimelineFactory) GetSequence() int
- func (f *TimelineFactory) Reset()
- type TimelineScenario
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func WithDefaults ¶
func WithDefaults(values map[string]interface{}, defaults map[string]interface{}) map[string]interface{}
WithDefaults applies default values to a map of options
Types ¶
type ActivityBuilder ¶
type ActivityBuilder struct {
*BaseBuilder
// contains filtered or unexported fields
}
ActivityBuilder builds ActivityPub activities using the builder pattern
func NewActivityBuilder ¶
func NewActivityBuilder(domain string) *ActivityBuilder
NewActivityBuilder creates a new activity builder
func (*ActivityBuilder) Build ¶
func (b *ActivityBuilder) Build() *activitypub.Activity
Build creates the activity with defaults for any unset values
func (*ActivityBuilder) BuildAnnounce ¶
func (b *ActivityBuilder) BuildAnnounce(actor, object string) *activitypub.Activity
BuildAnnounce creates an Announce (reblog) activity
func (*ActivityBuilder) BuildCreate ¶
func (b *ActivityBuilder) BuildCreate(actor string, note *activitypub.Note) *activitypub.Activity
BuildCreate creates a Create activity with a Note object
func (*ActivityBuilder) BuildDelete ¶
func (b *ActivityBuilder) BuildDelete(actor, object string) *activitypub.Activity
BuildDelete creates a Delete activity
func (*ActivityBuilder) BuildFollow ¶
func (b *ActivityBuilder) BuildFollow(follower, target string) *activitypub.Activity
BuildFollow creates a Follow activity with fluent interface
func (*ActivityBuilder) BuildLike ¶
func (b *ActivityBuilder) BuildLike(actor, object string) *activitypub.Activity
BuildLike creates a Like activity
func (*ActivityBuilder) BuildUndo ¶
func (b *ActivityBuilder) BuildUndo(actor string, activity *activitypub.Activity) *activitypub.Activity
BuildUndo creates an Undo activity
func (*ActivityBuilder) BuildUpdate ¶
func (b *ActivityBuilder) BuildUpdate(actor string, object interface{}) *activitypub.Activity
BuildUpdate creates an Update activity
func (*ActivityBuilder) Reset ¶
func (b *ActivityBuilder) Reset() *ActivityBuilder
Reset resets the builder to create a new activity
func (*ActivityBuilder) WithActor ¶
func (b *ActivityBuilder) WithActor(actor string) *ActivityBuilder
WithActor sets the actor
func (*ActivityBuilder) WithCC ¶
func (b *ActivityBuilder) WithCC(recipients ...string) *ActivityBuilder
WithCC adds recipients to the "cc" field
func (*ActivityBuilder) WithID ¶
func (b *ActivityBuilder) WithID(id string) *ActivityBuilder
WithID sets a custom ID
func (*ActivityBuilder) WithObject ¶
func (b *ActivityBuilder) WithObject(object interface{}) *ActivityBuilder
WithObject sets the object
func (*ActivityBuilder) WithPublished ¶
func (b *ActivityBuilder) WithPublished(published time.Time) *ActivityBuilder
WithPublished sets the published timestamp
func (*ActivityBuilder) WithTarget ¶
func (b *ActivityBuilder) WithTarget(target string) *ActivityBuilder
WithTarget sets the target
func (*ActivityBuilder) WithTo ¶
func (b *ActivityBuilder) WithTo(recipients ...string) *ActivityBuilder
WithTo adds recipients to the "to" field
func (*ActivityBuilder) WithType ¶
func (b *ActivityBuilder) WithType(activityType string) *ActivityBuilder
WithType sets the activity type
type ActivityFactory ¶
type ActivityFactory struct {
// contains filtered or unexported fields
}
ActivityFactory creates ActivityPub activities for testing
func NewActivityFactory ¶
func NewActivityFactory(domain string) *ActivityFactory
NewActivityFactory creates a new activity factory
func (*ActivityFactory) CreateActivity ¶
func (f *ActivityFactory) CreateActivity(opts ActivityOptions) *activitypub.Activity
CreateActivity creates a basic activity with default values
func (*ActivityFactory) CreateAnnounce ¶
func (f *ActivityFactory) CreateAnnounce(actor string, object interface{}, opts ...ActivityOptions) *activitypub.Activity
CreateAnnounce creates an Announce (boost/reblog) activity
func (*ActivityFactory) CreateBatch ¶
func (f *ActivityFactory) CreateBatch(activityType string, count int, actor string) []*activitypub.Activity
CreateBatch creates multiple activities of the same type
func (*ActivityFactory) CreateConversation ¶
func (f *ActivityFactory) CreateConversation(participants []string, messages []string) []*activitypub.Activity
CreateConversation creates a back-and-forth conversation
func (*ActivityFactory) CreateDelete ¶
func (f *ActivityFactory) CreateDelete(actor string, object interface{}, opts ...ActivityOptions) *activitypub.Activity
CreateDelete creates a Delete activity
func (*ActivityFactory) CreateFollow ¶
func (f *ActivityFactory) CreateFollow(follower, target string, opts ...ActivityOptions) *activitypub.Activity
CreateFollow creates a Follow activity
func (*ActivityFactory) CreateLike ¶
func (f *ActivityFactory) CreateLike(actor string, object interface{}, opts ...ActivityOptions) *activitypub.Activity
CreateLike creates a Like activity
func (*ActivityFactory) CreateNote ¶
func (f *ActivityFactory) CreateNote(content string, actorID string, opts ...NoteOptions) *activitypub.Note
CreateNote creates a note object for activities
func (*ActivityFactory) CreateThread ¶
func (f *ActivityFactory) CreateThread(originalActor string, originalContent string, replies []ThreadReply) []*activitypub.Activity
CreateThread creates a thread of activities (original post + replies)
func (*ActivityFactory) CreateUpdate ¶
func (f *ActivityFactory) CreateUpdate(actor string, object interface{}, opts ...ActivityOptions) *activitypub.Activity
CreateUpdate creates an Update activity
func (*ActivityFactory) CreateWithMention ¶
func (f *ActivityFactory) CreateWithMention(content string, actor string, mentions []string) *activitypub.Activity
CreateWithMention creates a note with mentions
func (*ActivityFactory) CreateWithTags ¶
func (f *ActivityFactory) CreateWithTags(content string, actor string, hashtags []string) *activitypub.Activity
CreateWithTags creates a note with hashtags
func (*ActivityFactory) GetSequence ¶
func (f *ActivityFactory) GetSequence() int
GetSequence returns the current sequence number
func (*ActivityFactory) Reset ¶
func (f *ActivityFactory) Reset()
Reset resets the factory sequence counter
func (*ActivityFactory) SetBaseTime ¶
func (f *ActivityFactory) SetBaseTime(t time.Time)
SetBaseTime sets the base time for generated activities
type ActivityOptions ¶
type ActivityOptions struct {
Type string
Actor string
Object interface{}
Target string
Published *time.Time
ID string
}
ActivityOptions configures activity creation
type ActorBuilder ¶
type ActorBuilder struct {
*BaseBuilder
// contains filtered or unexported fields
}
ActorBuilder builds ActivityPub Actor objects using the builder pattern
func NewActorBuilder ¶
func NewActorBuilder(domain string) *ActorBuilder
NewActorBuilder creates a new actor builder
func (*ActorBuilder) AsApplication ¶
func (b *ActorBuilder) AsApplication() *ActorBuilder
AsApplication marks the actor as an application
func (*ActorBuilder) AsBot ¶
func (b *ActorBuilder) AsBot() *ActorBuilder
AsBot marks the actor as a bot
func (*ActorBuilder) AsGroup ¶
func (b *ActorBuilder) AsGroup() *ActorBuilder
AsGroup marks the actor as a group
func (*ActorBuilder) Build ¶
func (b *ActorBuilder) Build() *activitypub.Actor
Build creates the actor with defaults for any unset values
func (*ActorBuilder) BuildBot ¶
func (b *ActorBuilder) BuildBot(username string) *activitypub.Actor
BuildBot creates a bot actor
func (*ActorBuilder) BuildLocal ¶
func (b *ActorBuilder) BuildLocal(username string) *activitypub.Actor
BuildLocal creates a local actor
func (*ActorBuilder) BuildLocked ¶
func (b *ActorBuilder) BuildLocked(username string) *activitypub.Actor
BuildLocked creates an actor with locked account (manual follower approval)
func (*ActorBuilder) BuildRemote ¶
func (b *ActorBuilder) BuildRemote(username, remoteDomain string) *activitypub.Actor
BuildRemote creates a remote actor
func (*ActorBuilder) Reset ¶
func (b *ActorBuilder) Reset() *ActorBuilder
Reset resets the builder to create a new actor
func (*ActorBuilder) WithAttachment ¶
func (b *ActorBuilder) WithAttachment(name, value string) *ActorBuilder
WithAttachment adds a profile field attachment
func (*ActorBuilder) WithDiscoverable ¶
func (b *ActorBuilder) WithDiscoverable(discoverable bool) *ActorBuilder
WithDiscoverable sets whether the actor is discoverable
func (*ActorBuilder) WithDisplayName ¶
func (b *ActorBuilder) WithDisplayName(name string) *ActorBuilder
WithDisplayName sets the actor's display name
func (*ActorBuilder) WithEndpoints ¶
func (b *ActorBuilder) WithEndpoints(sharedInbox string) *ActorBuilder
WithEndpoints sets the actor's endpoints
func (*ActorBuilder) WithFollowers ¶
func (b *ActorBuilder) WithFollowers(followers string) *ActorBuilder
WithFollowers sets the followers URL
func (*ActorBuilder) WithFollowing ¶
func (b *ActorBuilder) WithFollowing(following string) *ActorBuilder
WithFollowing sets the following URL
func (*ActorBuilder) WithID ¶
func (b *ActorBuilder) WithID(id string) *ActorBuilder
WithID sets a custom ID
func (*ActorBuilder) WithIcon ¶
func (b *ActorBuilder) WithIcon(url, mediaType string) *ActorBuilder
WithIcon sets the actor's avatar
func (*ActorBuilder) WithImage ¶
func (b *ActorBuilder) WithImage(url, mediaType string) *ActorBuilder
WithImage sets the actor's header image
func (*ActorBuilder) WithInbox ¶
func (b *ActorBuilder) WithInbox(inbox string) *ActorBuilder
WithInbox sets the inbox URL
func (*ActorBuilder) WithManuallyApprovesFollowers ¶
func (b *ActorBuilder) WithManuallyApprovesFollowers(approves bool) *ActorBuilder
WithManuallyApprovesFollowers sets whether the actor manually approves followers
func (*ActorBuilder) WithOutbox ¶
func (b *ActorBuilder) WithOutbox(outbox string) *ActorBuilder
WithOutbox sets the outbox URL
func (*ActorBuilder) WithPublicKey ¶
func (b *ActorBuilder) WithPublicKey(keyPEM string) *ActorBuilder
WithPublicKey sets the actor's public key
func (*ActorBuilder) WithPublished ¶
func (b *ActorBuilder) WithPublished(published time.Time) *ActorBuilder
WithPublished sets when the actor was created
func (*ActorBuilder) WithSummary ¶
func (b *ActorBuilder) WithSummary(summary string) *ActorBuilder
WithSummary sets the actor's bio/summary
func (*ActorBuilder) WithUsername ¶
func (b *ActorBuilder) WithUsername(username string) *ActorBuilder
WithUsername sets the actor's username
type ActorFactory ¶
type ActorFactory struct {
// contains filtered or unexported fields
}
ActorFactory creates actors for testing
func NewActorFactory ¶
func NewActorFactory(domain string) *ActorFactory
NewActorFactory creates a new actor factory
func (*ActorFactory) CreateActor ¶
func (f *ActorFactory) CreateActor(opts ActorOptions) *activitypub.Actor
CreateActor creates a basic actor with default values
func (*ActorFactory) CreateActorBatch ¶
func (f *ActorFactory) CreateActorBatch(count int, prefix string) []*activitypub.Actor
CreateActorBatch creates multiple actors for testing
func (*ActorFactory) CreateActorWithCustomFields ¶
func (f *ActorFactory) CreateActorWithCustomFields(username string, fields map[string]string) *activitypub.Actor
CreateActorWithCustomFields creates an actor with custom profile fields
func (*ActorFactory) CreateActorWithFollowers ¶
func (f *ActorFactory) CreateActorWithFollowers(username string, followerCount int) (*activitypub.Actor, []*activitypub.Actor)
CreateActorWithFollowers creates an actor with a specified number of followers
func (*ActorFactory) CreateActorWithFollowing ¶
func (f *ActorFactory) CreateActorWithFollowing(username string, followingCount int) (*activitypub.Actor, []*activitypub.Actor)
CreateActorWithFollowing creates an actor following a specified number of other actors
func (*ActorFactory) CreateActorWithProfile ¶
func (f *ActorFactory) CreateActorWithProfile(username string) *activitypub.Actor
CreateActorWithProfile creates an actor with complete profile information
func (*ActorFactory) CreateBotActor ¶
func (f *ActorFactory) CreateBotActor(username string) *activitypub.Actor
CreateBotActor creates a bot actor
func (*ActorFactory) CreateLockedActor ¶
func (f *ActorFactory) CreateLockedActor(username string) *activitypub.Actor
CreateLockedActor creates a locked (private) actor
func (*ActorFactory) CreateRemoteActor ¶
func (f *ActorFactory) CreateRemoteActor(username, remoteDomain string) *activitypub.Actor
CreateRemoteActor creates an actor from a remote instance
func (*ActorFactory) CreateUserData ¶
func (f *ActorFactory) CreateUserData(opts ActorOptions) map[string]interface{}
CreateUserData creates user data for testing (returns a map to avoid type issues)
func (*ActorFactory) CreateUserDataBatch ¶
func (f *ActorFactory) CreateUserDataBatch(count int, prefix string) []map[string]interface{}
CreateUserDataBatch creates multiple users for testing (returns maps to avoid type issues)
func (*ActorFactory) GetSequence ¶
func (f *ActorFactory) GetSequence() int
GetSequence returns the current sequence number
func (*ActorFactory) Reset ¶
func (f *ActorFactory) Reset()
Reset resets the factory sequence counter
func (*ActorFactory) SetDomain ¶
func (f *ActorFactory) SetDomain(domain string)
SetDomain changes the domain used for actor IDs
type ActorOptions ¶
type ActorOptions struct {
Username string
DisplayName string
Summary string
PublicKey string
PrivateKey string
Locked bool
Bot bool
Discoverable bool
Avatar *activitypub.Image
Header *activitypub.Image
Fields []activitypub.Attachment
}
ActorOptions configures actor creation
type BaseBuilder ¶
type BaseBuilder struct {
// contains filtered or unexported fields
}
BaseBuilder provides common functionality for all builders
func NewBaseBuilder ¶
func NewBaseBuilder(domain string) *BaseBuilder
NewBaseBuilder creates a new base builder
func (*BaseBuilder) GenerateID ¶
func (b *BaseBuilder) GenerateID(prefix string) string
GenerateID generates a unique ID with the given prefix
func (*BaseBuilder) GenerateTimestamp ¶
func (b *BaseBuilder) GenerateTimestamp() time.Time
GenerateTimestamp generates a timestamp based on sequence
func (*BaseBuilder) NextSequence ¶
func (b *BaseBuilder) NextSequence() int
NextSequence increments and returns the sequence number
type FluentSetter ¶
type FluentSetter[T any] struct { // contains filtered or unexported fields }
FluentSetter provides a fluent interface for setting values
func NewFluentSetter ¶
func NewFluentSetter[T any](target *T) *FluentSetter[T]
NewFluentSetter creates a new fluent setter
func (*FluentSetter[T]) Build ¶
func (f *FluentSetter[T]) Build() *T
Build returns the target object
func (*FluentSetter[T]) Set ¶
func (f *FluentSetter[T]) Set(setter func(*T)) *FluentSetter[T]
Set sets a value and returns the setter for chaining
type NoteBuilder ¶
type NoteBuilder struct {
*BaseBuilder
// contains filtered or unexported fields
}
NoteBuilder builds ActivityPub Note objects using the builder pattern
func NewNoteBuilder ¶
func NewNoteBuilder(domain string) *NoteBuilder
NewNoteBuilder creates a new note builder
func (*NoteBuilder) AsDirect ¶
func (b *NoteBuilder) AsDirect(recipients ...string) *NoteBuilder
AsDirect makes the note a direct message
func (*NoteBuilder) AsFollowersOnly ¶
func (b *NoteBuilder) AsFollowersOnly(actor string) *NoteBuilder
AsFollowersOnly makes the note followers-only
func (*NoteBuilder) AsPublic ¶
func (b *NoteBuilder) AsPublic() *NoteBuilder
AsPublic makes the note public
func (*NoteBuilder) Build ¶
func (b *NoteBuilder) Build() *activitypub.Note
Build creates the note with defaults for any unset values
func (*NoteBuilder) BuildDirectMessage ¶
func (b *NoteBuilder) BuildDirectMessage(content, from string, to ...string) *activitypub.Note
BuildDirectMessage creates a direct message note
func (*NoteBuilder) BuildReply ¶
func (b *NoteBuilder) BuildReply(content, inReplyTo, author string) *activitypub.Note
BuildReply creates a reply note
func (*NoteBuilder) BuildSensitiveNote ¶
func (b *NoteBuilder) BuildSensitiveNote(content, summary, author string) *activitypub.Note
BuildSensitiveNote creates a note with content warning
func (*NoteBuilder) Reset ¶
func (b *NoteBuilder) Reset() *NoteBuilder
Reset resets the builder to create a new note
func (*NoteBuilder) WithAttachment ¶
func (b *NoteBuilder) WithAttachment(attachment activitypub.Attachment) *NoteBuilder
WithAttachment adds an attachment
func (*NoteBuilder) WithAttributedTo ¶
func (b *NoteBuilder) WithAttributedTo(actor string) *NoteBuilder
WithAttributedTo sets the author
func (*NoteBuilder) WithCC ¶
func (b *NoteBuilder) WithCC(recipients ...string) *NoteBuilder
WithCC adds recipients to the "cc" field
func (*NoteBuilder) WithContent ¶
func (b *NoteBuilder) WithContent(content string) *NoteBuilder
WithContent sets the note content
func (*NoteBuilder) WithHashtag ¶
func (b *NoteBuilder) WithHashtag(name string) *NoteBuilder
WithHashtag adds a hashtag
func (*NoteBuilder) WithID ¶
func (b *NoteBuilder) WithID(id string) *NoteBuilder
WithID sets a custom ID
func (*NoteBuilder) WithImageAttachment ¶
func (b *NoteBuilder) WithImageAttachment(url, mediaType string) *NoteBuilder
WithImageAttachment adds an image attachment
func (*NoteBuilder) WithInReplyTo ¶
func (b *NoteBuilder) WithInReplyTo(replyTo string) *NoteBuilder
WithInReplyTo sets the reply target
func (*NoteBuilder) WithMention ¶
func (b *NoteBuilder) WithMention(name, href string) *NoteBuilder
WithMention adds a mention tag
func (*NoteBuilder) WithPublished ¶
func (b *NoteBuilder) WithPublished(published time.Time) *NoteBuilder
WithPublished sets the published timestamp
func (*NoteBuilder) WithSensitive ¶
func (b *NoteBuilder) WithSensitive(sensitive bool) *NoteBuilder
WithSensitive sets the sensitive flag
func (*NoteBuilder) WithSummary ¶
func (b *NoteBuilder) WithSummary(summary string) *NoteBuilder
WithSummary sets the content warning/summary
func (*NoteBuilder) WithTag ¶
func (b *NoteBuilder) WithTag(tag activitypub.Tag) *NoteBuilder
WithTag adds a tag (mention, hashtag, etc.)
func (*NoteBuilder) WithTo ¶
func (b *NoteBuilder) WithTo(recipients ...string) *NoteBuilder
WithTo adds recipients to the "to" field
type NoteOptions ¶
type NoteOptions struct {
ID string
InReplyTo string
Tags []activitypub.Tag
Attachments []activitypub.Attachment
Published *time.Time
}
NoteOptions configures note creation
type ThreadReply ¶
ThreadReply represents a reply in a thread
type TimelineBuilder ¶
type TimelineBuilder struct {
*BaseBuilder
// contains filtered or unexported fields
}
TimelineBuilder builds timeline test data using the builder pattern
func NewTimelineBuilder ¶
func NewTimelineBuilder(domain string) *TimelineBuilder
NewTimelineBuilder creates a new timeline builder
func (*TimelineBuilder) Build ¶
func (b *TimelineBuilder) Build() *TimelineData
Build creates the timeline with defaults for any unset values
func (*TimelineBuilder) BuildConversationTimeline ¶
func (b *TimelineBuilder) BuildConversationTimeline(username string) *TimelineData
BuildConversationTimeline creates a timeline with conversation threads
func (*TimelineBuilder) BuildEmptyTimeline ¶
func (b *TimelineBuilder) BuildEmptyTimeline(username string) *TimelineData
BuildEmptyTimeline creates an empty timeline
func (*TimelineBuilder) BuildHighVolumeTimeline ¶
func (b *TimelineBuilder) BuildHighVolumeTimeline(username string) *TimelineData
BuildHighVolumeTimeline creates a high volume timeline for performance testing
func (*TimelineBuilder) BuildMixedTimeline ¶
func (b *TimelineBuilder) BuildMixedTimeline(username string) *TimelineData
BuildMixedTimeline creates a timeline with mixed content
func (*TimelineBuilder) BuildSimpleTimeline ¶
func (b *TimelineBuilder) BuildSimpleTimeline(username string) *TimelineData
BuildSimpleTimeline creates a simple timeline with basic posts
func (*TimelineBuilder) Reset ¶
func (b *TimelineBuilder) Reset() *TimelineBuilder
Reset resets the builder to create a new timeline
func (*TimelineBuilder) WithBoosts ¶
func (b *TimelineBuilder) WithBoosts(count int) *TimelineBuilder
WithBoosts adds boost activities
func (*TimelineBuilder) WithFollowers ¶
func (b *TimelineBuilder) WithFollowers(count int) *TimelineBuilder
WithFollowers adds followers for the primary user
func (*TimelineBuilder) WithFollowing ¶
func (b *TimelineBuilder) WithFollowing(count int) *TimelineBuilder
WithFollowing adds users that the primary user follows
func (*TimelineBuilder) WithLikes ¶
func (b *TimelineBuilder) WithLikes(count int) *TimelineBuilder
WithLikes adds like activities
func (*TimelineBuilder) WithPosts ¶
func (b *TimelineBuilder) WithPosts(count int) *TimelineBuilder
WithPosts adds posts from followed users
func (*TimelineBuilder) WithReplies ¶
func (b *TimelineBuilder) WithReplies(count int) *TimelineBuilder
WithReplies adds reply activities
func (*TimelineBuilder) WithScenario ¶
func (b *TimelineBuilder) WithScenario(scenario TimelineScenario) *TimelineBuilder
WithScenario sets the timeline scenario type
func (*TimelineBuilder) WithUser ¶
func (b *TimelineBuilder) WithUser(username string) *TimelineBuilder
WithUser sets the primary user for the timeline
type TimelineData ¶
type TimelineData struct {
User *activitypub.Actor
Following []*activitypub.Actor
Followers []*activitypub.Actor
Activities []*activitypub.Activity
Scenario TimelineScenario
}
TimelineData represents a complete timeline setup for testing
type TimelineFactory ¶
type TimelineFactory struct {
// contains filtered or unexported fields
}
TimelineFactory creates timeline data for testing
func NewTimelineFactory ¶
func NewTimelineFactory(domain string) *TimelineFactory
NewTimelineFactory creates a new timeline factory
func (*TimelineFactory) CreateCustomTimeline ¶
func (f *TimelineFactory) CreateCustomTimeline(username string, followingCount int, postsPerUser int) *TimelineData
CreateCustomTimeline allows creating a timeline with specific parameters
func (*TimelineFactory) CreateNotificationData ¶
func (f *TimelineFactory) CreateNotificationData(username string, count int) []map[string]interface{}
CreateNotificationData creates notification data for testing (returns maps to avoid type issues)
func (*TimelineFactory) CreateTimelineScenario ¶
func (f *TimelineFactory) CreateTimelineScenario(username string, scenario TimelineScenario) *TimelineData
CreateTimelineScenario creates a complete timeline scenario
func (*TimelineFactory) CreateTimelineWithMedia ¶
func (f *TimelineFactory) CreateTimelineWithMedia(username string) *TimelineData
CreateTimelineWithMedia creates a timeline that includes media attachments
func (*TimelineFactory) GetSequence ¶
func (f *TimelineFactory) GetSequence() int
GetSequence returns the current sequence number
func (*TimelineFactory) Reset ¶
func (f *TimelineFactory) Reset()
Reset resets all internal factories
type TimelineScenario ¶
type TimelineScenario string
TimelineScenario represents different timeline scenarios for testing
const ( // EmptyTimeline has no posts EmptyTimeline TimelineScenario = "empty" // SimpleTimeline has basic posts from followed users SimpleTimeline TimelineScenario = "simple" // MixedTimeline has posts, replies, boosts, and likes MixedTimeline TimelineScenario = "mixed" // HighVolumeTimeline has many posts for performance testing HighVolumeTimeline TimelineScenario = "high_volume" // ConversationTimeline has threaded conversations ConversationTimeline TimelineScenario = "conversation" )