using LCU.Library.Internal.FileOperationsModels.Models.NameSettings; using LCU.Library.Internal.FileOperationsModels.Shared; using System; using System.Collections.Generic; using Xunit; namespace LCU.Api.Internal.FileOperationsTests.Shared { public class DynamicNameBuilderTest { public DynamicNameBuilderTest() { } [Fact] public void EmptyFileNameSettings_Return_FileName() { // arrange var name = "testfile.txt"; var settings = new DynamicNameSetting(); // act var result = DynamicNameBuilder.BuildDynamicName(name, settings); // assert Assert.Equal(name, result); } [Fact] public void NullFileNameSettings_Return_FileName() { // arrange var name = "testfile.txt"; DynamicNameSetting settings = null; // act var result = DynamicNameBuilder.BuildDynamicName(name, settings); // assert Assert.Equal(name, result); } [Fact] public void Return_FileName_dd_MM() { // arrange var name = "testfile_{TestDate}.txt"; var settings = new DynamicNameSetting(); var dateFormatSetting = new DateFormatSetting(); dateFormatSetting.Tag = "{TestDate}"; dateFormatSetting.DateFormat = "dd_MM"; settings.DateFormatSettings = new List(); settings.DateFormatSettings.Add(dateFormatSetting); // act var result = DynamicNameBuilder.BuildDynamicName(name, settings); // assert Assert.Equal($"testfile_{DateTime.Now:dd_MM}.txt", result); } [Fact] public void Minus_One_Day_Return_FileName_dd_MM() { // arrange var name = "testfile_{TestDate}.txt"; var settings = new DynamicNameSetting(); settings.DaysFromToday = -1; var dateFormatSetting = new DateFormatSetting(); dateFormatSetting.Tag = "{TestDate}"; dateFormatSetting.DateFormat = "dd_MM"; settings.DateFormatSettings = new List(); settings.DateFormatSettings.Add(dateFormatSetting); // act var result = DynamicNameBuilder.BuildDynamicName(name, settings); // assert Assert.Equal($"testfile_{DateTime.Now.AddDays(-1):dd_MM}.txt", result); } [Fact] public void Multiple_Formats_sepratedby_dashs_Return_FileName_dd_MM_yyyy() { // arrange var name = "testfile_{TestDate}-{TestDate2}-{TestDate3}.txt"; var settings = new DynamicNameSetting(); settings.DateFormatSettings = new List(); var dateFormatSetting1 = new DateFormatSetting(); dateFormatSetting1.Tag = "{TestDate}"; dateFormatSetting1.DateFormat = "dd"; settings.DateFormatSettings.Add(dateFormatSetting1); var dateFormatSetting2 = new DateFormatSetting(); dateFormatSetting2.Tag = "{TestDate2}"; dateFormatSetting2.DateFormat = "MM"; settings.DateFormatSettings.Add(dateFormatSetting2); var dateFormatSetting3 = new DateFormatSetting(); dateFormatSetting3.Tag = "{TestDate3}"; dateFormatSetting3.DateFormat = "yyyy"; settings.DateFormatSettings.Add(dateFormatSetting3); // act var result = DynamicNameBuilder.BuildDynamicName(name, settings); // assert Assert.Equal($"testfile_{DateTime.Now:dd}-{DateTime.Now:MM}-{DateTime.Now:yyyy}.txt", result); } [Fact] public void Multiple_Formats_nosepration_Return_FileName_ddMMyyyy() { // arrange var fileName = "testfile_{TestDate}{TestDate2}{TestDate3}.txt"; var settings = new DynamicNameSetting(); settings.DateFormatSettings = new List(); var dateFormatSetting1 = new DateFormatSetting(); dateFormatSetting1.Tag = "{TestDate}"; dateFormatSetting1.DateFormat = "dd"; settings.DateFormatSettings.Add(dateFormatSetting1); var dateFormatSetting2 = new DateFormatSetting(); dateFormatSetting2.Tag = "{TestDate2}"; dateFormatSetting2.DateFormat = "MM"; settings.DateFormatSettings.Add(dateFormatSetting2); var dateFormatSetting3 = new DateFormatSetting(); dateFormatSetting3.Tag = "{TestDate3}"; dateFormatSetting3.DateFormat = "yyyy"; settings.DateFormatSettings.Add(dateFormatSetting3); // act var result = DynamicNameBuilder.BuildDynamicName(fileName, settings); // assert Assert.Equal($"testfile_{DateTime.Now:dd}{DateTime.Now:MM}{DateTime.Now:yyyy}.txt", result); } } }