Пример #1
0
        public void OnStarting_Always_ResetsSettings(string defualtBlockTag)
        {
            var uut = new ManagerSettingsProvider()
            {
                DefaultBlockTag = defualtBlockTag
            };

            uut.OnStarting();

            uut.Settings.BlockTag.ShouldBe(defualtBlockTag);
            uut.Settings.ManageOtherGrids.ShouldBe(false);
            uut.Settings.AutoManageThisGrid.ShouldBe(false);
            uut.Settings.AutoManageOtherGrids.ShouldBe(false);
        }
Пример #2
0
        public void OnParsing_OptionIsUnknown_ReturnsIgnoredAndDoesNotChangeSettings(params string[] linePieces)
        {
            var configLine = new ConfigLine(linePieces);

            var uut = new ManagerSettingsProvider();

            var settings = uut.Settings;

            var result = uut.OnParsing(configLine);

            result.IsIgnored.ShouldBeTrue();

            uut.Settings.ShouldBe(settings);
        }
Пример #3
0
        public void OnParsing_ParamsAreInvalid_ReturnsErrorAndDoesNotChangeSettings(params string[] linePieces)
        {
            var configLine = new ConfigLine(linePieces);

            var uut = new ManagerSettingsProvider();

            var settings = uut.Settings;

            var result = uut.OnParsing(configLine);

            result.IsError.ShouldBeTrue();
            result.Error.ShouldContain(linePieces[0]);

            uut.Settings.ShouldBe(settings);
        }
Пример #4
0
        public void OnParsing_ParamsAreValidForBlockTag_ReturnsSuccessAndSetsBlockTag(params string[] linePieces)
        {
            var configLine = new ConfigLine(linePieces);

            var uut = new ManagerSettingsProvider();

            var settings = uut.Settings;

            settings.BlockTag = linePieces[1];

            var result = uut.OnParsing(configLine);

            result.IsSuccess.ShouldBeTrue();

            uut.Settings.ShouldBe(settings);
        }
Пример #5
0
        public void Settings_Always_SavesValue(string blockTag, bool manageOtherGrids, bool autoManageThisGrid, bool autoManageOtherGrids)
        {
            var uut = new ManagerSettingsProvider();

            var settings = new ManagerSettings()
            {
                BlockTag             = blockTag,
                ManageOtherGrids     = manageOtherGrids,
                AutoManageThisGrid   = autoManageThisGrid,
                AutoManageOtherGrids = autoManageOtherGrids
            };

            uut.Settings = settings;

            uut.Settings.ShouldBe(settings);
        }
Пример #6
0
        public void OnParsing_ParamsAreValidForAutoManageOtherGrids_ReturnsSuccessAndSetsAutoManageOtherGrids(params string[] linePieces)
        {
            var configLine = new ConfigLine(linePieces);

            var uut = new ManagerSettingsProvider();

            var settings = uut.Settings;

            settings.AutoManageOtherGrids = true;

            var result = uut.OnParsing(configLine);

            result.IsSuccess.ShouldBeTrue();

            uut.Settings.ShouldBe(settings);
        }
Пример #7
0
        public void OnCompleted_Always_DoesNothing(string blockTag, bool manageOtherGrids, bool autoManageThisGrid, bool autoManageOtherGrids)
        {
            var uut = new ManagerSettingsProvider();

            var settings = new ManagerSettings()
            {
                BlockTag             = blockTag,
                ManageOtherGrids     = manageOtherGrids,
                AutoManageThisGrid   = autoManageThisGrid,
                AutoManageOtherGrids = autoManageOtherGrids
            };

            uut.Settings = settings;

            uut.OnCompleted();

            uut.Settings.ShouldBe(settings);
        }
Пример #8
0
        public Program()
        {
            var dateTimeProvider             = new DateTimeProvider();
            var loggerSettingsProvider       = new LoggerSettingsProvider();
            var managedBlockSettingsProvider = new ManagedBlockSettingsProvider();

            var logger = new Logger(
                dateTimeProvider,
                loggerSettingsProvider);
            var managedBlockConfigParseHandlers = new IManagedBlockConfigParseHandler[]
            {
                managedBlockSettingsProvider
            };
            var managerSettingsProvider = new ManagerSettingsProvider()
            {
                DefaultBlockTag = "AutomatedDocking"
            };

            var batteryBlockManager       = new BatteryBlockManager();
            var connectorManager          = new ConnectorManager();
            var functionalBlockManager    = new FunctionalBlockManager();
            var gasTankManager            = new GasTankManager();
            var landingGearManager        = new LandingGearManager();
            var managedBlockConfigManager = new ManagedBlockConfigManager(
                logger,
                managedBlockConfigParseHandlers,
                managerSettingsProvider);
            var dockingManagerSettingsProvider = new DockingManagerSettingsProvider();

            var batteryBlockCollectionHandler = new BatteryBlockCollectionHandler(
                batteryBlockManager,
                logger,
                dockingManagerSettingsProvider);
            var connectorCollectionHandler = new ConnectorCollectionHandler(
                connectorManager,
                logger);
            var functionalBlockCollectionHandler = new FunctionalBlockCollectionHandler(
                functionalBlockManager,
                logger,
                dockingManagerSettingsProvider);
            var gasTankCollectionHandler = new GasTankCollectionHandler(
                gasTankManager,
                logger,
                dockingManagerSettingsProvider);
            var landingGearCollectionHandler = new LandingGearCollectionHandler(
                landingGearManager,
                logger,
                dockingManagerSettingsProvider);
            var managedBlockCollectionHandler = new ManagedBlockCollectionHandler(
                managedBlockConfigManager,
                managedBlockSettingsProvider,
                managerSettingsProvider,
                Me);

            var backgroundWorkerSettingsProvider = new BackgroundWorkerSettingsProvider();
            var blockCollectionHandlers          = new IBlockCollectionHandler[]
            {
                managedBlockCollectionHandler,
                batteryBlockCollectionHandler,
                connectorCollectionHandler,
                functionalBlockCollectionHandler,
                gasTankCollectionHandler,
                landingGearCollectionHandler
            };

            var backgroundWorker = new BackgroundWorker(
                backgroundWorkerSettingsProvider,
                dateTimeProvider,
                Runtime);
            var blockCollectionManager = new BlockCollectionManager <IMyTerminalBlock>(
                blockCollectionHandlers,
                GridTerminalSystem);

            var programReloadHandler = new ProgramReloadHandler(
                backgroundWorker,
                blockCollectionManager);

            var configParseHandlers = new IConfigParseHandler[]
            {
                backgroundWorkerSettingsProvider,
                loggerSettingsProvider,
                managerSettingsProvider,
                dockingManagerSettingsProvider,
                programReloadHandler
            };

            var configManager = new ConfigManager(
                configParseHandlers,
                logger,
                Me);
            var dockingManager = new DockingManager(
                logger,
                batteryBlockManager,
                connectorManager,
                functionalBlockManager,
                gasTankManager,
                landingGearManager);
            var echoProvider = new EchoProvider(Echo);

            _programManager = new ProgramManager(
                backgroundWorker,
                configManager,
                dockingManager,
                echoProvider,
                Runtime,
                logger);

            _programManager.Run("reload");
        }
Пример #9
0
        public Program()
        {
            var doorManagerSettingsProvider = new DoorManagerSettingsProvider();

            var dateTimeProvider             = new DateTimeProvider();
            var loggerSettingsProvider       = new LoggerSettingsProvider();
            var managedBlockSettingsProvider = new ManagedBlockSettingsProvider();
            var managedDoorSettingsProvider  = new ManagedDoorSettingsProvider(
                doorManagerSettingsProvider);

            var logger = new Logger(
                dateTimeProvider,
                loggerSettingsProvider);
            var managedBlockConfigParseHandlers = new IManagedBlockConfigParseHandler[]
            {
                managedBlockSettingsProvider,
                managedDoorSettingsProvider
            };
            var managerSettingsProvider = new ManagerSettingsProvider()
            {
                DefaultBlockTag = "DoorManager"
            };

            var doorManager = new DoorManager(
                dateTimeProvider,
                doorManagerSettingsProvider,
                logger);
            var managedBlockConfigManager = new ManagedBlockConfigManager(
                logger,
                managedBlockConfigParseHandlers,
                managerSettingsProvider);

            var managedBlockCollectionHandler = new ManagedBlockCollectionHandler(
                managedBlockConfigManager,
                managedBlockSettingsProvider,
                managerSettingsProvider,
                Me);
            var managedDoorCollectionHandler = new ManagedDoorCollectionHandler(
                doorManager,
                logger,
                managedDoorSettingsProvider);

            var backgroundWorkerSettingsProvider = new BackgroundWorkerSettingsProvider();
            var blockCollectionHandlers          = new IBlockCollectionHandler[]
            {
                managedBlockCollectionHandler,
                managedDoorCollectionHandler
            };

            var backgroundWorker = new BackgroundWorker(
                backgroundWorkerSettingsProvider,
                dateTimeProvider,
                Runtime);
            var blockCollectionManager = new BlockCollectionManager <IMyDoor>(
                blockCollectionHandlers,
                GridTerminalSystem);
            var programSettingsProvider = new ProgramSettingsProvider();

            var programReloadHandler = new ProgramReloadHandler(
                backgroundWorker,
                blockCollectionManager,
                doorManager,
                programSettingsProvider);

            var configParseHandlers = new IConfigParseHandler[]
            {
                loggerSettingsProvider,
                backgroundWorkerSettingsProvider,
                managerSettingsProvider,
                doorManagerSettingsProvider,
                programSettingsProvider,
                programReloadHandler
            };

            var configManager = new ConfigManager(
                configParseHandlers,
                logger,
                Me);
            var echoProvider = new EchoProvider(
                Echo);

            _programManager = new ProgramManager(
                backgroundWorker,
                configManager,
                doorManager,
                echoProvider,
                Runtime,
                logger);

            _programManager.Run("reload");
        }