mirror of
https://github.com/safing/portbase
synced 2025-04-22 02:09:09 +00:00
56 lines
997 B
Go
56 lines
997 B
Go
package record
|
|
|
|
import (
|
|
"bytes"
|
|
"testing"
|
|
|
|
"github.com/safing/portbase/formats/dsd"
|
|
)
|
|
|
|
func TestWrapper(t *testing.T) {
|
|
|
|
// check model interface compliance
|
|
var m Record
|
|
w := &Wrapper{}
|
|
m = w
|
|
_ = m
|
|
|
|
// create test data
|
|
testData := []byte(`{"a": "b"}`)
|
|
encodedTestData := []byte(`J{"a": "b"}`)
|
|
|
|
// test wrapper
|
|
wrapper, err := NewWrapper("test:a", &Meta{}, JSON, testData)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if wrapper.Format != dsd.JSON {
|
|
t.Error("format mismatch")
|
|
}
|
|
if !bytes.Equal(testData, wrapper.Data) {
|
|
t.Error("data mismatch")
|
|
}
|
|
|
|
encoded, err := wrapper.Marshal(wrapper, dsd.JSON)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if !bytes.Equal(encodedTestData, encoded) {
|
|
t.Error("marshal mismatch")
|
|
}
|
|
|
|
wrapper.SetMeta(&Meta{})
|
|
raw, err := wrapper.MarshalRecord(wrapper)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
wrapper2, err := NewRawWrapper("test", "a", raw)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if !bytes.Equal(testData, wrapper2.Data) {
|
|
t.Error("marshal mismatch")
|
|
}
|
|
|
|
}
|