@@ -998,7 +998,7 @@ func TestMethods(t *testing.T) {
998998 require .Equal (t , "" , got )
999999
10001000 // valid
1001- val .TestOTP = map [ string ] string {"13334444" : "123456" }
1001+ val .TestOTP = TestOTPMap {"13334444" : "123456" }
10021002 got , ok = val .GetTestOTP ("13334444" , now )
10031003 require .True (t , ok )
10041004 require .Equal (t , "123456" , got )
@@ -1021,6 +1021,57 @@ func TestMethods(t *testing.T) {
10211021 require .Equal (t , "" , got )
10221022 }
10231023
1024+ {
1025+ t .Run ("DecodeJSON" , func (t * testing.T ) {
1026+ var m TestOTPMap
1027+ err := m .Decode (`{"13334444": "123456"}` )
1028+ require .NoError (t , err )
1029+ require .Equal (t , TestOTPMap {"13334444" : "123456" }, m )
1030+ })
1031+
1032+ t .Run ("DecodeColonDelimited" , func (t * testing.T ) {
1033+ var m TestOTPMap
1034+ err := m .Decode (`13334444:123456` )
1035+ require .NoError (t , err )
1036+ require .Equal (t , TestOTPMap {"13334444" : "123456" }, m )
1037+ })
1038+
1039+ t .Run ("DecodeEqualsDelimited" , func (t * testing.T ) {
1040+ var m TestOTPMap
1041+ err := m .Decode (`13334444=123456` )
1042+ require .NoError (t , err )
1043+ require .Equal (t , TestOTPMap {"13334444" : "123456" }, m )
1044+ })
1045+
1046+ t .Run ("DecodeMultipleEntries" , func (t * testing.T ) {
1047+ var m TestOTPMap
1048+ err := m .Decode (`13334444:123456,15550001111:000000` )
1049+ require .NoError (t , err )
1050+ require .Equal (t , TestOTPMap {"13334444" : "123456" , "15550001111" : "000000" }, m )
1051+ })
1052+
1053+ t .Run ("DecodeMixedFormats" , func (t * testing.T ) {
1054+ var m TestOTPMap
1055+ err := m .Decode (`13334444:123456,15550001111=000000` )
1056+ require .NoError (t , err )
1057+ require .Equal (t , TestOTPMap {"13334444" : "123456" , "15550001111" : "000000" }, m )
1058+ })
1059+
1060+ t .Run ("DecodeEmptyString" , func (t * testing.T ) {
1061+ var m TestOTPMap
1062+ err := m .Decode (`` )
1063+ require .NoError (t , err )
1064+ require .Nil (t , m )
1065+ })
1066+
1067+ t .Run ("DecodeInvalidFormat" , func (t * testing.T ) {
1068+ var m TestOTPMap
1069+ err := m .Decode (`invalid` )
1070+ require .Error (t , err )
1071+ require .Contains (t , err .Error (), "invalid test OTP format" )
1072+ })
1073+ }
1074+
10241075 {
10251076 val := & OAuthProviderConfiguration {}
10261077
@@ -1172,7 +1223,7 @@ func TestMethods(t *testing.T) {
11721223 Secret : "a" ,
11731224 },
11741225 Sms : SmsProviderConfiguration {
1175- TestOTP : map [ string ] string {"13334444" : "123456" },
1226+ TestOTP : TestOTPMap {"13334444" : "123456" },
11761227 },
11771228 }
11781229 err := val .ApplyDefaults ()
0 commit comments