(t *testing.T)
| 330 | } |
| 331 | |
| 332 | func TestWriteReadyForQuery(t *testing.T) { |
| 333 | tests := []struct { |
| 334 | name string |
| 335 | txStatus byte |
| 336 | }{ |
| 337 | {"idle", 'I'}, |
| 338 | {"in transaction", 'T'}, |
| 339 | {"failed transaction", 'E'}, |
| 340 | } |
| 341 | |
| 342 | for _, tt := range tests { |
| 343 | t.Run(tt.name, func(t *testing.T) { |
| 344 | var buf bytes.Buffer |
| 345 | |
| 346 | err := wire.WriteReadyForQuery(&buf, tt.txStatus) |
| 347 | if err != nil { |
| 348 | t.Fatalf("wire.WriteReadyForQuery() error = %v", err) |
| 349 | } |
| 350 | |
| 351 | // Message type should be 'Z' |
| 352 | if buf.Bytes()[0] != 'Z' { |
| 353 | t.Errorf("message type = %c, want Z", buf.Bytes()[0]) |
| 354 | } |
| 355 | |
| 356 | // Length should be 5 (4 for length + 1 for status) |
| 357 | length := binary.BigEndian.Uint32(buf.Bytes()[1:5]) |
| 358 | if length != 5 { |
| 359 | t.Errorf("length = %d, want 5", length) |
| 360 | } |
| 361 | |
| 362 | // Check status |
| 363 | if buf.Bytes()[5] != tt.txStatus { |
| 364 | t.Errorf("txStatus = %c, want %c", buf.Bytes()[5], tt.txStatus) |
| 365 | } |
| 366 | }) |
| 367 | } |
| 368 | } |
| 369 | |
| 370 | func TestWriteErrorResponse(t *testing.T) { |
| 371 | var buf bytes.Buffer |
nothing calls this directly
no test coverage detected