mirror of
https://github.com/Luzifer/go_helpers.git
synced 2024-12-25 05:21:20 +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