Files
loginsrv/osiam/backend_test.go
T

54 lines
1.3 KiB
Go

package osiam
import (
. "github.com/stretchr/testify/assert"
"github.com/tarent/loginsrv/model"
"net/http"
"net/http/httptest"
"testing"
)
func TestBackend_Authenticate(t *testing.T) {
server := httptest.NewServer(http.HandlerFunc(osiamMockHandler))
defer server.Close()
// positive case
backend, err := NewBackend(server.URL, "example-client", "secret")
NoError(t, err)
authenticated, userInfo, err := backend.Authenticate("admin", "koala")
NoError(t, err)
True(t, authenticated)
Equal(t,
model.UserInfo{
Sub: "admin",
},
userInfo)
// wrong client credentials
backend, err = NewBackend(server.URL, "example-client", "XXX")
NoError(t, err)
authenticated, _, err = backend.Authenticate("admin", "koala")
Error(t, err)
False(t, authenticated)
// wrong user credentials
backend, err = NewBackend(server.URL, "example-client", "secret")
NoError(t, err)
authenticated, _, err = backend.Authenticate("admin", "XXX")
NoError(t, err)
False(t, authenticated)
}
func TestBackend_AuthenticateErrorCases(t *testing.T) {
_, err := NewBackend("://", "example-client", "secret")
Error(t, err)
_, err = NewBackend("http://example.com", "", "secret")
Error(t, err)
_, err = NewBackend("http://example.com", "example-client", "")
Error(t, err)
}