diff options
author | Corey Hulen <corey@hulen.com> | 2017-03-24 23:31:34 -0700 |
---|---|---|
committer | enahum <nahumhbl@gmail.com> | 2017-03-25 03:31:34 -0300 |
commit | 54d3d47daf9190275bbdaf8703b84969a4593451 (patch) | |
tree | 05899b296d0186c1a0da8a540bc486e34ad8eec9 /vendor/github.com/magiconair/properties/assert | |
parent | 7460302dec7796e01c98264e84bece8169cb6ed9 (diff) | |
download | chat-54d3d47daf9190275bbdaf8703b84969a4593451.tar.gz chat-54d3d47daf9190275bbdaf8703b84969a4593451.tar.bz2 chat-54d3d47daf9190275bbdaf8703b84969a4593451.zip |
PLT-6076 Adding viper libs for config file changes (#5871)
* Adding viper libs for config file changes
* Removing the old fsnotify lib
* updating some missing libs
Diffstat (limited to 'vendor/github.com/magiconair/properties/assert')
-rw-r--r-- | vendor/github.com/magiconair/properties/assert/assert.go | 90 | ||||
-rw-r--r-- | vendor/github.com/magiconair/properties/assert/assert_test.go | 55 |
2 files changed, 145 insertions, 0 deletions
diff --git a/vendor/github.com/magiconair/properties/assert/assert.go b/vendor/github.com/magiconair/properties/assert/assert.go new file mode 100644 index 000000000..cb1097baa --- /dev/null +++ b/vendor/github.com/magiconair/properties/assert/assert.go @@ -0,0 +1,90 @@ +// Copyright 2017 Frank Schroeder. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package assert provides helper functions for testing. +package assert + +import ( + "fmt" + "path/filepath" + "reflect" + "regexp" + "runtime" + "strings" + "testing" +) + +// skip defines the default call depth +const skip = 2 + +// Equal asserts that got and want are equal as defined by +// reflect.DeepEqual. The test fails with msg if they are not equal. +func Equal(t *testing.T, got, want interface{}, msg ...string) { + if x := equal(2, got, want, msg...); x != "" { + fmt.Println(x) + t.Fail() + } +} + +func equal(skip int, got, want interface{}, msg ...string) string { + if !reflect.DeepEqual(got, want) { + return fail(skip, "got %v want %v %s", got, want, strings.Join(msg, " ")) + } + return "" +} + +// Panic asserts that function fn() panics. +// It assumes that recover() either returns a string or +// an error and fails if the message does not match +// the regular expression in 'matches'. +func Panic(t *testing.T, fn func(), matches string) { + if x := doesPanic(2, fn, matches); x != "" { + fmt.Println(x) + t.Fail() + } +} + +func doesPanic(skip int, fn func(), expr string) (err string) { + defer func() { + r := recover() + if r == nil { + err = fail(skip, "did not panic") + return + } + var v string + switch r.(type) { + case error: + v = r.(error).Error() + case string: + v = r.(string) + } + err = matches(skip, v, expr) + }() + fn() + return "" +} + +// Matches asserts that a value matches a given regular expression. +func Matches(t *testing.T, value, expr string) { + if x := matches(2, value, expr); x != "" { + fmt.Println(x) + t.Fail() + } +} + +func matches(skip int, value, expr string) string { + ok, err := regexp.MatchString(expr, value) + if err != nil { + return fail(skip, "invalid pattern %q. %s", expr, err) + } + if !ok { + return fail(skip, "got %s which does not match %s", value, expr) + } + return "" +} + +func fail(skip int, format string, args ...interface{}) string { + _, file, line, _ := runtime.Caller(skip) + return fmt.Sprintf("\t%s:%d: %s\n", filepath.Base(file), line, fmt.Sprintf(format, args...)) +} diff --git a/vendor/github.com/magiconair/properties/assert/assert_test.go b/vendor/github.com/magiconair/properties/assert/assert_test.go new file mode 100644 index 000000000..dcef73dfc --- /dev/null +++ b/vendor/github.com/magiconair/properties/assert/assert_test.go @@ -0,0 +1,55 @@ +// Copyright 2017 Frank Schroeder. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package assert + +import "testing" + +func TestEqualEquals(t *testing.T) { + if got, want := equal(2, "a", "a"), ""; got != want { + t.Fatalf("got %q want %q", got, want) + } +} + +func TestEqualFails(t *testing.T) { + if got, want := equal(2, "a", "b"), "\tassert_test.go:16: got a want b \n"; got != want { + t.Fatalf("got %q want %q", got, want) + } +} + +func TestPanicPanics(t *testing.T) { + if got, want := doesPanic(2, func() { panic("foo") }, ""), ""; got != want { + t.Fatalf("got %q want %q", got, want) + } +} + +func TestPanicPanicsAndMatches(t *testing.T) { + if got, want := doesPanic(2, func() { panic("foo") }, "foo"), ""; got != want { + t.Fatalf("got %q want %q", got, want) + } +} + +func TestPanicPanicsAndDoesNotMatch(t *testing.T) { + if got, want := doesPanic(2, func() { panic("foo") }, "bar"), "\tassert.go:62: got foo which does not match bar\n"; got != want { + t.Fatalf("got %q want %q", got, want) + } +} + +func TestPanicPanicsAndDoesNotPanic(t *testing.T) { + if got, want := doesPanic(2, func() {}, "bar"), "\tassert.go:65: did not panic\n"; got != want { + t.Fatalf("got %q want %q", got, want) + } +} + +func TestMatchesMatches(t *testing.T) { + if got, want := matches(2, "aaa", "a"), ""; got != want { + t.Fatalf("got %q want %q", got, want) + } +} + +func TestMatchesDoesNotMatch(t *testing.T) { + if got, want := matches(2, "aaa", "b"), "\tassert_test.go:52: got aaa which does not match b\n"; got != want { + t.Fatalf("got %q want %q", got, want) + } +} |