Esempio n. 1
0
        public void ShouldReturnTrueWhenWorkerIsInBuilding()
        {
            LocationCheckerModule module;
            IWorkerModule         workerModule;
            IBuildingModule       buildingModule;

            workerModule = new MockedWorkerModule(false, new Worker()
            {
                WorkerID = 1, PlanetID = 5, X = 10, Y = 10
            });
            buildingModule = new MockedBuildingModule(false, new Building()
            {
                BuildingID = 3, PlanetID = 5, X = 10, Y = 10
            });

            module = new LocationCheckerModule(NullLogger.Instance, workerModule, buildingModule);

            Assert.IsTrue(module.WorkerIsInBuilding(1, 3));
        }
Esempio n. 2
0
        public void ShouldReturnFalseWhenWorkerIsNotInBuilding()
        {
            LocationCheckerModule module;
            IWorkerModule         workerModule;
            IBuildingModule       buildingModule;


            // different planet
            workerModule = new MockedWorkerModule(false, new Worker()
            {
                WorkerID = 1, PlanetID = 6, X = 10, Y = 10
            });
            buildingModule = new MockedBuildingModule(false, new Building()
            {
                BuildingID = 3, PlanetID = 5, X = 10, Y = 10
            });
            module = new LocationCheckerModule(NullLogger.Instance, workerModule, buildingModule);
            Assert.IsFalse(module.WorkerIsInBuilding(1, 3));

            // different X
            workerModule = new MockedWorkerModule(false, new Worker()
            {
                WorkerID = 1, PlanetID = 5, X = 9, Y = 10
            });
            buildingModule = new MockedBuildingModule(false, new Building()
            {
                BuildingID = 3, PlanetID = 5, X = 10, Y = 10
            });
            module = new LocationCheckerModule(NullLogger.Instance, workerModule, buildingModule);
            Assert.IsFalse(module.WorkerIsInBuilding(1, 3));

            // different Y
            workerModule = new MockedWorkerModule(false, new Worker()
            {
                WorkerID = 1, PlanetID = 5, X = 10, Y = 9
            });
            buildingModule = new MockedBuildingModule(false, new Building()
            {
                BuildingID = 3, PlanetID = 5, X = 10, Y = 10
            });
            module = new LocationCheckerModule(NullLogger.Instance, workerModule, buildingModule);
            Assert.IsFalse(module.WorkerIsInBuilding(1, 3));
        }
Esempio n. 3
0
        public void WorkerIsInBuildingShouldThrowExceptionAndLogErrorWhenWorkerDoesntExists()
        {
            MemoryLogger          logger;
            LocationCheckerModule module;
            IWorkerModule         workerModule;
            IBuildingModule       buildingModule;

            workerModule = new MockedWorkerModule(false, new Worker()
            {
                WorkerID = 10, PlanetID = 5, X = 10, Y = 10
            });
            buildingModule = new MockedBuildingModule(false, new Building()
            {
                BuildingID = 3, PlanetID = 5, X = 10, Y = 10
            });

            logger = new MemoryLogger();
            module = new LocationCheckerModule(logger, workerModule, buildingModule);
            Assert.ThrowsException <PIONotFoundException>(() => module.WorkerIsInBuilding(1, 2));
            Assert.IsNotNull(logger.Logs.FirstOrDefault(item => (item.Level == LogLevels.Warning) && (item.ComponentName == module.ModuleName)));
        }
Esempio n. 4
0
        public void WorkerIsInBuildingShouldThrowExceptionAndLogErrorWhenSubModuleFails()
        {
            MemoryLogger          logger;
            LocationCheckerModule module;
            IWorkerModule         workerModule;
            IBuildingModule       buildingModule;

            //
            workerModule = new MockedWorkerModule(true, new Worker()
            {
                WorkerID = 1, PlanetID = 5, X = 10, Y = 10
            });
            buildingModule = new MockedBuildingModule(false, new Building()
            {
                BuildingID = 3, PlanetID = 5, X = 10, Y = 10
            });

            logger = new MemoryLogger();
            module = new LocationCheckerModule(logger, workerModule, buildingModule);
            Assert.ThrowsException <PIOInternalErrorException>(() => module.WorkerIsInBuilding(1, 3));
            Assert.IsNotNull(logger.Logs.FirstOrDefault(item => (item.Level == LogLevels.Error) && (item.ComponentName == module.ModuleName)));

            //
            workerModule = new MockedWorkerModule(false, new Worker()
            {
                WorkerID = 1, PlanetID = 5, X = 10, Y = 10
            });
            buildingModule = new MockedBuildingModule(true, new Building()
            {
                BuildingID = 3, PlanetID = 5, X = 10, Y = 10
            });

            logger = new MemoryLogger();
            module = new LocationCheckerModule(logger, workerModule, buildingModule);
            Assert.ThrowsException <PIOInternalErrorException>(() => module.WorkerIsInBuilding(1, 3));
            Assert.IsNotNull(logger.Logs.FirstOrDefault(item => (item.Level == LogLevels.Error) && (item.ComponentName == module.ModuleName)));
        }