Files
ziti/controller/oidc_auth/parse_test.go
T
2024-02-29 09:27:56 -05:00

90 lines
2.2 KiB
Go

package oidc_auth
import (
"github.com/stretchr/testify/require"
"testing"
)
func Test_Map(t *testing.T) {
const (
id = "123"
envArch = "x64"
envOs = "linux"
envOsRelease = "11"
envOsVersion = "1.1.1"
sdkAppId = "myAppid"
sdkAppVersion = "5.1.1"
sdkBranch = "branch34"
sdkRevision = "rev1"
sdkType = "fakeType"
sdkVersion = "6.4.3"
username = "admin"
password = "fake_admin_password"
configType1 = "one"
configType2 = "two"
)
t.Run("totp id/code payload", func(t *testing.T) {
dstTotp := &Totp{}
srcMap := map[string][]string{
"id": {"123"},
"code": {"456"},
}
err := MapToStruct(srcMap, dstTotp)
req := require.New(t)
req.NoError(err)
req.Equal(dstTotp.Code, "456")
req.Equal(dstTotp.AuthRequestId, "123")
})
t.Run("updb creds with env/sdk info payload", func(t *testing.T) {
srcMap := map[string][]string{
"id": {id},
"envArch": {envArch},
"envOs": {envOs},
"envOsRelease": {envOsRelease},
"envOsVersion": {envOsVersion},
"sdkAppId": {sdkAppId},
"sdkAppVersion": {sdkAppVersion},
"sdkBranch": {sdkBranch},
"sdkRevision": {sdkRevision},
"sdkType": {sdkType},
"sdkVersion": {sdkVersion},
"username": {username},
"password": {password},
"configTypes": {"one", "two"},
}
dst := &updbCreds{}
err := MapToStruct(srcMap, dst)
req := require.New(t)
req.NoError(err)
req.Equal(dst.AuthRequestId, id)
req.NotNil(dst.EnvInfo)
req.Equal(dst.EnvInfo.Arch, envArch)
req.Equal(dst.EnvInfo.OsVersion, envOsVersion)
req.Equal(dst.EnvInfo.OsRelease, envOsRelease)
req.Equal(dst.EnvInfo.Os, envOs)
req.NotNil(dst.SdkInfo)
req.Equal(dst.SdkInfo.AppID, sdkAppId)
req.Equal(dst.SdkInfo.AppVersion, sdkAppVersion)
req.Equal(dst.SdkInfo.Type, sdkType)
req.Equal(dst.SdkInfo.Revision, sdkRevision)
req.Equal(dst.SdkInfo.Branch, sdkBranch)
req.Equal(string(dst.Username), username)
req.Equal(string(dst.Password), password)
req.NotNil(dst.ConfigTypes)
req.Equal(dst.ConfigTypes[0], configType1)
req.Equal(dst.ConfigTypes[1], configType2)
})
// test - operator
// test nil translator
// test bad field names in translator
}