use std::fs;
use std::io::{Error, ErrorKind};
use std::path::PathBuf;
use crate::binary::*;
use crate::*;
#[test]
fn build_simple_package() -> std::io::Result<()> {
DebPackage::new("test")
.set_version("0.1.0")
.set_architecture(DebArchitecture::Amd64)
.with_depend("bash")
.set_maintainer("NotSludgeBomb <notsludgebomb@protonmail.com>")
.set_description("test package for deb-rust")
.with_file(
DebFile::from_buf(
"#!/usr/bin/bash\necho hello world!".as_bytes().to_vec(),
PathBuf::from("/usr/bin/hello"),
)
.is_exec(),
)
.build()?
.write(fs::File::create("test.deb")?)?;
Ok(())
}
#[test]
fn read_simple_package() -> std::io::Result<()> {
let reader = DebPackage::from(fs::File::open("tester.deb")?)?;
let checks = [
reader.name() == "test",
reader.version() == "0.1.0",
reader.priority() == &DebPriority::Optional,
reader.architecture() == &DebArchitecture::Amd64,
!reader.essential(),
reader.depends() == &vec!["bash".to_string()],
reader.maintainer() == "NotSludgeBomb <notsludgebomb@protonmail.com>",
reader.description() == "test package for deb-rust",
];
for i in checks {
if !i {
return Err(Error::new(
ErrorKind::Other,
"value of read field is incorrect",
));
}
}
Ok(())
}