wowlab_engine_domain/dbc/
test_support.rs1use wowlab_types::data::{SpellDataFlat, SpellEffect};
4
5const CLASS_SET: i32 = 11;
6const LABEL: i32 = 4_013;
7
8#[must_use]
9pub fn masked_effect(aura: i32, misc_value_0: i32, base_points: f64) -> SpellEffect {
10 SpellEffect {
11 aura,
12 misc_value_0,
13 base_points,
14 effect_class_mask_1: 1,
15 ..Default::default()
16 }
17}
18
19#[must_use]
20pub fn label_effect(aura: i32, misc_value_0: i32, base_points: f64) -> SpellEffect {
21 SpellEffect {
22 aura,
23 misc_value_0,
24 base_points,
25 misc_value_1: LABEL,
26 ..Default::default()
27 }
28}
29
30#[must_use]
31pub fn passive(effects: Vec<SpellEffect>) -> SpellDataFlat {
32 SpellDataFlat {
33 is_passive: true,
34 spell_class_set: CLASS_SET,
35 effects,
36 ..Default::default()
37 }
38}
39
40#[cfg(test)]
41mod tests {
42 use googletest::prelude::*;
43
44 use super::*;
45
46 #[gtest]
47 fn masked_effect_sets_class_mask() -> Result<()> {
48 let effect = masked_effect(1, 2, 3.0);
49
50 verify_that!(effect.effect_class_mask_1, eq(1))?;
51
52 verify_that!(effect.base_points, near(3.0, 1e-9))
53 }
54
55 #[gtest]
56 fn label_effect_sets_fixture_label() -> Result<()> {
57 verify_that!(label_effect(1, 2, 3.0).misc_value_1, eq(LABEL))
58 }
59
60 #[gtest]
61 fn passive_sets_fixture_class() -> Result<()> {
62 let spell = passive(vec![SpellEffect::default()]);
63
64 verify_that!(spell.is_passive, eq(true))?;
65 verify_that!(spell.spell_class_set, eq(CLASS_SET))?;
66
67 verify_that!(spell.effects, len(eq(1)))
68 }
69}