remove treehouse-format crate and collapse everything into src
This commit is contained in:
parent
ca127a9411
commit
b792688776
66 changed files with 145 additions and 112 deletions
1
tests/it/main.rs
Normal file
1
tests/it/main.rs
Normal file
|
@ -0,0 +1 @@
|
|||
mod vfs;
|
4
tests/it/vfs.rs
Normal file
4
tests/it/vfs.rs
Normal file
|
@ -0,0 +1,4 @@
|
|||
mod cd;
|
||||
mod file;
|
||||
mod mount_points;
|
||||
mod physical;
|
63
tests/it/vfs/cd.rs
Normal file
63
tests/it/vfs/cd.rs
Normal file
|
@ -0,0 +1,63 @@
|
|||
use treehouse::vfs::{
|
||||
entries, query, BufferedFile, Cd, Content, MemDir, ToDynDir, VPath, VPathBuf,
|
||||
};
|
||||
|
||||
const HEWWO: &[u8] = b"hewwo :3";
|
||||
const FWOOFEE: &[u8] = b"fwoofee -w-";
|
||||
const BOOP: &[u8] = b"boop >w<";
|
||||
|
||||
fn vfs() -> MemDir {
|
||||
let file1 = BufferedFile::new(Content::new("text/plain", HEWWO.to_vec()));
|
||||
let file2 = BufferedFile::new(Content::new("text/plain", FWOOFEE.to_vec()));
|
||||
let file3 = BufferedFile::new(Content::new("text/plain", BOOP.to_vec()));
|
||||
|
||||
let mut innermost = MemDir::new();
|
||||
innermost.add(VPath::new("file3.txt"), file3.to_dyn());
|
||||
|
||||
let mut inner = MemDir::new();
|
||||
inner.add(VPath::new("file1.txt"), file1.to_dyn());
|
||||
inner.add(VPath::new("file2.txt"), file2.to_dyn());
|
||||
inner.add(VPath::new("innermost"), innermost.to_dyn());
|
||||
|
||||
let mut vfs = MemDir::new();
|
||||
vfs.add(VPath::new("inner"), inner.to_dyn());
|
||||
vfs
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn dir1() {
|
||||
let outer = vfs();
|
||||
let inner = Cd::new(outer, VPathBuf::new("inner"));
|
||||
|
||||
let mut dir = entries(&inner, VPath::ROOT);
|
||||
dir.sort();
|
||||
assert_eq!(
|
||||
dir,
|
||||
vec![
|
||||
VPathBuf::new("file1.txt"),
|
||||
VPathBuf::new("file2.txt"),
|
||||
VPathBuf::new("innermost"),
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn dir2() {
|
||||
let outer = vfs();
|
||||
let innermost = Cd::new(&outer, VPathBuf::new("inner/innermost"));
|
||||
|
||||
let mut dir = entries(&innermost, VPath::ROOT);
|
||||
dir.sort();
|
||||
assert_eq!(dir, vec![VPathBuf::new("file3.txt")]);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn content() {
|
||||
let outer = vfs();
|
||||
let inner = Cd::new(&outer, VPathBuf::new("inner"));
|
||||
|
||||
assert_eq!(
|
||||
query::<Content>(&inner, VPath::new("test1.txt")).map(Content::bytes),
|
||||
query::<Content>(&outer, VPath::new("inner/test1.txt")).map(Content::bytes)
|
||||
);
|
||||
}
|
22
tests/it/vfs/file.rs
Normal file
22
tests/it/vfs/file.rs
Normal file
|
@ -0,0 +1,22 @@
|
|||
use treehouse::vfs::{entries, query, BufferedFile, Content, VPath};
|
||||
|
||||
fn vfs() -> BufferedFile {
|
||||
BufferedFile::new(Content::new("text/plain", b"hewwo :3".to_vec()))
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn dir() {
|
||||
let vfs = vfs();
|
||||
assert!(entries(&vfs, VPath::ROOT).is_empty());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn content() {
|
||||
let vfs = vfs();
|
||||
assert_eq!(
|
||||
query::<Content>(&vfs, VPath::ROOT)
|
||||
.map(|c| c.bytes())
|
||||
.as_deref(),
|
||||
Some(b"hewwo :3".as_slice()),
|
||||
);
|
||||
}
|
67
tests/it/vfs/mount_points.rs
Normal file
67
tests/it/vfs/mount_points.rs
Normal file
|
@ -0,0 +1,67 @@
|
|||
use treehouse::vfs::{entries, query, BufferedFile, Content, MemDir, ToDynDir, VPath, VPathBuf};
|
||||
|
||||
const HEWWO: &[u8] = b"hewwo :3";
|
||||
const FWOOFEE: &[u8] = b"fwoofee -w-";
|
||||
const BOOP: &[u8] = b"boop >w<";
|
||||
|
||||
fn vfs() -> MemDir {
|
||||
let file1 = BufferedFile::new(Content::new("text/plain", HEWWO.to_vec()));
|
||||
let file2 = BufferedFile::new(Content::new("text/plain", FWOOFEE.to_vec()));
|
||||
let file3 = BufferedFile::new(Content::new("text/plain", BOOP.to_vec()));
|
||||
|
||||
let mut inner = MemDir::new();
|
||||
inner.add(VPath::new("file3.txt"), file3.to_dyn());
|
||||
|
||||
let mut vfs = MemDir::new();
|
||||
vfs.add(VPath::new("file1.txt"), file1.to_dyn());
|
||||
vfs.add(VPath::new("file2.txt"), file2.to_dyn());
|
||||
vfs.add(VPath::new("inner"), inner.to_dyn());
|
||||
vfs
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn dir() {
|
||||
let vfs = vfs();
|
||||
|
||||
let mut dir = entries(&vfs, VPath::ROOT);
|
||||
dir.sort();
|
||||
assert_eq!(
|
||||
dir,
|
||||
vec![
|
||||
VPathBuf::new("file1.txt"),
|
||||
VPathBuf::new("file2.txt"),
|
||||
VPathBuf::new("inner"),
|
||||
]
|
||||
);
|
||||
|
||||
assert!(entries(&vfs, VPath::new("file1.txt")).is_empty());
|
||||
assert!(entries(&vfs, VPath::new("file2.txt")).is_empty());
|
||||
assert_eq!(
|
||||
entries(&vfs, VPath::new("inner")),
|
||||
vec![VPathBuf::new("inner/file3.txt")]
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn content() {
|
||||
let vfs = vfs();
|
||||
|
||||
assert_eq!(
|
||||
query::<Content>(&vfs, VPath::new("file1.txt"))
|
||||
.map(Content::bytes)
|
||||
.as_deref(),
|
||||
Some(HEWWO)
|
||||
);
|
||||
assert_eq!(
|
||||
query::<Content>(&vfs, VPath::new("file2.txt"))
|
||||
.map(Content::bytes)
|
||||
.as_deref(),
|
||||
Some(FWOOFEE)
|
||||
);
|
||||
assert_eq!(
|
||||
query::<Content>(&vfs, VPath::new("inner/file3.txt"))
|
||||
.map(Content::bytes)
|
||||
.as_deref(),
|
||||
Some(BOOP)
|
||||
);
|
||||
}
|
22
tests/it/vfs/physical.rs
Normal file
22
tests/it/vfs/physical.rs
Normal file
|
@ -0,0 +1,22 @@
|
|||
use std::path::Path;
|
||||
|
||||
use treehouse::vfs::{entries, query, Content, PhysicalDir, VPath, VPathBuf};
|
||||
|
||||
fn vfs() -> PhysicalDir {
|
||||
let root = Path::new("tests/it/vfs_physical").to_path_buf();
|
||||
PhysicalDir::new(root)
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn dir() {
|
||||
let vfs = vfs();
|
||||
let dir = entries(&vfs, VPath::ROOT);
|
||||
assert_eq!(&dir[..], &[VPathBuf::new("test.txt")]);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn content() {
|
||||
let vfs = vfs();
|
||||
let content = query::<Content>(&vfs, VPath::new("test.txt")).map(Content::bytes);
|
||||
assert_eq!(content.as_deref(), Some(b"hewwo :3\n".as_slice()));
|
||||
}
|
1
tests/it/vfs_physical/test.txt
Normal file
1
tests/it/vfs_physical/test.txt
Normal file
|
@ -0,0 +1 @@
|
|||
hewwo :3
|
Loading…
Add table
Add a link
Reference in a new issue