| 210 | } |
| 211 | |
| 212 | func TestSerializationJsonEnums(t *testing.T) { |
| 213 | // Define a source JSON string |
| 214 | json := []byte(`{"byte0":0,"byte1":0,"byte2":1,"byte3":254,"byte4":255,"byte5":254,"char0":0,"char1":49,"char2":50,"char3":51,"char4":52,"char5":51,"wchar0":0,"wchar1":1092,"wchar2":1093,"wchar3":1365,"wchar4":1366,"wchar5":1365,"int8b0":0,"int8b1":-128,"int8b2":-127,"int8b3":126,"int8b4":127,"int8b5":126,"uint8b0":0,"uint8b1":0,"uint8b2":1,"uint8b3":254,"uint8b4":255,"uint8b5":254,"int16b0":0,"int16b1":-32768,"int16b2":-32767,"int16b3":32766,"int16b4":32767,"int16b5":32766,"uint16b0":0,"uint16b1":0,"uint16b2":1,"uint16b3":65534,"uint16b4":65535,"uint16b5":65534,"int32b0":0,"int32b1":-2147483648,"int32b2":-2147483647,"int32b3":2147483646,"int32b4":2147483647,"int32b5":2147483646,"uint32b0":0,"uint32b1":0,"uint32b2":1,"uint32b3":4294967294,"uint32b4":4294967295,"uint32b5":4294967294,"int64b0":0,"int64b1":-9223372036854775807,"int64b2":-9223372036854775806,"int64b3":9223372036854775806,"int64b4":9223372036854775807,"int64b5":9223372036854775806,"uint64b0":0,"uint64b1":0,"uint64b2":1,"uint64b3":18446744073709551614,"uint64b4":18446744073709551615,"uint64b5":18446744073709551614}`) |
| 215 | |
| 216 | // Create enums from the source JSON string |
| 217 | enums1, _ := enums.NewEnumsFromJSON(json) |
| 218 | |
| 219 | // Serialize enums to the JSON string |
| 220 | json, _ = enums1.JSON() |
| 221 | |
| 222 | // Check the serialized JSON size |
| 223 | assert.NotEmpty(t, json) |
| 224 | |
| 225 | // Deserialize enums from the JSON string |
| 226 | enums2, _ := enums.NewEnumsFromJSON(json) |
| 227 | |
| 228 | assert.EqualValues(t, enums2.Byte0, enums.EnumByte_ENUM_VALUE_0) |
| 229 | assert.EqualValues(t, enums2.Byte1, enums.EnumByte_ENUM_VALUE_1) |
| 230 | assert.EqualValues(t, enums2.Byte2, enums.EnumByte_ENUM_VALUE_2) |
| 231 | assert.EqualValues(t, enums2.Byte3, enums.EnumByte_ENUM_VALUE_3) |
| 232 | assert.EqualValues(t, enums2.Byte4, enums.EnumByte_ENUM_VALUE_4) |
| 233 | assert.EqualValues(t, enums2.Byte5, enums1.Byte3) |
| 234 | |
| 235 | assert.EqualValues(t, enums2.Char0, enums.EnumChar_ENUM_VALUE_0) |
| 236 | assert.EqualValues(t, enums2.Char1, enums.EnumChar_ENUM_VALUE_1) |
| 237 | assert.EqualValues(t, enums2.Char2, enums.EnumChar_ENUM_VALUE_2) |
| 238 | assert.EqualValues(t, enums2.Char3, enums.EnumChar_ENUM_VALUE_3) |
| 239 | assert.EqualValues(t, enums2.Char4, enums.EnumChar_ENUM_VALUE_4) |
| 240 | assert.EqualValues(t, enums2.Char5, enums1.Char3) |
| 241 | |
| 242 | assert.EqualValues(t, enums2.Wchar0, enums.EnumWChar_ENUM_VALUE_0) |
| 243 | assert.EqualValues(t, enums2.Wchar1, enums.EnumWChar_ENUM_VALUE_1) |
| 244 | assert.EqualValues(t, enums2.Wchar2, enums.EnumWChar_ENUM_VALUE_2) |
| 245 | assert.EqualValues(t, enums2.Wchar3, enums.EnumWChar_ENUM_VALUE_3) |
| 246 | assert.EqualValues(t, enums2.Wchar4, enums.EnumWChar_ENUM_VALUE_4) |
| 247 | assert.EqualValues(t, enums2.Wchar5, enums1.Wchar3) |
| 248 | |
| 249 | assert.EqualValues(t, enums2.Int8b0, enums.EnumInt8_ENUM_VALUE_0) |
| 250 | assert.EqualValues(t, enums2.Int8b1, enums.EnumInt8_ENUM_VALUE_1) |
| 251 | assert.EqualValues(t, enums2.Int8b2, enums.EnumInt8_ENUM_VALUE_2) |
| 252 | assert.EqualValues(t, enums2.Int8b3, enums.EnumInt8_ENUM_VALUE_3) |
| 253 | assert.EqualValues(t, enums2.Int8b4, enums.EnumInt8_ENUM_VALUE_4) |
| 254 | assert.EqualValues(t, enums2.Int8b5, enums1.Int8b3) |
| 255 | |
| 256 | assert.EqualValues(t, enums2.Uint8b0, enums.EnumUInt8_ENUM_VALUE_0) |
| 257 | assert.EqualValues(t, enums2.Uint8b1, enums.EnumUInt8_ENUM_VALUE_1) |
| 258 | assert.EqualValues(t, enums2.Uint8b2, enums.EnumUInt8_ENUM_VALUE_2) |
| 259 | assert.EqualValues(t, enums2.Uint8b3, enums.EnumUInt8_ENUM_VALUE_3) |
| 260 | assert.EqualValues(t, enums2.Uint8b4, enums.EnumUInt8_ENUM_VALUE_4) |
| 261 | assert.EqualValues(t, enums2.Uint8b5, enums1.Uint8b3) |
| 262 | |
| 263 | assert.EqualValues(t, enums2.Int16b0, enums.EnumInt16_ENUM_VALUE_0) |
| 264 | assert.EqualValues(t, enums2.Int16b1, enums.EnumInt16_ENUM_VALUE_1) |
| 265 | assert.EqualValues(t, enums2.Int16b2, enums.EnumInt16_ENUM_VALUE_2) |
| 266 | assert.EqualValues(t, enums2.Int16b3, enums.EnumInt16_ENUM_VALUE_3) |
| 267 | assert.EqualValues(t, enums2.Int16b4, enums.EnumInt16_ENUM_VALUE_4) |
| 268 | assert.EqualValues(t, enums2.Int16b5, enums1.Int16b3) |
| 269 | |