package table import ( "bytes" "testing" "text/tabwriter" ) func TestHeaders(t *testing.T) { buffer := new(bytes.Buffer) writer := tabwriter.NewWriter(buffer, 0, 0, 1, ' ', 0) printer := &HumanPrinter{writer: writer} err := printer.Headers("Name", "Age") if err != nil { t.Errorf("Unexpected error: %v", err) } printer.Flush() expected := "Name Age \n" if buffer.String() != expected { t.Errorf("Expected '%s', got '%s'", expected, buffer.String()) } } func TestFields(t *testing.T) { buffer := new(bytes.Buffer) writer := tabwriter.NewWriter(buffer, 0, 0, 1, ' ', 0) printer := &HumanPrinter{writer: writer} err := printer.Fields("John Doe", 30) if err != nil { t.Errorf("Unexpected error: %v", err) } printer.Flush() expected := "John Doe 30 \n" if buffer.String() != expected { t.Errorf("Expected '%s', got '%s'", expected, buffer.String()) } } func TestStringFields(t *testing.T) { buffer := new(bytes.Buffer) writer := tabwriter.NewWriter(buffer, 0, 0, 1, ' ', 0) printer := &HumanPrinter{writer: writer} err := printer.StringFields("John Doe", "30") if err != nil { t.Errorf("Unexpected error: %v", err) } printer.Flush() expected := "John Doe 30 \n" if buffer.String() != expected { t.Errorf("Expected '%s', got '%s'", expected, buffer.String()) } }