-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
structure_test.go
58 lines (50 loc) · 1.43 KB
/
structure_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
package gofindit
import (
"testing"
)
func TestGetStructurePerson(t *testing.T) {
_, doc := generateDoc()
// Get structure of the person
structure, err := getStructure(doc, "")
if err != nil {
t.Errorf("Failed to get structure: %v", err)
}
// Define expected fields to be found
expectedFields := map[string]bool{
// type TestData struct {
// Name string `find:"name"`
// Age int `find:"age"`
// Hobbies []string `find:"hobbies"`
// Pets []TestPet `find:"pets"`
// Bio string `find:"bio"`
// isStudent bool `find:"isStudent"`
// Birthday time.Time `find:"birthday"`
// }
// type TestPet struct {
// Name string `find:"name"`
// Age int `find:"age"`
// Type string `find:"type"`
// Breed string `find:"breed"`
// Toys []string `find:"toys"`
// }
"name": true,
"age": true,
"hobbies": true,
"pets": true,
"bio": true,
"isStudent": true,
"birthday": true,
"pets[0].name": true,
"pets[0].age": true,
}
// Check if all expected fields are found
for field := range expectedFields {
if _, found := structure[field]; !found {
t.Errorf("Field %v not found in structure", field)
}
}
// Optionally, verify the total number of fields matches expectations
if len(structure) != len(expectedFields) {
t.Errorf("Expected %d fields, found %d", len(expectedFields), len(structure))
}
}