Add full tree serialization test
This commit is contained in:
		
							parent
							
								
									b2cc3359a8
								
							
						
					
					
						commit
						60635cce46
					
				
					 1 changed files with 55 additions and 8 deletions
				
			
		|  | @ -18,12 +18,14 @@ var ( | |||
| 	} | ||||
| 
 | ||||
| 	node_ser_targetbytes = []byte{ | ||||
| 		// ROOT NODE | ||||
| 		// -- ROOT NODE: HEADER | ||||
| 		0x33, 0x00, 0x00, 0x00, // Node size = 33 | ||||
| 		0x02, 0x00, // Property count = 2 | ||||
| 		0x01, 0x00, // Child count = 1 | ||||
| 		0x06,                               // Name length = 6 | ||||
| 		0x06, // Name length = 6 | ||||
| 		// -- ROOT NODE: NAME | ||||
| 		0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, // Node name = "player" | ||||
| 		// -- ROOT NODE: PROPERTIES | ||||
| 		// ROOT NODE -> PROPERTY A | ||||
| 		0x06,                               // Key length = 6 | ||||
| 		0x0b,                               // Value type = bool | ||||
|  | @ -34,6 +36,7 @@ var ( | |||
| 		0x03,                         // Value type = 16-bit signed int | ||||
| 		0x6c, 0x65, 0x76, 0x65, 0x6c, // Key = "level" | ||||
| 		0x1b, 0x00, // Value = 27 | ||||
| 		// -- ROOT NODE: CHILDREN | ||||
| 		// ROOT NODE -> CHILD NODE | ||||
| 		0x12, 0x00, 0x00, 0x00, // Node size = 12 | ||||
| 		0x00, 0x00, // Property count = 0 | ||||
|  | @ -41,6 +44,25 @@ var ( | |||
| 		0x09,                                                 // Name length = 9 | ||||
| 		0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, // Node name = "inventory" | ||||
| 	} | ||||
| 
 | ||||
| 	full_ser_targetbytes = []byte{ | ||||
| 		// -- FILE HEADER | ||||
| 		0x01, // Version flag = 1 | ||||
| 		0x00, // Feature flag = 0 | ||||
| 		// -- ROOT NODE: HEADER | ||||
| 		0x16, 0x00, 0x00, 0x00, // Node size = 16 | ||||
| 		0x01, 0x00, // Property count = 1 | ||||
| 		0x00, 0x00, // Child count = 0 | ||||
| 		0x04, // Name length = 4 | ||||
| 		// -- ROOT NODE: NAME | ||||
| 		0x75, 0x73, 0x65, 0x72, // Node name = "user" | ||||
| 		// -- ROOT NODE: PROPERTIES | ||||
| 		// ROOT NODE -> PROPERTY | ||||
| 		0x06,                               // Key length = 6 | ||||
| 		0x0b,                               // Value type = bool | ||||
| 		0x61, 0x63, 0x74, 0x69, 0x76, 0x65, // Key = "active" | ||||
| 		0x01, // Value = true | ||||
| 	} | ||||
| ) | ||||
| 
 | ||||
| func TestPropertySerialization(t *testing.T) { | ||||
|  | @ -50,8 +72,8 @@ func TestPropertySerialization(t *testing.T) { | |||
| 		Value: "zervo", | ||||
| 	} | ||||
| 
 | ||||
| 	buf := &bytes.Buffer{} | ||||
| 	err := sbhpfv1.SerializeProperty(buf, prop) | ||||
| 	var buf bytes.Buffer | ||||
| 	err := sbhpfv1.SerializeProperty(&buf, prop) | ||||
| 	if err != nil { | ||||
| 		t.Fatalf("Property serialization failed: %v", err) | ||||
| 	} | ||||
|  | @ -89,13 +111,38 @@ func TestNodeSerialization(t *testing.T) { | |||
| 		}, | ||||
| 	} | ||||
| 
 | ||||
| 	var w bytes.Buffer | ||||
| 	err := sbhpfv1.SerializeNodeStream(&w, &node) | ||||
| 	var buf bytes.Buffer | ||||
| 	err := sbhpfv1.SerializeNodeBuffered(&buf, &node) | ||||
| 	if err != nil { | ||||
| 		t.Fatalf("Node serialization failed: %v", err) | ||||
| 	} | ||||
| 
 | ||||
| 	if !slices.Equal(w.Bytes(), node_ser_targetbytes) { | ||||
| 		t.Fatalf("Node serialization generated bad data: %v", w.Bytes()) | ||||
| 	if !slices.Equal(buf.Bytes(), node_ser_targetbytes) { | ||||
| 		t.Fatalf("Node serialization generated bad data: %v", buf.Bytes()) | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| func TestFullSerialization(t *testing.T) { | ||||
| 	prop := sbhpfv1.Property{ | ||||
| 		Key:   "active", | ||||
| 		Type:  sbhpfv1.TypeBool, | ||||
| 		Value: true, | ||||
| 	} | ||||
| 
 | ||||
| 	node := sbhpfv1.Node{ | ||||
| 		Name: "user", | ||||
| 		Properties: []sbhpfv1.Property{ | ||||
| 			prop, | ||||
| 		}, | ||||
| 	} | ||||
| 
 | ||||
| 	var buf bytes.Buffer | ||||
| 	err := sbhpfv1.SerializeBuffered(&buf, &node) | ||||
| 	if err != nil { | ||||
| 		t.Fatalf("Full tree serialization failed: %v", err) | ||||
| 	} | ||||
| 
 | ||||
| 	if !slices.Equal(buf.Bytes(), full_ser_targetbytes) { | ||||
| 		t.Fatalf("Full tree serialization generated bad data: %v", buf.Bytes()) | ||||
| 	} | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 zervo
						zervo