Files
monorepo/LCU.API.Internal.FileOperations/LCU.Api.Internal.FileOperationsTests/Shared/RegexNameHandlerTest.cs
T
2026-04-27 10:50:07 -05:00

90 lines
2.7 KiB
C#

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<RegexSetting>();
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<RegexSetting>();
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);
}
}
}