Skip to content

Commit

Permalink
🐛 fix: remove repeat listener key check logic codes
Browse files Browse the repository at this point in the history
  • Loading branch information
inhere committed Jun 4, 2023
1 parent 9d07a27 commit 4567e35
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 158 deletions.
16 changes: 4 additions & 12 deletions issues_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package event_test

import (
"bytes"
"container/list"
"fmt"
"testing"

Expand Down Expand Up @@ -34,7 +33,7 @@ func TestIssue_8(t *testing.T) {
assert.True(t, isRun)
}

// https://github.com/gookit/event/issues/8
// https://github.com/gookit/event/issues/9
func TestIssues_9(t *testing.T) {
evBus := event.NewManager("")
eName := "evt1"
Expand All @@ -51,15 +50,7 @@ func TestIssues_9(t *testing.T) {
return nil
})
evBus.On(eName, f3)

l := list.New()
l.PushBack(f1)
l.PushBack(f2)
l.PushBack(f3)

// dump.Println(l.Len())
t.Skip("un-resolved")
return
assert.Equal(t, 3, evBus.ListenersCount(eName))

evBus.RemoveListener(eName, f1) // DON'T REMOVE ALL !!!
assert.Equal(t, 2, evBus.ListenersCount(eName))
Expand All @@ -69,13 +60,14 @@ func TestIssues_9(t *testing.T) {

func makeFn(a int) event.ListenerFunc {
return func(e event.Event) error {
e.Set("val", a)
// dump.Println(a, e.Name())
return nil
}
}

// https://github.com/gookit/event/issues/20
func TestIssues_20(t *testing.T) {
func TestIssues_20(t *testing.T) {
buf := new(bytes.Buffer)
mgr := event.NewManager("test")

Expand Down
40 changes: 0 additions & 40 deletions listener_key.go

This file was deleted.

77 changes: 0 additions & 77 deletions listener_key_test.go

This file was deleted.

61 changes: 32 additions & 29 deletions listener_remove_test.go
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
package event

import (
"github.com/stretchr/testify/require"
"testing"

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

type globalTestVal struct {
Expand All @@ -21,7 +22,7 @@ func (l testListenerCalc) Handle(e Event) error {
}

func Test_RemoveListener(t *testing.T) {
t.Run("", func(t *testing.T) {
t.Run("make func", func(t *testing.T) {
global := &globalTestVal{}
makeFn := func(a int) ListenerFunc {
return func(e Event) error {
Expand Down Expand Up @@ -49,28 +50,28 @@ func Test_RemoveListener(t *testing.T) {
evBus.On(evName, p6)

evBus.MustFire(evName, nil)
require.Equal(t, global.n, 6)
require.Equal(t, global.sum, 231) //11+22+33+44+55+66=231
assert.Equal(t, global.n, 6)
assert.Equal(t, global.sum, 231) // 11+22+33+44+55+66=231

evBus.RemoveListener(evName, f2)
evBus.RemoveListener(evName, p5)
evBus.MustFire(evName, nil)
require.Equal(t, global.n, 6+4)
require.Equal(t, global.sum, 385) // 231+11+33+44+66=385
assert.Equal(t, global.n, 6+4)
assert.Equal(t, global.sum, 385) // 231+11+33+44+66=385

evBus.RemoveListener(evName, f1)
evBus.RemoveListener(evName, f1) // not exist function.
evBus.MustFire(evName, nil)
require.Equal(t, global.n, 6+4+3)
require.Equal(t, global.sum, 528) // 385+33+44+66=528
assert.Equal(t, global.n, 6+4+3)
assert.Equal(t, global.sum, 528) // 385+33+44+66=528

evBus.RemoveListener(evName, p6)
evBus.RemoveListener(evName, p6) // not exist function.
evBus.MustFire(evName, nil)
require.Equal(t, global.n, 6+4+3+2)
require.Equal(t, global.sum, 605) // 528+33+44=605
assert.Equal(t, global.n, 6+4+3+2)
assert.Equal(t, global.sum, 605) // 528+33+44=605
})

t.Run("same value struct", func(t *testing.T) {
global := &globalTestVal{}
f1 := testListenerCalc{bind: 11, owner: global}
Expand All @@ -80,26 +81,28 @@ func Test_RemoveListener(t *testing.T) {

evBus := NewManager("")
const evName = "ev1"
evBus.On(evName, f1)
evBus.On(evName, f2)
evBus.On(evName, f2same)
evBus.On(evName, f2copy)
assert.Panics(t, func() {
evBus.On(evName, f1)
evBus.On(evName, f2)
evBus.On(evName, f2same)
evBus.On(evName, f2copy)
})

evBus.MustFire(evName, nil)
require.Equal(t, global.n, 4)
require.Equal(t, global.sum, 77) //11+22+22+22=77
assert.Equal(t, global.n, 0)
assert.Equal(t, global.sum, 0) // 11+22+22+22=77

evBus.RemoveListener(evName, f1)
evBus.MustFire(evName, nil)
require.Equal(t, global.n, 7)
require.Equal(t, global.sum, 143) // 77+22+22+22=143
assert.Equal(t, global.n, 0)
assert.Equal(t, global.sum, 0) // 77+22+22+22=143

evBus.RemoveListener(evName, f2)
evBus.MustFire(evName, nil)
require.Equal(t, global.n, 7)
require.Equal(t, global.sum, 143) //
assert.Equal(t, global.n, 0)
assert.Equal(t, global.sum, 0)
})

t.Run("same func", func(t *testing.T) {
global := &globalStatic

Expand All @@ -116,18 +119,18 @@ func Test_RemoveListener(t *testing.T) {
evBus.On(evName, f2copy)

evBus.MustFire(evName, nil)
require.Equal(t, global.n, 4)
require.Equal(t, global.sum, 77) //11+22+22+22=77
assert.Equal(t, global.n, 4)
assert.Equal(t, global.sum, 77) // 11+22+22+22=77

evBus.RemoveListener(evName, f1)
evBus.MustFire(evName, nil)
require.Equal(t, global.n, 7)
require.Equal(t, global.sum, 143) // 77+22+22+22=143
assert.Equal(t, global.n, 7)
assert.Equal(t, global.sum, 143) // 77+22+22+22=143

evBus.RemoveListener(evName, f2)
evBus.MustFire(evName, nil)
require.Equal(t, global.n, 7)
require.Equal(t, global.sum, 143) //
assert.Equal(t, global.n, 7)
assert.Equal(t, global.sum, 143) //
})
}

Expand All @@ -144,4 +147,4 @@ func testFuncCalc2(e Event) error {
return nil
}

///
// /

0 comments on commit 4567e35

Please sign in to comment.