public void Process_ArgumentIsEmpty() { //Arrange var target = new TextSubstitutionEngine("<", ">"); target.Rules.Add(new SimpleTextSubstitutionRule("simple", "complex")); //Act var actual = target.Process(""); //Assert actual.Should().BeEmpty(); }
public void Process_ArgumentIsValid() { //Arrange var input = "Hello <Name>!"; var expected = "Hello Bob!"; var target = new TextSubstitutionEngine("<", ">"); target.Rules.Add(new SimpleTextSubstitutionRule("Name", "Bob")); //Act var actual = target.Process(input); //Assert actual.Should().Be(expected); }
public void Process_DelimiterUsingWrongCaseWithDefaultComparison() { //Arrange var input = "Begin <first> End"; var expected = "Begin one End"; var target = new TextSubstitutionEngine("<", ">"); target.Rules.Add(new SimpleTextSubstitutionRule("First", "one")); //Act var actual = target.Process(input); //Assert actual.Should().Be(expected); }
public void Process_UsingCustomComparison() { //Arrange var input = "Begin <first> End"; var expected = input; var target = new TextSubstitutionEngine("<", ">", StringComparison.CurrentCulture); target.Rules.Add(new SimpleTextSubstitutionRule("First", "one")); //Act var actual = target.Process(input); //Assert actual.Should().Be(expected); }
public void Process_TokenNotDefinedWithSpaces() { //Arrange var input = "Begin < third > End"; var expected = input; var target = new TextSubstitutionEngine("<", ">"); target.Rules.Add(new SimpleTextSubstitutionRule("first", "one")); //Act var actual = target.Process(input); //Assert actual.Should().Be(expected); }
public void Process_EmptyDelimiter() { //Arrange var input = "Begin <> End"; var expected = input; var target = new TextSubstitutionEngine("<", ">"); target.Rules.Add(new SimpleTextSubstitutionRule("first", "one")); //Act var actual = target.Process(input); //Assert actual.Should().Be(expected); }
public void Process_TokenAtStart() { //Arrange var input = "<first> End"; var expected = "one End"; var target = new TextSubstitutionEngine("<", ">"); target.Rules.Add(new SimpleTextSubstitutionRule("first", "one")); //Act var actual = target.Process(input); //Assert actual.Should().Be(expected); }
public void Process_ReplacementValueHasDelimiter() { //Arrange var input = "Begin <first> End"; var expected = "Begin <second> End"; var target = new TextSubstitutionEngine("<", ">"); target.Rules.Add(new SimpleTextSubstitutionRule("first", "<second>")); target.Rules.Add(new SimpleTextSubstitutionRule("second", "two")); //Act var actual = target.Process(input); //Assert actual.Should().Be(expected); }
public void Process_MultipleTokens() { //Arrange var input = "Begin <first> and <second> End"; var expected = "Begin one and two End"; var target = new TextSubstitutionEngine("<", ">"); target.Rules.Add(new SimpleTextSubstitutionRule("first", "one")); target.Rules.Add(new SimpleTextSubstitutionRule("second", "two")); //Act var actual = target.Process(input); //Assert actual.Should().Be(expected); }
private Task <string> BuildBranchNameAsync(MigratedProject project, string branch, CancellationToken cancellationToken) { return(Task.Run(() => { var engine = new TextSubstitutionEngine("{", "}"); engine.Rules.Add(new SimpleTextSubstitutionRule("major", project.Version?.Major.ToString() ?? "0")); engine.Rules.Add(new SimpleTextSubstitutionRule("minor", project.Version?.Minor.ToString() ?? "0")); engine.Rules.Add(new SimpleTextSubstitutionRule("build", project.Version?.Build.ToString() ?? "0")); engine.Rules.Add(new SimpleTextSubstitutionRule("revision", project.Version?.Revision.ToString() ?? "0")); engine.Rules.Add(new SimpleTextSubstitutionRule("version", project.Version?.ToString() ?? "0.0.0.0")); engine.Rules.Add(new SimpleTextSubstitutionRule("yyyy", DateTime.Now.ToString("yyyy"))); engine.Rules.Add(new SimpleTextSubstitutionRule("MM", DateTime.Now.ToString("MM"))); engine.Rules.Add(new SimpleTextSubstitutionRule("dd", DateTime.Now.ToString("dd"))); engine.Rules.Add(new SimpleTextSubstitutionRule("MMM", DateTime.Now.ToString("MMM"))); engine.Rules.Add(new SimpleTextSubstitutionRule("yy", DateTime.Now.ToString("yy"))); return engine.Process(branch); }, cancellationToken)); }
private async Task UpdateMetadataFileAsync(string metadataFile, MigratedProject project, CancellationToken cancellationToken) { Logger.Info($"Updating metadata file '{metadataFile}'"); //Open or create the file if (!File.Exists(metadataFile)) { Logger.Warning($"No metadata file found '{metadataFile}"); return; } ; await Task.Run(() => { var engine = new TextSubstitutionEngine("{", "}"); engine.Rules.Add(new ObjectTextSubstitutionRule <MigratedProject>(project)); engine.Rules.Add(new SimpleTextSubstitutionRule("Date", DateTime.Now.ToString())); engine.Rules.Add(new SimpleTextSubstitutionRule("TfsCollectionUrl", Host.Settings.SourceCollectionUrl)); var text = File.ReadAllText(metadataFile); text = engine.Process(text); File.WriteAllText(metadataFile, text); }, cancellationToken).ConfigureAwait(false); }