You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							53 lines
						
					
					
						
							1.1 KiB
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							53 lines
						
					
					
						
							1.1 KiB
						
					
					
				| package filer | |
| 
 | |
| import ( | |
| 	"testing" | |
| 	"time" | |
| 
 | |
| 	"github.com/chrislusf/seaweedfs/weed/pb/filer_pb" | |
| 	"github.com/chrislusf/seaweedfs/weed/util" | |
| 
 | |
| 	"github.com/golang/protobuf/proto" | |
| ) | |
| 
 | |
| func TestProtoMarshalText(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{ | |
| 			&filer_pb.FileChunk{ | |
| 				FileId:       "234,2423423422", | |
| 				Offset:       234234, | |
| 				Size:         234, | |
| 				Mtime:        12312423, | |
| 				ETag:         "2342342354", | |
| 				SourceFileId: "23234,2342342342", | |
| 			}, | |
| 		}, | |
| 	} | |
| 
 | |
| 	notification := &filer_pb.EventNotification{ | |
| 		OldEntry:     oldEntry.ToProtoEntry(), | |
| 		NewEntry:     nil, | |
| 		DeleteChunks: true, | |
| 	} | |
| 
 | |
| 	text := proto.MarshalTextString(notification) | |
| 
 | |
| 	notification2 := &filer_pb.EventNotification{} | |
| 	proto.UnmarshalText(text, notification2) | |
| 
 | |
| 	if notification2.OldEntry.Chunks[0].SourceFileId != notification.OldEntry.Chunks[0].SourceFileId { | |
| 		t.Fatalf("marshal/unmarshal error: %s", text) | |
| 	} | |
| 
 | |
| 	println(text) | |
| 
 | |
| }
 |