2023-04-06 12:07:57 +01:00
|
|
|
package sort
|
|
|
|
|
|
|
|
import (
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestAlphaNumericWithRootTasksFirst_Sort(t *testing.T) {
|
2024-12-12 01:47:10 +01:00
|
|
|
t.Parallel()
|
|
|
|
|
2025-02-22 16:22:03 +00:00
|
|
|
item1 := "a-item1"
|
|
|
|
item2 := "m-item2"
|
|
|
|
item3 := "ns1:item3"
|
|
|
|
item4 := "ns2:item4"
|
|
|
|
item5 := "z-item5"
|
|
|
|
item6 := "ns3:item6"
|
2023-04-06 12:07:57 +01:00
|
|
|
|
|
|
|
tests := []struct {
|
|
|
|
name string
|
2025-02-22 16:22:03 +00:00
|
|
|
items []string
|
|
|
|
want []string
|
2023-04-06 12:07:57 +01:00
|
|
|
}{
|
|
|
|
{
|
2025-02-22 16:22:03 +00:00
|
|
|
name: "no namespace items sorted alphabetically first",
|
|
|
|
items: []string{item3, item2, item1},
|
|
|
|
want: []string{item1, item2, item3},
|
2023-04-06 12:07:57 +01:00
|
|
|
},
|
|
|
|
{
|
2025-02-22 16:22:03 +00:00
|
|
|
name: "namespace items sorted alphabetically after non-namespaced items",
|
|
|
|
items: []string{item3, item4, item5},
|
|
|
|
want: []string{item5, item3, item4},
|
2023-04-06 12:07:57 +01:00
|
|
|
},
|
|
|
|
{
|
2025-02-22 16:22:03 +00:00
|
|
|
name: "all items sorted alphabetically with root items first",
|
|
|
|
items: []string{item6, item5, item4, item3, item2, item1},
|
|
|
|
want: []string{item1, item2, item5, item3, item4, item6},
|
2023-04-06 12:07:57 +01:00
|
|
|
},
|
|
|
|
}
|
|
|
|
|
|
|
|
for _, tt := range tests {
|
|
|
|
t.Run(tt.name, func(t *testing.T) {
|
2024-12-12 01:47:10 +01:00
|
|
|
t.Parallel()
|
|
|
|
|
2025-02-22 16:22:03 +00:00
|
|
|
AlphaNumericWithRootTasksFirst(tt.items, nil)
|
|
|
|
assert.Equal(t, tt.want, tt.items)
|
2023-04-06 12:07:57 +01:00
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestAlphaNumeric_Sort(t *testing.T) {
|
2024-12-12 01:47:10 +01:00
|
|
|
t.Parallel()
|
|
|
|
|
2025-02-22 16:22:03 +00:00
|
|
|
item1 := "a-item1"
|
|
|
|
item2 := "m-item2"
|
|
|
|
item3 := "ns1:item3"
|
|
|
|
item4 := "ns2:item4"
|
|
|
|
item5 := "z-item5"
|
|
|
|
item6 := "ns3:item6"
|
2023-04-06 12:07:57 +01:00
|
|
|
|
|
|
|
tests := []struct {
|
|
|
|
name string
|
2025-02-22 16:22:03 +00:00
|
|
|
items []string
|
|
|
|
want []string
|
2023-04-06 12:07:57 +01:00
|
|
|
}{
|
|
|
|
{
|
2025-02-22 16:22:03 +00:00
|
|
|
name: "all items sorted alphabetically",
|
|
|
|
items: []string{item3, item2, item5, item1, item4, item6},
|
|
|
|
want: []string{item1, item2, item3, item4, item6, item5},
|
2023-04-06 12:07:57 +01:00
|
|
|
},
|
|
|
|
}
|
|
|
|
|
|
|
|
for _, tt := range tests {
|
|
|
|
t.Run(tt.name, func(t *testing.T) {
|
2024-12-12 01:47:10 +01:00
|
|
|
t.Parallel()
|
|
|
|
|
2025-02-22 16:22:03 +00:00
|
|
|
AlphaNumeric(tt.items, nil)
|
|
|
|
assert.Equal(t, tt.want, tt.items)
|
2023-04-06 12:07:57 +01:00
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|
2025-03-16 14:17:14 +01:00
|
|
|
|
|
|
|
func TestNoSort_Sort(t *testing.T) {
|
|
|
|
t.Parallel()
|
|
|
|
|
|
|
|
item1 := "a-item1"
|
|
|
|
item2 := "m-item2"
|
|
|
|
item3 := "ns1:item3"
|
|
|
|
item4 := "ns2:item4"
|
|
|
|
item5 := "z-item5"
|
|
|
|
item6 := "ns3:item6"
|
|
|
|
|
|
|
|
tests := []struct {
|
|
|
|
name string
|
|
|
|
items []string
|
|
|
|
want []string
|
|
|
|
}{
|
|
|
|
{
|
|
|
|
name: "all items in order of definition",
|
|
|
|
items: []string{item3, item2, item5, item1, item4, item6},
|
|
|
|
want: []string{item3, item2, item5, item1, item4, item6},
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
|
|
|
for _, tt := range tests {
|
|
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
|
|
t.Parallel()
|
|
|
|
|
|
|
|
NoSort(tt.items, nil)
|
|
|
|
assert.Equal(t, tt.want, tt.items)
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|