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);
        }
示例#3
0
        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}");
            }
        }