Exemple #1
0
 public static PositionSystem Instance()
 {
     if (instance == null)
     {
         instance = new PositionSystem();
     }
     return(instance);
 }
        public void Path_DifferentMaps_ReturnsNull()
        {
            PositionSystem testPositionSystem = SetUpTestPositionSystemWithPathfindingAlgorithm(out IPathfindingAlgorithm pathfindingAlgorithm);

            MapCoordinate from   = GetTestMapCoordinate(x: 0, y: 0);
            MapCoordinate to     = GetTestMapCoordinate(key: "DIFFERENT_MAP", x: 1, y: 0);
            var           result = testPositionSystem.Path(from, to);

            pathfindingAlgorithm.Path(Arg.Any <IMap>(), from, to).Received(0);
            result.Should().BeNull();
        }
        public void Path_CallsPathfindingAlgorithm()
        {
            PositionSystem testPositionSystem = SetUpTestPositionSystemWithPathfindingAlgorithm(out IPathfindingAlgorithm pathfindingAlgorithm);

            MapCoordinate from = GetTestMapCoordinate(x: 0, y: 0);
            MapCoordinate to   = GetTestMapCoordinate(x: 1, y: 0);

            testPositionSystem.Path(from, to);

            pathfindingAlgorithm.Path(Arg.Any <IMap>(), from, to).Received(1);
        }
        private static PositionSystem SetUpTestPositionSystemWithPathfindingAlgorithm(out IPathfindingAlgorithm pathfindingAlgorithm)
        {
            pathfindingAlgorithm = Substitute.For <IPathfindingAlgorithm>();
            IEntityEngine entityEngine = Substitute.For <IEntityEngine>();
            IMapSystem    mapSystem    = Substitute.For <IMapSystem>();

            mapSystem.MapCollection.Returns(new Atlas()
            {
                { new MapKey(TEST_MAP_NAME), Substitute.For <IMap>() }
            });
            var testPositionSystem = new PositionSystem(mapSystem, entityEngine, pathfindingAlgorithm);

            return(testPositionSystem);
        }