package examples import ( "fmt" "net" "net/http" "testing" ) func TestRemoteValueGenerator(t *testing.T) { generator := NewRemoteValueGenerator() _, err := generator.GenerateValue("[GET:http://api.example.com/new]") if err == nil { t.Errorf("Expected error while fetching non-existent remote.") } } func TestFakeRemoteValueGenerator(t *testing.T) { // Run the fake remote server http.HandleFunc("/v1/value/generate", func(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "NewRandomString") }) listener, _ := net.Listen("tcp", ":12345") go http.Serve(listener, nil) generator := NewRemoteValueGenerator() value, err := generator.GenerateValue("[GET:http://127.0.0.1:12345/v1/value/generate]") if err != nil { t.Errorf(err.Error()) } if value != "NewRandomString" { t.Errorf("Failed to fetch remote value using GET.") } }