71 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package client
 | 
						|
 | 
						|
import (
 | 
						|
	"context"
 | 
						|
	"fmt"
 | 
						|
	"testing"
 | 
						|
 | 
						|
	"go.unistack.org/micro/v3/errors"
 | 
						|
)
 | 
						|
 | 
						|
func TestRetryAlways(t *testing.T) {
 | 
						|
	tests := []error{
 | 
						|
		nil,
 | 
						|
		errors.InternalServerError("test", "%s", "test"),
 | 
						|
		fmt.Errorf("test"),
 | 
						|
	}
 | 
						|
 | 
						|
	for _, e := range tests {
 | 
						|
		ok, er := RetryAlways(context.TODO(), nil, 1, e)
 | 
						|
		if !ok || er != nil {
 | 
						|
			t.Fatal("RetryAlways not works properly")
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func TestRetryNever(t *testing.T) {
 | 
						|
	tests := []error{
 | 
						|
		nil,
 | 
						|
		errors.InternalServerError("test", "%s", "test"),
 | 
						|
		fmt.Errorf("test"),
 | 
						|
	}
 | 
						|
 | 
						|
	for _, e := range tests {
 | 
						|
		ok, er := RetryNever(context.TODO(), nil, 1, e)
 | 
						|
		if ok || er != nil {
 | 
						|
			t.Fatal("RetryNever not works properly")
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func TestRetryOnError(t *testing.T) {
 | 
						|
	tests := []error{
 | 
						|
		fmt.Errorf("test"),
 | 
						|
		errors.NotFound("test", "%s", "test"),
 | 
						|
		errors.Timeout("test", "%s", "test"),
 | 
						|
	}
 | 
						|
 | 
						|
	for i, e := range tests {
 | 
						|
		ok, er := RetryOnError(context.TODO(), nil, 1, e)
 | 
						|
		if i == 2 && (!ok || er != nil) {
 | 
						|
			t.Fatal("RetryOnError not works properly")
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func TestRetryOnErrors(t *testing.T) {
 | 
						|
	tests := []error{
 | 
						|
		fmt.Errorf("test"),
 | 
						|
		errors.NotFound("test", "%s", "test"),
 | 
						|
		errors.Timeout("test", "%s", "test"),
 | 
						|
	}
 | 
						|
 | 
						|
	fn := RetryOnErrors(404)
 | 
						|
	for i, e := range tests {
 | 
						|
		ok, er := fn(context.TODO(), nil, 1, e)
 | 
						|
		if i == 1 && (!ok || er != nil) {
 | 
						|
			t.Fatal("RetryOnErrors not works properly")
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 |