Files

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);
}