public void GenerateList_WithRandomSort_ReturnsRandomList() { DateTime startTime = new DateTime( DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.Day + 1, 12, 0, 0); List <Victim> inputVictims = new List <Victim>(); inputVictims.Add(new Victim("Aaron Jones", "*****@*****.**", "R&D")); inputVictims.Add(new Victim("John Doe", "*****@*****.**", "Sales")); inputVictims.Add(new Victim("John Meyers", "*****@*****.**", "Sales")); GenerateOptions options = new GenerateOptions(); options.Randomize = true; options.MinutesBetweenScheduledEmails = 5; options.StartAtDateTime = startTime; options.MinimumHour = 8; options.MinimumMinute = 30; options.MaximumHour = 18; options.MaximumMinute = 0; GenerateVictims sut = new GenerateVictims(); List <GeneratedVictim> actual = sut.GenerateVictimList(inputVictims, options); Assert.NotEmpty(actual); Assert.Equal(inputVictims.Count, actual.Count); }
public void GenerateList_WithoutRandomSort_CreatesSendOutTimesAfterMinimumHour() { DateTime startTime = new DateTime( DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.Day + 1, 3, 0, 0); List <Victim> inputVictims = new List <Victim>(); inputVictims.Add(new Victim("John Meyers", "*****@*****.**", "Sales")); inputVictims.Add(new Victim("John Doe", "*****@*****.**", "Sales")); inputVictims.Add(new Victim("Aaron Jones", "*****@*****.**", "R&D")); GenerateOptions options = new GenerateOptions(); options.Randomize = false; options.MinutesBetweenScheduledEmails = 5; options.StartAtDateTime = startTime; options.MinimumHour = 8; options.MinimumMinute = 30; options.MaximumHour = 18; options.MaximumMinute = 0; GenerateVictims sut = new GenerateVictims(); List <GeneratedVictim> actual = sut.GenerateVictimList(inputVictims, options); Assert.NotEmpty(actual); Assert.Equal(inputVictims.Count, actual.Count); Assert.Equal("R&D", actual[0].Dept); Assert.Equal("Sales", actual[1].Dept); Assert.Equal("Sales", actual[2].Dept); Assert.Equal("Aaron Jones", actual[0].Name); Assert.Equal("John Doe", actual[1].Name); Assert.Equal("John Meyers", actual[2].Name); Assert.Equal("*****@*****.**", actual[0].Email); Assert.Equal("*****@*****.**", actual[1].Email); Assert.Equal("*****@*****.**", actual[2].Email); Assert.Equal(new DateTime(DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.Day + 1, 8, 30, 0), actual[0].SendOutTime); Assert.Equal(new DateTime(DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.Day + 1, 8, 35, 0), actual[1].SendOutTime); Assert.Equal(new DateTime(DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.Day + 1, 8, 40, 0), actual[2].SendOutTime); }
private static void GenerateVictims() { ReadJson readJson = new ReadJson(new VictimInfoProvider()); List <Lib.Models.Victim> victims = readJson.GetVictims(); GenerateVictims generateVictims = new GenerateVictims(); DateTime startAtDateTime = new DateTime(DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.AddDays(1).Day, 12, 0, 0); GenerateOptions options = new GenerateOptions( true, 5, startAtDateTime, 8, 30, 18, 0); List <Lib.Models.GeneratedVictim> generatedVictims = generateVictims.GenerateVictimList(victims, options); foreach (Lib.Models.GeneratedVictim generatedVictim in generatedVictims) { Console.WriteLine($"{generatedVictim.Name},{generatedVictim.Email},{generatedVictim.Dept},{generatedVictim.SendOutTime}"); } }