package store import ( "encoding/json" "strings" "testing" ) func TestEndpointJSONRoundTrip(t *testing.T) { var e Endpoint if err := json.Unmarshal([]byte(`{"role_label":"src","host":"h","port":993,"tls_mode":"ssl"}`), &e); err != nil { t.Fatal(err) } if e.RoleLabel != "src" || e.Host != "h" || e.Port != 993 || e.TLSMode != "ssl" { t.Fatalf("decode failed: %+v", e) } b, _ := json.Marshal(e) if !strings.Contains(string(b), `"tls_mode":"ssl"`) || !strings.Contains(string(b), `"role_label":"src"`) { t.Fatalf("marshal not snake_case: %s", b) } } func TestTaskJSONRoundTrip(t *testing.T) { var tk Task if err := json.Unmarshal([]byte(`{"name":"n","src_endpoint_id":1,"dst_endpoint_id":2}`), &tk); err != nil { t.Fatal(err) } if tk.Name != "n" || tk.SrcEndpointID != 1 || tk.DstEndpointID != 2 { t.Fatalf("decode failed: %+v", tk) } b, _ := json.Marshal(tk) if !strings.Contains(string(b), `"src_endpoint_id":1`) { t.Fatalf("marshal not snake_case: %s", b) } }