package filer import ( "testing" "time" "github.com/seaweedfs/seaweedfs/weed/pb/filer_pb" "github.com/seaweedfs/seaweedfs/weed/util" "google.golang.org/protobuf/proto" ) func TestProtoMarshal(t *testing.T) { oldEntry := &Entry{ FullPath: util.FullPath("/this/path/to"), Attr: Attr{ Mtime: time.Now(), Mode: 0644, Uid: 1, Mime: "text/json", TtlSec: 25, }, Chunks: []*filer_pb.FileChunk{ { FileId: "234,2423423422", Offset: 234234, Size: 234, ModifiedTsNs: 12312423, ETag: "2342342354", SourceFileId: "23234,2342342342", }, }, } notification := &filer_pb.EventNotification{ OldEntry: oldEntry.ToProtoEntry(), NewEntry: nil, DeleteChunks: true, } text, _ := proto.Marshal(notification) notification2 := &filer_pb.EventNotification{} proto.Unmarshal(text, notification2) if notification2.OldEntry.GetChunks()[0].SourceFileId != notification.OldEntry.GetChunks()[0].SourceFileId { t.Fatalf("marshal/unmarshal error: %s", text) } println(string(text)) }