mirror of
https://github.com/Luzifer/go_helpers.git
synced 2024-12-24 13:01:21 +00:00
Added some helpers
This commit is contained in:
commit
1626fb35db
4 changed files with 92 additions and 0 deletions
6
.travis.yml
Normal file
6
.travis.yml
Normal file
|
@ -0,0 +1,6 @@
|
|||
language: go
|
||||
|
||||
go:
|
||||
- 1.5
|
||||
- 1.6
|
||||
- tip
|
13
go_helpers_suite_test.go
Normal file
13
go_helpers_suite_test.go
Normal file
|
@ -0,0 +1,13 @@
|
|||
package helpers_test
|
||||
|
||||
import (
|
||||
. "github.com/onsi/ginkgo"
|
||||
. "github.com/onsi/gomega"
|
||||
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestGoHelpers(t *testing.T) {
|
||||
RegisterFailHandler(Fail)
|
||||
RunSpecs(t, "GoHelpers Suite")
|
||||
}
|
21
slice.go
Normal file
21
slice.go
Normal file
|
@ -0,0 +1,21 @@
|
|||
package helpers
|
||||
|
||||
// AppendIfMissing adds a string to a slice when it's not present yet
|
||||
func AppendIfMissing(slice []string, s string) []string {
|
||||
for _, e := range slice {
|
||||
if e == s {
|
||||
return slice
|
||||
}
|
||||
}
|
||||
return append(slice, s)
|
||||
}
|
||||
|
||||
// StringInSlice checks for the existence of a string in the slice
|
||||
func StringInSlice(a string, list []string) bool {
|
||||
for _, b := range list {
|
||||
if b == a {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
52
slice_test.go
Normal file
52
slice_test.go
Normal file
|
@ -0,0 +1,52 @@
|
|||
package helpers_test
|
||||
|
||||
import (
|
||||
. "github.com/Luzifer/go_helpers"
|
||||
|
||||
. "github.com/onsi/ginkgo"
|
||||
. "github.com/onsi/gomega"
|
||||
)
|
||||
|
||||
var _ = Describe("Slice", func() {
|
||||
|
||||
Context("AppendIfMissing", func() {
|
||||
var sl = []string{
|
||||
"test1",
|
||||
"test2",
|
||||
"test3",
|
||||
}
|
||||
|
||||
It("should not append existing elements", func() {
|
||||
Expect(len(AppendIfMissing(sl, "test1"))).To(Equal(3))
|
||||
Expect(len(AppendIfMissing(sl, "test2"))).To(Equal(3))
|
||||
Expect(len(AppendIfMissing(sl, "test3"))).To(Equal(3))
|
||||
})
|
||||
|
||||
It("should append not existing elements", func() {
|
||||
Expect(len(AppendIfMissing(sl, "test4"))).To(Equal(4))
|
||||
Expect(len(AppendIfMissing(sl, "test5"))).To(Equal(4))
|
||||
Expect(len(AppendIfMissing(sl, "test6"))).To(Equal(4))
|
||||
})
|
||||
})
|
||||
|
||||
Context("StringInSlice", func() {
|
||||
var sl = []string{
|
||||
"test1",
|
||||
"test2",
|
||||
"test3",
|
||||
}
|
||||
|
||||
It("should find elements of slice", func() {
|
||||
Expect(StringInSlice("test1", sl)).To(Equal(true))
|
||||
Expect(StringInSlice("test2", sl)).To(Equal(true))
|
||||
Expect(StringInSlice("test3", sl)).To(Equal(true))
|
||||
})
|
||||
|
||||
It("should not find elements not in slice", func() {
|
||||
Expect(StringInSlice("test4", sl)).To(Equal(false))
|
||||
Expect(StringInSlice("test5", sl)).To(Equal(false))
|
||||
Expect(StringInSlice("test6", sl)).To(Equal(false))
|
||||
})
|
||||
})
|
||||
|
||||
})
|
Loading…
Reference in a new issue