Files
herolib/lib/vfs/vfs_db/model_directory_test.v
2025-03-04 00:49:57 +01:00

137 lines
2.3 KiB
V

module vfs_db
import freeflowuniverse.herolib.vfs
fn test_directory_get_metadata() {
// Create a directory with metadata
metadata := vfs.Metadata{
id: 1
name: 'test_dir'
file_type: .directory
size: 0
mode: 0o755
owner: 'user'
group: 'user'
created: 0
modified: 0
}
dir := Directory{
metadata: metadata
children: []
parent_id: 0
}
// Test get_metadata
retrieved_metadata := dir.get_metadata()
assert retrieved_metadata.id == 1
assert retrieved_metadata.name == 'test_dir'
assert retrieved_metadata.file_type == .directory
assert retrieved_metadata.size == 0
assert retrieved_metadata.mode == 0o755
assert retrieved_metadata.owner == 'user'
assert retrieved_metadata.group == 'user'
}
fn test_directory_get_path() {
// Create a directory with metadata
metadata := vfs.Metadata{
id: 1
name: 'test_dir'
file_type: .directory
size: 0
mode: 0o755
owner: 'user'
group: 'user'
created: 0
modified: 0
}
dir := Directory{
metadata: metadata
children: []
parent_id: 0
}
// Test get_path
path := dir.get_path()
assert path == 'test_dir'
}
fn test_directory_is_dir() {
// Create a directory with metadata
metadata := vfs.Metadata{
id: 1
name: 'test_dir'
file_type: .directory
size: 0
mode: 0o755
owner: 'user'
group: 'user'
created: 0
modified: 0
}
dir := Directory{
metadata: metadata
children: []
parent_id: 0
}
// Test is_dir
assert dir.is_dir() == true
assert dir.is_file() == false
assert dir.is_symlink() == false
}
fn test_directory_with_children() {
// Create a directory with children
metadata := vfs.Metadata{
id: 1
name: 'parent_dir'
file_type: .directory
size: 0
mode: 0o755
owner: 'user'
group: 'user'
created: 0
modified: 0
}
dir := Directory{
metadata: metadata
children: [u32(2), 3, 4]
parent_id: 0
}
// Test children
assert dir.children.len == 3
assert dir.children[0] == 2
assert dir.children[1] == 3
assert dir.children[2] == 4
}
fn test_directory_with_parent() {
// Create a directory with a parent
metadata := vfs.Metadata{
id: 2
name: 'child_dir'
file_type: .directory
size: 0
mode: 0o755
owner: 'user'
group: 'user'
created: 0
modified: 0
}
dir := Directory{
metadata: metadata
children: []
parent_id: 1
}
// Test parent_id
assert dir.parent_id == 1
}