use camino::{Utf8Path, Utf8PathBuf};
use komichi::utf8_path_buf;
use std::ffi::{OsStr, OsString};
use std::path::{Path, PathBuf};
#[test]
fn utf8_path_buf_from_str() {
let input = "/a/b/c";
let result = utf8_path_buf(&input).unwrap();
let expect = Utf8PathBuf::from(&input);
assert_eq!(expect, result);
}
#[test]
fn utf8_path_buf_from_string() {
let input = "/a/b/c".to_string();
let result = utf8_path_buf(&input).unwrap();
let expect = Utf8PathBuf::from(&input);
assert_eq!(expect, result);
}
#[test]
fn utf8_path_buf_from_osstr() {
let path = "/a/b/c";
let input = OsStr::new(path);
let result = utf8_path_buf(&input).unwrap();
let expect = Utf8PathBuf::from(&path);
assert_eq!(expect, result);
}
#[test]
fn utf8_path_buf_from_osstring() {
let path = "/a/b/c";
let input = OsString::from(path);
let result = utf8_path_buf(&input).unwrap();
let expect = Utf8PathBuf::from(&path);
assert_eq!(expect, result);
}
#[test]
fn utf8_path_buf_from_path() {
let path = "/a/b/c";
let input = Path::new(path);
let result = utf8_path_buf(&input).unwrap();
let expect = Utf8PathBuf::from(&path);
assert_eq!(expect, result);
}
#[test]
fn utf8_path_buf_from_pathbuf() {
let path = "/a/b/c";
let input = PathBuf::from(path);
let result = utf8_path_buf(&input).unwrap();
let expect = Utf8PathBuf::from(&path);
assert_eq!(expect, result);
}
#[test]
fn utf8_path_buf_from_utf8path() {
let path = "/a/b/c";
let input = Utf8Path::new(path);
let result = utf8_path_buf(&input).unwrap();
let expect = Utf8PathBuf::from(&path);
assert_eq!(expect, result);
}
#[test]
fn utf8_path_buf_from_utf8pathbuf() {
let path = "/a/b/c";
let input = Utf8PathBuf::from(path);
let result = utf8_path_buf(&input).unwrap();
let expect = Utf8PathBuf::from(&path);
assert_eq!(expect, result);
}
#[test]
fn utf8_path_buf_invalid_bytes() {
let input = unsafe { OsStr::from_encoded_bytes_unchecked(b"\xFF\xFF\xFF") };
let result = utf8_path_buf(&input);
assert!(result.is_err());
}