github.com/go-chef/chef@v0.30.1/authenticate_test.go (about) 1 package chef 2 3 import ( 4 "encoding/json" 5 "github.com/stretchr/testify/assert" 6 "io" 7 "log" 8 "net/http" 9 "os" 10 "testing" 11 ) 12 13 var ( 14 testAuthenticateJSON = "test/authenticate.json" 15 ) 16 17 func TestAuthenticateFromJSONDecoder(t *testing.T) { 18 if file, err := os.Open(testAuthenticateJSON); err != nil { 19 t.Error("Unexpected error '", err, "' during os.Open on", testAuthenticateJSON) 20 } else { 21 dec := json.NewDecoder(file) 22 var g Authenticate 23 if err := dec.Decode(&g); err == io.EOF { 24 log.Fatal(g) 25 } else if err != nil { 26 log.Fatal(err) 27 } 28 } 29 } 30 31 func TestAuthenticatesCreate(t *testing.T) { 32 setup() 33 defer teardown() 34 35 mux.HandleFunc("/authenticate_user", func(w http.ResponseWriter, r *http.Request) { 36 dec := json.NewDecoder(r.Body) 37 var request Authenticate 38 dec.Decode(&request) 39 switch { 40 case r.Method == "POST": 41 if request.Password == "password" { 42 w.WriteHeader(200) 43 } else { 44 w.WriteHeader(401) 45 } 46 } 47 }) 48 var request Authenticate 49 request.UserName = "user1" 50 request.Password = "invalid" 51 err := client.AuthenticateUser.Authenticate(request) 52 if assert.NotNil(t, err) { 53 assert.Contains(t, err.Error(), "401") 54 } 55 56 request.UserName = "user1" 57 request.Password = "password" 58 err = client.AuthenticateUser.Authenticate(request) 59 if err != nil { 60 t.Errorf("Authenticate returned error: %+v", err) 61 } 62 }