using LCU.Library.Internal.FileOperationsModels.Models.NameSettings; using LCU.Library.Internal.FileOperationsModels.Shared; using System.Collections.Generic; using Xunit; namespace LCU.Api.Internal.FileOperationsTests.Shared { public class RegexNameHandlerTest { [Fact] public void BuildFileList_NoRegex_Return_SingleFileName() { // arrange var name = "testfile.txt"; var path = "\\TEST"; var settings = new DynamicNameSetting(); // act var result = RegexNameHandler.BuildFileList(path, name, settings); // assert Assert.Single(result); } [Fact] public void BuildRegexName_Return_FileName_OneRegex_Replaced() { // arrange var name = "testfile_{Regex01}.txt"; var settings = new DynamicNameSetting(); settings.RegexSettings = new List(); var regexTest = new RegexSetting() { Tag = "{Regex01}", Regex = "\\d*" }; settings.RegexSettings.Add(regexTest); // act var result = RegexNameHandler.BuildRegexName(name, settings); // assert Assert.Equal("testfile_\\d*.txt", result.ToString()); } [Fact] public void BuildRegexName_Return_FileName_TwoRegex_Replaced() { // arrange var name = "testfile_{Regex01}_Test_{Regex02}.txt"; var settings = new DynamicNameSetting(); settings.RegexSettings = new List(); var regexTest1 = new RegexSetting() { Tag = "{Regex01}", Regex = "\\d*" }; settings.RegexSettings.Add(regexTest1); var regexTest2 = new RegexSetting() { Tag = "{Regex02}", Regex = "\\w*" }; settings.RegexSettings.Add(regexTest2); // act var result = RegexNameHandler.BuildRegexName(name, settings); // assert Assert.Equal("testfile_\\d*_Test_\\w*.txt", result.ToString()); } [Fact] public void ReplaceTagWithRegex_Return_FileName_OneRegex_Replaced() { // arrange var name = "testfile_{Regex01}.txt"; var tag = "{Regex01}"; var regex = "\\d*"; // act var result = RegexNameHandler.ReplaceTagWithRegex(name, tag, regex); // assert Assert.Equal("testfile_\\d*.txt", result); } } }