using RobotNet10.GlobalPathPlanner.Differential; using RobotNet10.GlobalPathPlanner.Forklift; using RobotNet10.GlobalPathPlanner.ForkliftV2; namespace RobotNet10.GlobalPathPlanner.UnitTest; public class PathPlannerFactoryTests { private readonly PathPlannerFactory _factory; public PathPlannerFactoryTests() { _factory = new PathPlannerFactory(); } [Fact] public void CreateDifferentialPlanner_ShouldReturnDifferentialPlannerInstance() { // Act var planner = _factory.CreateDifferentialPlanner(); // Assert Assert.NotNull(planner); Assert.IsType(planner); Assert.IsAssignableFrom(planner); } [Fact] public void CreateForkliftPlanner_ShouldReturnForkliftPathPlannerInstance() { // Act var planner = _factory.CreateForkliftPlanner(); // Assert Assert.NotNull(planner); Assert.IsType(planner); Assert.IsAssignableFrom(planner); } [Fact] public void CreateForkliftPlannerV2_ShouldReturnForkLiftPathPlannerV2Instance() { // Act var planner = _factory.CreateForkliftPlannerV2(); // Assert Assert.NotNull(planner); Assert.IsType(planner); Assert.IsAssignableFrom(planner); } [Fact] public void CreateOmniDrivePlanner_ShouldReturnDifferentialPlannerInstance() { // Act var planner = _factory.CreateOmniDrivePlanner(); // Assert Assert.NotNull(planner); Assert.IsType(planner); Assert.IsAssignableFrom(planner); } [Fact] public void CreateDifferentialPlanner_ShouldReturnNewInstanceEachTime() { // Act var planner1 = _factory.CreateDifferentialPlanner(); var planner2 = _factory.CreateDifferentialPlanner(); // Assert Assert.NotSame(planner1, planner2); } [Fact] public void CreateForkliftPlanner_ShouldReturnNewInstanceEachTime() { // Act var planner1 = _factory.CreateForkliftPlanner(); var planner2 = _factory.CreateForkliftPlanner(); // Assert Assert.NotSame(planner1, planner2); } }