public void MakeParseOperation_Always_SplitsLinesAndParamsCorrectly(string[][] configData) { var testContext = new TestContext() { Config = BuildConfig(configData) }; var mockConfigParseHandler = testContext.AddFakeConfigParseHandler(ParseResult.Success); var configLines = new List <ConfigLine>(); mockConfigParseHandler .Setup(x => x.OnParsing(It.IsAny <ConfigLine>())) .Callback <ConfigLine>(x => configLines.Add(x)) .Returns(ParseResult.Success); testContext.Uut.MakeParseOperation() .ShouldRunToCompletion(testContext.MockBackgroundWorker); configLines.Count.ShouldBe(configData.Length); foreach (var i in Enumerable.Range(0, configLines.Count)) { var expectedConfigLine = new ConfigLine(configData[i]); configLines[i].Option.ShouldBe(expectedConfigLine.Option); configLines[i].ParamCount.ShouldBe(expectedConfigLine.ParamCount); foreach (var index in Enumerable.Range(0, configLines[i].ParamCount)) { configLines[i].GetParam(index).ShouldBe(expectedConfigLine.GetParam(index)); } } }
public void OnParsing_ParamsAreValidForBlockTag_ReturnsSuccessAndSetsBlockTag(params string[] linePieces) { var configLine = new ConfigLine(linePieces); var uut = new ProgramSettingsProvider(); var settings = uut.Settings; settings.ManageInterval = TimeSpan.FromMilliseconds(int.Parse(configLine.GetParam(0))); var result = uut.OnParsing(configLine); result.IsSuccess.ShouldBeTrue(); uut.Settings.ShouldBe(settings); }
public ParseResult OnParsing(ConfigLine configLine) { switch (configLine.Option) { case "instructions-per-tick": int instructionsPerTick; if ((configLine.ParamCount != 1) || !int.TryParse(configLine.GetParam(0), out instructionsPerTick) || (instructionsPerTick < 1)) { return(ParseResult.FromError("Usage: \"instructions-per-tick:<InstructionsPerTick>\" (> 0)")); } _settings.InstructionsPerTick = instructionsPerTick; return(ParseResult.Success); default: return(ParseResult.Ignored); } }
public ParseResult OnParsing(ConfigLine configLine) { switch (configLine.Option) { case "auto-close-interval": int autoCloseIntervalMilliseconds; if ((configLine.ParamCount != 1) || !int.TryParse(configLine.GetParam(0), out autoCloseIntervalMilliseconds) || (autoCloseIntervalMilliseconds < 1)) { return(ParseResult.FromError("Usage: \"auto-close-interval:<AutoCloseInterval>\" (> 0) (ms)")); } _settings.AutoCloseInterval = TimeSpan.FromMilliseconds(autoCloseIntervalMilliseconds); return(ParseResult.Success); default: return(ParseResult.Ignored); } }
public ParseResult OnParsing(ConfigLine configLine) { switch (configLine.Option) { case "max-log-size": int maxLogSize; if ((configLine.ParamCount != 1) || !int.TryParse(configLine.GetParam(0), out maxLogSize) || (maxLogSize < 0)) { return(ParseResult.FromError("Usage: \"max-log-size:<MaxLogSize>\" (>= 0) (lines)")); } _settings.MaxLogSize = maxLogSize; return(ParseResult.Success); default: return(ParseResult.Ignored); } }
public ParseResult OnParsing(ConfigLine configLine) { switch (configLine.Option) { case "block-tag": if (configLine.ParamCount != 1) { return(ParseResult.FromError("Usage: \"block-tag:<BlockTag>\"")); } _settings.BlockTag = configLine.GetParam(0); return(ParseResult.Success); case "manage-other-grids": if (configLine.ParamCount != 0) { return(ParseResult.FromError("Usage: \"manage-other-grids\"")); } _settings.ManageOtherGrids = true; return(ParseResult.Success); case "auto-manage-this-grid": if (configLine.ParamCount != 0) { return(ParseResult.FromError("Usage: \"auto-manage-this-grid\"")); } _settings.AutoManageThisGrid = true; return(ParseResult.Success); case "auto-manage-other-grids": if (configLine.ParamCount != 0) { return(ParseResult.FromError("Usage: \"auto-manage-other-grids\"")); } _settings.AutoManageOtherGrids = true; return(ParseResult.Success); default: return(ParseResult.Ignored); } }
public void GetParam_Always_ReturnsPieceAtIndexPlus(int index, IReadOnlyList <string> linePieces) { var uut = new ConfigLine(linePieces); uut.GetParam(index).ShouldBe(linePieces[index + 1]); }
public static void ShouldHaveReceivedOnParsing(this Mock <IConfigParseHandler> mockHandler, ConfigLine expectedConfigLine) => mockHandler .ShouldHaveReceived(x => x.OnParsing(It.Is <ConfigLine>(configLine => (configLine.Option == expectedConfigLine.Option) && (configLine.ParamCount == expectedConfigLine.ParamCount) && Enumerable.Range(0, configLine.ParamCount) .All(index => configLine.GetParam(index) == expectedConfigLine.GetParam(index)))));