mirror of
https://github.com/pjh456/OxideJS.git
synced 2026-10-24 02:31:13 +08:00
76 lines
1.7 KiB
Rust
76 lines
1.7 KiB
Rust
use oxide_kernel::prop_forge::{PropForge, PropTemplate};
|
|
|
|
#[test]
|
|
fn test_get_nonexistent() {
|
|
let forge = PropForge::new();
|
|
assert!(forge.get_template(999).is_none());
|
|
}
|
|
|
|
#[test]
|
|
fn test_upsert_and_get() {
|
|
let forge = PropForge::new();
|
|
let t = PropTemplate {
|
|
shape_id: 1,
|
|
prop_name: 11,
|
|
position: 3,
|
|
generation: 10,
|
|
};
|
|
forge.upsert(1, t);
|
|
let got = forge.get_template(1).unwrap();
|
|
assert_eq!(got.shape_id, 1);
|
|
assert_eq!(got.prop_name, 11);
|
|
assert_eq!(got.position, 3);
|
|
assert_eq!(got.generation, 10);
|
|
}
|
|
|
|
#[test]
|
|
fn test_upsert_if_better_high_gen_wins() {
|
|
let forge = PropForge::new();
|
|
forge.upsert_if_better(
|
|
1,
|
|
PropTemplate {
|
|
shape_id: 1,
|
|
prop_name: 11,
|
|
position: 3,
|
|
generation: 10,
|
|
},
|
|
);
|
|
forge.upsert_if_better(
|
|
1,
|
|
PropTemplate {
|
|
shape_id: 1,
|
|
prop_name: 12,
|
|
position: 7,
|
|
generation: 5,
|
|
},
|
|
);
|
|
let got = forge.get_template(1).unwrap();
|
|
assert_eq!(got.generation, 10);
|
|
}
|
|
|
|
#[test]
|
|
fn test_upsert_if_better_low_replaced() {
|
|
let forge = PropForge::new();
|
|
forge.upsert_if_better(
|
|
1,
|
|
PropTemplate {
|
|
shape_id: 1,
|
|
prop_name: 11,
|
|
position: 3,
|
|
generation: 5,
|
|
},
|
|
);
|
|
forge.upsert_if_better(
|
|
1,
|
|
PropTemplate {
|
|
shape_id: 1,
|
|
prop_name: 12,
|
|
position: 7,
|
|
generation: 10,
|
|
},
|
|
);
|
|
let got = forge.get_template(1).unwrap();
|
|
assert_eq!(got.generation, 10);
|
|
assert_eq!(got.position, 7);
|
|
}
|