package jwt

import (
	"github.com/stretchr/testify/assert"
	"net"
	"testing"
)

func TestTAI(t *testing.T) {
	ip := net.ParseIP("192.186.4.33")
	userAgent := "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"
	deviceId := "6a22eeeb-966c-47fa-bff8-f83dc7929d84"
	cookieData := "asdfasd"

	tai := TokenAuthorizationInfo{
		Ip:         ip,
		UserAgent:  userAgent,
		DeviceId:   deviceId,
		CookieData: cookieData,
	}

	actual, err := tai.WithSecret("1234567890123456789012345678901234567890").Encode()

	assert.Equal(t, nil, err)
	assert.Equal(t,
		"BbFhu340tDQl9y8siWFlc7s1TpjaHpWWG9tlOGXGOLheBj+cOiF4HKUaBFou10WX8y/feoz6tz/9IPgiUTwbEuXetGIO1KdoygmYiRhxlBYqv0sRa55EjNnPS1DrM7KHOu4fyV57+dvfc4dR669lnuTwhQFE6Q51pq5FtLTnm02HisPGVl1G3JukKAjPRNWCwdZhOylGPuQCav1Egihcz2ZZ3RRDOwUu3SsKEZJJig56XAd1J5MMHzovEgg6B4J4",
		actual,
	)

	tai2, err2 := DecodeTokenAuthorizationInfo(
		"BbFhu340tDQl9y8siWFlc7s1TpjaHpWWG9tlOGXGOLheBj+cOiF4HKUaBFou10WX8y/feoz6tz/9IPgiUTwbEuXetGIO1KdoygmYiRhxlBYqv0sRa55EjNnPS1DrM7KHOu4fyV57+dvfc4dR669lnuTwhQFE6Q51pq5FtLTnm02HisPGVl1G3JukKAjPRNWCwdZhOylGPuQCav1Egihcz2ZZ3RRDOwUu3SsKEZJJig56XAd1J5MMHzovEgg6B4J4",
		"1234567890123456789012345678901234567890",
	)

	assert.Equal(t, nil, err2)
	assert.Equal(t, ip, tai2.Ip)
	assert.Equal(t, userAgent, tai2.UserAgent)
	assert.Equal(t, deviceId, tai2.DeviceId)
	assert.Equal(t, cookieData, tai2.CookieData)

	assert.Equal(t, true, tai.Equal(*tai2))
}