public void Not_Throw_If_An_Unexpected_Argument_Is_Found() { // arrange var builder = DefaultBuilder.CreateDefaultBuilder(); var strat = new ParseStrategy(builder.Context); var mock = new Mock <IPotentialConsumerStrategy>(); mock.SetupAllProperties(); mock.Setup(s => s.IdentifyPotentialConsumer(It.IsAny <PotentialConsumerRequest>())).Returns( new PotentialConsumerResult(builder.Context.PathToRoot("util"), new ConsumptionResult[0], new IterationInfo("-h".Split(' ')))); strat.PotentialConsumerStrategy = mock.Object; IParseResult res = null; Action mightThrow = () => res = strat.Parse("-h".Split(' ')); // act // assert mightThrow.Should().NotThrow(); var isParsed = false; res.WhenError(exceptions => { exceptions.Single().Should().BeOfType <UnexpectedArgException>(); isParsed = true; }); isParsed.Should().BeTrue(); }
void Parse <T>(ParseStrategy <T> parseStrategy, T data) { //do some prep parseStrategy.Parse(data); //do something with the result; }
private void SwagDataSetHeader_Export(object sender, RoutedEventArgs e) { FrameworkElement fe = (FrameworkElement)sender; SwagDataSet swagDataSet = (SwagDataSet)fe.DataContext; ParseStrategy parseStrategy = (ParseStrategy)fe.Tag; switch (parseStrategy) { case ParseStrategy.Sqlite: SaveFileDialog sfdSqlite = new SaveFileDialog(); sfdSqlite.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); sfdSqlite.FileName = Path.ChangeExtension(swagDataSet.Display, null); sfdSqlite.Filter = "SQLite files (*.db;*.sqlite)|*.db;*.sqlite"; System.Windows.Application.Current.Dispatcher.Invoke(new Action(() => { if (sfdSqlite.ShowDialog() ?? false) { DataSetSqliteFileConverter dsConverter = new DataSetSqliteFileConverter(); dsConverter.FromDataSet(null, swagDataSet.GetDataSet(), sfdSqlite.FileName); } })); break; case ParseStrategy.Csv: System.Windows.Forms.FolderBrowserDialog fbdCsv = new System.Windows.Forms.FolderBrowserDialog(); fbdCsv.SelectedPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); System.Windows.Application.Current.Dispatcher.Invoke(new Action(() => { if (fbdCsv.ShowDialog() == System.Windows.Forms.DialogResult.OK) { DataSetCsvFileConverter dsConverter = new DataSetCsvFileConverter(); SwagItemPreOrderIterator <SwagData> itrSwagData = swagDataSet.CreateIterator(); swagDataSet.Display = swagDataSet.Display ?? "DataSet"; for (SwagData sd = itrSwagData.First(); !itrSwagData.IsDone; sd = itrSwagData.Next()) { if (sd is SwagDataSet sds) { String destFolder = ""; //If exporting root and root has blank display, use DataSet if (swagDataSet == SwagDataSet && string.IsNullOrEmpty(swagDataSet.Display)) { destFolder = Path.Combine(fbdCsv.SelectedPath, "DataSet", sds.Path); } else { destFolder = Path.Combine(fbdCsv.SelectedPath, sds.Path); } //limit to depth of 1 when exporting DataSet dsConverter.FromDataSet(null, sds.GetDataSet(1), destFolder); } } } })); break; } }
public void ParseStrategy_ReplaceCapitalLetters() { IParseStrategy parseStrategy = ParseStrategy.ReplaceCapitalLetters(); for (int i = 0; i < testStrings.Length; i++) { Assert.IsTrue(parseStrategy.Parse(testStrings[i]) == lowercaseResultStrings[i]); } }
public void ParseStrategy_ReplaceNonASCII() { IParseStrategy parseStrategy = ParseStrategy.ReplaceNonASCII(); for (int i = 0; i < testStrings.Length; i++) { Assert.IsTrue(parseStrategy.Parse(testStrings[i]) == asciiResultStrings[i]); } }
public void ParseStrategy_LeaveUnchanged() { IParseStrategy parseStrategy = ParseStrategy.LeaveUnchanged(); for (int i = 0; i < testStrings.Length; i++) { Assert.IsTrue(parseStrategy.Parse(testStrings[i]) == testStrings[i]); } }
/// <inheritdoc /> public ICommandParseResult <object> ParseCommands(string input, Type[] supportedTypes) { try { var request = new MultipleCommandParseRequest(input, supportedTypes); return(ParseStrategy.ParseCommands(request)); } catch (Exception e) { throw new CommandParserException($"Ошибка при разборе команды '{input}''", e); } }
/// <inheritdoc /> public ICommandParseResult <TModel> ParseCommand <TModel>(string input) where TModel : class, new() { try { var request = new SingleCommandParseRequest <TModel>(input); return(ParseStrategy.ParseCommand(request)); } catch (Exception e) { throw new CommandParserException($"Ошибка при разборе команды '{input}' типа '{typeof(TModel)}'", e); } }
public void Set_Sub_Component_Contexts_When_The_Context_Changes() { // arrange var builder = DefaultBuilder.CreateDefaultBuilder(); var strat = new ParseStrategy(builder.Context); var newGuy = new Context(); // act strat.Context = newGuy; // assert strat.Context.Should().BeSameAs(newGuy); strat.ArgsMutator.Context.Should().BeSameAs(newGuy); strat.ChainIdentificationStrategy.Context.Should().BeSameAs(newGuy); strat.ConsumerSelectionStrategy.Context.Should().BeSameAs(newGuy); strat.ConsumptionRequestFactory.Context.Should().BeSameAs(newGuy); strat.IterationInfoFactory.Context.Should().BeSameAs(newGuy); strat.ParseResultFactory.Context.Should().BeSameAs(newGuy); strat.PotentialConsumerStrategy.Context.Should().BeSameAs(newGuy); }
public void Not_Throw_If_No_Factory_Function_Set() { // arrange var builder = new ContextBuilder() .AddParser("root") .Finish; var strat = new ParseStrategy(builder.Context); IParseResult res = null; Action mightThrow = () => res = strat.Parse("-h".Split(' ')); // act // assert mightThrow.Should().NotThrow(); var isParsed = false; res.WhenError(exceptions => { isParsed = true; exceptions.Single().Should().BeOfType <NoFactoryFunctionException>(); }); isParsed.Should().BeTrue(); }
/// <summary> /// Sets the parse strategy. /// </summary> /// <param name="parseStrategy">The parse strategy.</param> public void SetParseStrategy(ParseStrategy parseStrategy) { this._parseStrategy = parseStrategy; }
public DependentSatisfier(ParseStrategy strategy) { this.strategy = strategy; }
public void ParseFile_GivenFilePath_UTF8Encoding_AndReplaceCapitalParseMode() { string filePath = "test.txt"; StreamWriter sw = new StreamWriter(File.Create(filePath)); foreach (string s in testStrings) { sw.WriteLine(s); } sw.Close(); FileParserFactory fileParserBuilder = new FileParserFactory(filePath, Encoding.UTF8, ParseStrategy.ReplaceCapitalLetters()); IFileParser fileParser = fileParserBuilder.Create(); StreamReader sr = fileParser.ParseFile(); int i = 0; while (!sr.EndOfStream) { Assert.IsTrue(sr.ReadLine() == lowercaseResultStrings[i]); i++; } sr.Close(); }
public Parser(ParseStrategy strategy) { this.ps = strategy; }