package table import ( "bytes" "testing" ) func TestJSONHeaders(t *testing.T) { buffer := new(bytes.Buffer) printer := &JSONPrinter{writer: buffer} err := printer.Headers("Name", "Age") if err != nil { t.Errorf("Unexpected error: %v", err) } expected := "[\n" if buffer.String() != expected { t.Errorf("Expected '%s', got '%s'", expected, buffer.String()) } } func TestJSONFields(t *testing.T) { buffer := new(bytes.Buffer) printer := &JSONPrinter{writer: buffer, headers: []string{"Name", "Age"}} err := printer.Fields("John Doe", 30) if err != nil { t.Errorf("Unexpected error: %v", err) } expected := "{\n\"Name\":\"John Doe\",\n\"Age\": 30\n}\n" if buffer.String() != expected { t.Errorf("Expected '%s', got '%s'", expected, buffer.String()) } } func TestJSONStringFields(t *testing.T) { buffer := new(bytes.Buffer) printer := &JSONPrinter{writer: buffer, headers: []string{"Name", "Age"}} err := printer.StringFields("John Doe", "30") if err != nil { t.Errorf("Unexpected error: %v", err) } expected := "{\n\"Name\":\"John Doe\",\n\"Age\":\"30\"\n}\n" if buffer.String() != expected { t.Errorf("Expected '%s', got '%s'", expected, buffer.String()) } } func TestJSONFlush(t *testing.T) { buffer := new(bytes.Buffer) printer := &JSONPrinter{writer: buffer} err := printer.Flush() if err != nil { t.Errorf("Unexpected error: %v", err) } expected := "]\n" if buffer.String() != expected { t.Errorf("Expected '%s', got '%s'", expected, buffer.String()) } }