Skip to content

Commit

Permalink
add List tests
Browse files Browse the repository at this point in the history
  • Loading branch information
hsldymq committed Apr 1, 2024
1 parent 4fa07a1 commit 754a7e9
Showing 1 changed file with 78 additions and 0 deletions.
78 changes: 78 additions & 0 deletions list_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -225,6 +225,7 @@ func TestList_Find(t *testing.T) {
&person{"Alice", 20},
&person{"Bob", 30},
&person{"Eve", 40},
&person{"Bob", 50},
)

p, ok := list.Find(func(p *person) bool {
Expand All @@ -247,15 +248,92 @@ func TestList_Find(t *testing.T) {
}

func TestList_FindOrDefault(t *testing.T) {
type person struct {
Name string
Age int
}
list := NewList(
&person{"Alice", 20},
&person{"Bob", 30},
&person{"Eve", 40},
&person{"Bob", 50},
)

p := list.FindOrDefault(func(p *person) bool {
return p.Name == "Bob"
}, &person{"Default", 40})
expect := person{"Bob", 30}
if expect != *p {
t.Fatalf("test List.Find expect: %v, actual: %v", expect, *p)
}

p = list.FindOrDefault(func(p *person) bool {
return p.Name == "Alex"
}, &person{"Default", 40})
expect = person{"Default", 40}
if expect != *p {
t.Fatalf("test List.Find expect: %v, actual: %v", expect, *p)
}
}

func TestList_FindLast(t *testing.T) {
type person struct {
Name string
Age int
}
list := NewList(
&person{"Alice", 20},
&person{"Bob", 30},
&person{"Eve", 40},
&person{"Bob", 50},
)

p, ok := list.FindLast(func(p *person) bool {
return p.Name == "Bob"
})
if !ok {
t.Fatalf("test List.Find, returned ok should be true")
}
expect := person{"Bob", 50}
if expect != *p {
t.Fatalf("test List.Find expect: %v, actual: %v", expect, *p)
}

_, ok = list.FindLast(func(p *person) bool {
return p.Name == "Alex"
})
if ok {
t.Fatalf("test List.Find, returned ok should be false")
}
}

func TestList_FindLastOrDefault(t *testing.T) {
type person struct {
Name string
Age int
}
list := NewList(
&person{"Alice", 20},
&person{"Bob", 30},
&person{"Eve", 40},
&person{"Bob", 50},
)

p := list.FindLastOrDefault(func(p *person) bool {
return p.Name == "Bob"
}, &person{"Default", 40})
expect := person{"Bob", 50}
if expect != *p {
t.Fatalf("test List.Find expect: %v, actual: %v", expect, *p)
}

p = list.FindLastOrDefault(func(p *person) bool {
return p.Name == "Alex"
}, &person{"Default", 80})
expect = person{"Default", 80}
if expect != *p {
t.Fatalf("test List.Find expect: %v, actual: %v", expect, *p)
}
}

func TestList_IndexOf(t *testing.T) {
Expand Down

0 comments on commit 754a7e9

Please sign in to comment.