diff options
Diffstat (limited to 'vendor/github.com/icrowley/fake/fake_test.go')
-rw-r--r-- | vendor/github.com/icrowley/fake/fake_test.go | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/vendor/github.com/icrowley/fake/fake_test.go b/vendor/github.com/icrowley/fake/fake_test.go new file mode 100644 index 000000000..8f5568b4b --- /dev/null +++ b/vendor/github.com/icrowley/fake/fake_test.go @@ -0,0 +1,63 @@ +package fake + +import ( + "testing" +) + +func TestSetLang(t *testing.T) { + err := SetLang("ru") + if err != nil { + t.Error("SetLang should successfully set lang") + } + + err = SetLang("sd") + if err == nil { + t.Error("SetLang with nonexistent lang should return error") + } +} + +func TestFakerRuWithoutCallback(t *testing.T) { + SetLang("ru") + EnFallback(false) + brand := Brand() + if brand != "" { + t.Error("Fake call with no samples should return blank string") + } +} + +func TestFakerRuWithCallback(t *testing.T) { + SetLang("ru") + EnFallback(true) + brand := Brand() + if brand == "" { + t.Error("Fake call for name with no samples with callback should not return blank string") + } +} + +// TestConcurrentSafety runs fake methods in multiple go routines concurrently. +// This test should be run with the race detector enabled. +func TestConcurrentSafety(t *testing.T) { + workerCount := 10 + doneChan := make(chan struct{}) + + for i := 0; i < workerCount; i++ { + go func() { + for j := 0; j < 1000; j++ { + FirstName() + LastName() + Gender() + FullName() + Day() + Country() + Company() + Industry() + Street() + } + doneChan <- struct{}{} + }() + } + + for i := 0; i < workerCount; i++ { + <-doneChan + } +} |