|
|
@@ -0,0 +1,66 @@
|
|
|
+package retrier
|
|
|
+
|
|
|
+import (
|
|
|
+ "errors"
|
|
|
+ "testing"
|
|
|
+)
|
|
|
+
|
|
|
+var (
|
|
|
+ errFoo = errors.New("FOO")
|
|
|
+ errBar = errors.New("BAR")
|
|
|
+ errBaz = errors.New("BAZ")
|
|
|
+)
|
|
|
+
|
|
|
+func TestDefaultClassifier(t *testing.T) {
|
|
|
+ c := DefaultClassifier{}
|
|
|
+
|
|
|
+ if c.Classify(nil) != Succeed {
|
|
|
+ t.Error("default misclassified nil")
|
|
|
+ }
|
|
|
+
|
|
|
+ if c.Classify(errFoo) != Retry {
|
|
|
+ t.Error("default misclassified foo")
|
|
|
+ }
|
|
|
+ if c.Classify(errBar) != Retry {
|
|
|
+ t.Error("default misclassified bar")
|
|
|
+ }
|
|
|
+ if c.Classify(errBaz) != Retry {
|
|
|
+ t.Error("default misclassified baz")
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func TestWhitelistClassifier(t *testing.T) {
|
|
|
+ c := WhitelistClassifier{errFoo, errBar}
|
|
|
+
|
|
|
+ if c.Classify(nil) != Succeed {
|
|
|
+ t.Error("whitelist misclassified nil")
|
|
|
+ }
|
|
|
+
|
|
|
+ if c.Classify(errFoo) != Retry {
|
|
|
+ t.Error("whitelist misclassified foo")
|
|
|
+ }
|
|
|
+ if c.Classify(errBar) != Retry {
|
|
|
+ t.Error("whitelist misclassified bar")
|
|
|
+ }
|
|
|
+ if c.Classify(errBaz) != Fail {
|
|
|
+ t.Error("whitelist misclassified baz")
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func TestBlacklistClassifier(t *testing.T) {
|
|
|
+ c := BlacklistClassifier{errBar}
|
|
|
+
|
|
|
+ if c.Classify(nil) != Succeed {
|
|
|
+ t.Error("blacklist misclassified nil")
|
|
|
+ }
|
|
|
+
|
|
|
+ if c.Classify(errFoo) != Retry {
|
|
|
+ t.Error("blacklist misclassified foo")
|
|
|
+ }
|
|
|
+ if c.Classify(errBar) != Fail {
|
|
|
+ t.Error("blacklist misclassified bar")
|
|
|
+ }
|
|
|
+ if c.Classify(errBaz) != Retry {
|
|
|
+ t.Error("blacklist misclassified baz")
|
|
|
+ }
|
|
|
+}
|