use bevy_ecs::prelude::*;
use windows_numerics::Vector2;
use wintf::ecs::visual_resource_management_system;
use wintf::ecs::world::FrameCount;
use wintf::ecs::Visual;
use wintf::ecs::{GraphicsCore, VisualGraphics};
#[test]
fn test_visual_component_definition() {
let mut world = World::new();
let entity = world.spawn(Visual::default()).id();
let visual = world.get::<Visual>(entity).unwrap();
assert_eq!(visual.is_visible, true);
assert_eq!(visual.opacity, 1.0);
assert_eq!(visual.transform_origin.X, 0.0);
assert_eq!(visual.transform_origin.Y, 0.0);
}
#[test]
fn test_visual_component_properties() {
let visual = Visual {
is_visible: false,
opacity: 0.5,
transform_origin: Vector2::new(10.0, 20.0),
};
assert_eq!(visual.is_visible, false);
assert_eq!(visual.opacity, 0.5);
assert_eq!(visual.transform_origin.X, 10.0);
assert_eq!(visual.transform_origin.Y, 20.0);
}
#[test]
fn test_visual_resource_creation() {
let mut world = World::new();
let graphics = GraphicsCore::new().expect("Failed to create GraphicsCore");
world.insert_resource(graphics);
world.insert_resource(FrameCount(1));
let mut schedule = Schedule::default();
schedule.add_systems(visual_resource_management_system);
let entity = world.spawn(Visual::default()).id();
schedule.run(&mut world);
assert!(
world.get::<VisualGraphics>(entity).is_some(),
"VisualGraphics should be created by visual_resource_management_system"
);
}