40 lines
857 B
Go
40 lines
857 B
Go
package main_test
|
|
|
|
import (
|
|
"encoding/hex"
|
|
"encoding/json"
|
|
"github.com/stretchr/testify/require"
|
|
"testing"
|
|
)
|
|
|
|
func Test(t *testing.T) {
|
|
// байты
|
|
bitesOriginal := getBytes()
|
|
// байты в строку
|
|
stringFromBytes := hex.EncodeToString(bitesOriginal)
|
|
// строку в json
|
|
jsonFromString, err := json.Marshal(struct {
|
|
Msg string `json:"msg"`
|
|
}{
|
|
Msg: stringFromBytes,
|
|
})
|
|
require.NoError(t, err)
|
|
// json в байты
|
|
var structFromJson struct {
|
|
Msg string `json:"msg"`
|
|
}
|
|
require.NoError(t, json.Unmarshal(jsonFromString, &structFromJson))
|
|
// строку в байты
|
|
bytesFromString := []byte(structFromJson.Msg)
|
|
|
|
require.Equal(t, bitesOriginal, bytesFromString)
|
|
require.Equal(t, stringFromBytes, structFromJson.Msg)
|
|
}
|
|
|
|
func getBytes() (b []byte) {
|
|
for i := 0; i < 256; i++ {
|
|
b = append(b, byte(i))
|
|
}
|
|
return b
|
|
}
|