Files
pdfsign/sign/pdfxref_table_test.go
2025-02-26 09:46:42 +01:00

48 lines
920 B
Go

package sign
import (
"bytes"
"testing"
"github.com/mattetti/filebuffer"
)
func TestWriteIncrXrefTable(t *testing.T) {
// Test setup
context := &SignContext{
OutputBuffer: &filebuffer.Buffer{
Buff: new(bytes.Buffer),
},
lastXrefID: 100,
updatedXrefEntries: []xrefEntry{
{ID: 50, Offset: 1234},
{ID: 51, Offset: 5678},
},
newXrefEntries: []xrefEntry{
{ID: 101, Offset: 9012},
{ID: 102, Offset: 3456},
},
}
// Execute test
err := context.writeIncrXrefTable()
if err != nil {
t.Fatalf("writeIncrXrefTable failed: %v", err)
}
// Verify output
expected := "xref\n" +
"50 1\n" +
"0000001234 00000 n\r\n" +
"51 1\n" +
"0000005678 00000 n\r\n" +
"101 2\n" +
"0000009012 00000 n\r\n" +
"0000003456 00000 n\r\n"
got := context.OutputBuffer.Buff.String()
if got != expected {
t.Errorf("writeIncrXrefTable output mismatch\ngot:\n%s\nwant:\n%s", got, expected)
}
}