#![allow(unused_imports)]
use easypdf::{
AtomicFileOutput, EasyPdf, ImageData, ImageFormat, LayoutDirection, ListItem, PdfBlock,
PdfBlockType, PdfDocumentModel, PdfInput, PdfManipulator, PdfModel, PdfPageModel, PdfReader,
PdfTemplateFiller, PdfWriter, PdfWriterBuilder, ReadStrategy, ResourceLimits, SourceLocation,
WriteBackend,
};
use easypdf::{
RepairOptions, attempt_repair, guard_decompression_bomb, guard_element_explosion,
is_likely_corrupt, validate_io_url,
};
use easypdf::{Orientation, PageSize, PdfError, PdfFont, PdfMetadata, PdfText, Rotation};
#[test]
fn facade_create_returns_builder() {
let builder = EasyPdf::create("/tmp/test.pdf");
let _ = builder.title("Test");
}
#[test]
fn facade_read_returns_builder() {
let builder = EasyPdf::read("/tmp/nonexistent.pdf");
let _ = builder.pages(0..5);
}
#[test]
fn facade_split_returns_builder() {
let builder = EasyPdf::split("/tmp/nonexistent.pdf");
let _ = builder.every_n_pages(2);
}
#[test]
fn facade_manipulate_returns_builder() {
let builder = EasyPdf::manipulate("/tmp/nonexistent.pdf");
let _ = builder.rotate_all(Rotation::Clockwise90);
}
#[test]
fn facade_encrypt_returns_io_error_for_missing_input() {
let result = EasyPdf::encrypt("/tmp/nonexistent_easypdf_in.pdf", "/tmp/out.pdf", "pass");
assert!(result.is_err());
assert!(matches!(result.unwrap_err(), PdfError::Io(_)));
}
#[test]
fn facade_sign_returns_io_error_for_missing_input() {
let result = EasyPdf::sign(
"/tmp/nonexistent_easypdf_in.pdf",
"/tmp/out.pdf",
"/tmp/nonexistent_key.der".as_ref(),
"/tmp/nonexistent_cert.der".as_ref(),
"reason",
);
assert!(result.is_err());
assert!(matches!(result.unwrap_err(), PdfError::Io(_)));
}
#[test]
fn facade_writer_returns_builder() {
let _builder = EasyPdf::writer("Test Document");
}
#[test]
fn facade_merge_with_empty_rejects() {
let result = EasyPdf::merge(&[] as &[&str], "/tmp/out.pdf");
let _ = result;
}
#[cfg(feature = "markdown")]
#[test]
fn facade_export_markdown_returns_builder() {
let builder = EasyPdf::export_markdown("/tmp/in.pdf", "/tmp/out.md");
let _ = builder.pages(0..10);
}
#[cfg(feature = "markdown")]
#[test]
fn facade_to_markdown_returns_builder() {
let _builder = EasyPdf::to_markdown("/tmp/in.pdf");
}
#[cfg(feature = "markdown")]
#[test]
fn facade_markdown_pipeline_returns_pipeline() {
use easypdf::MarkdownProfile;
let _pipeline = EasyPdf::markdown_pipeline(MarkdownProfile::Gfm);
}
#[cfg(feature = "markdown-table")]
#[test]
fn facade_table_detector_returns_processor() {
let _detector = EasyPdf::table_detector();
}
#[cfg(feature = "render")]
#[test]
fn facade_render_page_signature_exists() {
let _ = EasyPdf::render_page
as fn(
&std::path::Path,
usize,
&std::path::Path,
u32,
) -> std::result::Result<(), easypdf::RenderError>;
}
#[cfg(feature = "resident")]
#[test]
fn facade_attach_returns_option() {
let _result = EasyPdf::attach();
}
#[cfg(feature = "mcp")]
#[test]
fn facade_mcp_server_returns_server() {
let _server = EasyPdf::mcp_server();
}
#[test]
fn writer_builder_api() {
let writer = PdfWriterBuilder::new("Test")
.backend(WriteBackend::default())
.build();
assert!(writer.is_ok());
}
#[test]
fn io_guard_functions_exist() {
let limits = ResourceLimits::default();
let result = guard_decompression_bomb(100, 200, &limits);
assert!(result.is_ok());
}
#[test]
fn io_guard_element_explosion_exists() {
let limits = ResourceLimits::default();
let result = guard_element_explosion(100, &limits);
assert!(result.is_ok());
}
#[test]
fn io_validate_url_exists() {
let result = validate_io_url("https://example.com");
assert!(result.is_ok());
}
#[test]
fn io_repair_functions_exist() {
let _ = is_likely_corrupt;
let _ = attempt_repair;
let _ = RepairOptions::default();
}
#[test]
fn layout_reexports_exist() {
let _: LayoutDirection = LayoutDirection::Horizontal;
}