summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/icrowley/fake/fake_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/icrowley/fake/fake_test.go')
-rw-r--r--vendor/github.com/icrowley/fake/fake_test.go63
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
+ }
+}