Skip to content

Commit 6601ecc

Browse files
(fix): make dispatcher more testable (#131)
* make dispatcher more testable * oops. forgot to put in a queue
1 parent b570ef5 commit 6601ecc

File tree

2 files changed

+10
-6
lines changed

2 files changed

+10
-6
lines changed

optimizely/event/dispatcher.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -65,11 +65,11 @@ func (*HTTPEventDispatcher) DispatchEvent(event LogEvent) (bool, error) {
6565
return success, err
6666
}
6767

68-
// QueueEventDispatcher is a queued version of the event dispatcher that queues, returns success, and dispatches events in the background
68+
// QueueEventDispatcher is a queued version of the event Dispatcher that queues, returns success, and dispatches events in the background
6969
type QueueEventDispatcher struct {
7070
eventQueue Queue
7171
eventFlushLock sync.Mutex
72-
dispatcher *HTTPEventDispatcher
72+
Dispatcher Dispatcher
7373
}
7474

7575
// DispatchEvent queues event with callback and calls flush in a go routine.
@@ -106,12 +106,12 @@ func (ed *QueueEventDispatcher) flushEvents() {
106106
event, ok := items[0].(LogEvent)
107107
if !ok {
108108
// remove it
109-
dispatcherLogger.Error("invalid type passed to event dispatcher", nil)
109+
dispatcherLogger.Error("invalid type passed to event Dispatcher", nil)
110110
ed.eventQueue.Remove(1)
111111
continue
112112
}
113113

114-
success, err := ed.dispatcher.DispatchEvent(event)
114+
success, err := ed.Dispatcher.DispatchEvent(event)
115115

116116
if err == nil {
117117
if success {
@@ -132,9 +132,9 @@ func (ed *QueueEventDispatcher) flushEvents() {
132132
}
133133
}
134134

135-
// NewQueueEventDispatcher creates a dispatcher that queues in memory and then sends via go routine.
135+
// NewQueueEventDispatcher creates a Dispatcher that queues in memory and then sends via go routine.
136136
func NewQueueEventDispatcher(ctx context.Context) Dispatcher {
137-
dispatcher := &QueueEventDispatcher{eventQueue: NewInMemoryQueue(defaultQueueSize), dispatcher: &HTTPEventDispatcher{}}
137+
dispatcher := &QueueEventDispatcher{eventQueue: NewInMemoryQueue(defaultQueueSize), Dispatcher: &HTTPEventDispatcher{}}
138138

139139
go func() {
140140
<-ctx.Done()

optimizely/event/dispatcher_test.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,10 @@ func TestQueueEventDispatcher_DispatchEvent(t *testing.T) {
2929
ctx := context.TODO()
3030
q := NewQueueEventDispatcher(ctx)
3131

32+
if qed, ok := q.(*QueueEventDispatcher); ok {
33+
qed.Dispatcher = &MockDispatcher{Events: NewInMemoryQueue(100)}
34+
}
35+
3236
eventTags := map[string]interface{}{"revenue": 55.0, "value": 25.1}
3337
config := TestConfig{}
3438

0 commit comments

Comments
 (0)