package main

import (
	"bytes"
	"os"
	"path/filepath"
	"strings"
	"testing"
)

func TestReadBoundedFileRejectsOversizedEvidence(t *testing.T) {
	path := filepath.Join(t.TempDir(), "oversized.json")
	if err := os.WriteFile(path, bytes.Repeat([]byte{'x'}, int(maxEvidenceBytes+1)), 0o600); err != nil {
		t.Fatal(err)
	}

	_, err := readBoundedFile(path, "test evidence", maxEvidenceBytes)
	if err == nil || !strings.Contains(err.Error(), "exceeds size limit") {
		t.Fatalf("expected bounded-read rejection, got %v", err)
	}
}

func TestReadBoundedAcceptsExactLimit(t *testing.T) {
	content, err := readBounded(bytes.NewReader([]byte("exact")), "test evidence", 5)
	if err != nil {
		t.Fatal(err)
	}
	if string(content) != "exact" {
		t.Fatalf("unexpected content %q", content)
	}
}
