Exemple #1
0
        private void InitMeasurementsSchedule(MainViewModel model)
        {
            var randGen      = new Random();
            var orderManager = new MeasurementOrderManager();
            var builder      = new TwoHoursMeasurementScheduleListBuilder();
            var scheduleList = builder
                               .WithTownList(model.TownList.Select(m => m.Model))
                               .WithTotalDays(randGen.Next(1, 10))
                               .WithOrderManager(orderManager)
                               .WithDateStartPoint(DateTime.Now)
                               .EachIntervalMeasurmentsCount(() => { return(randGen.Next(0, 5)); })
                               .TimeIntervalsCount(() => { return(randGen.Next(0, 4)); })
                               .Build();

            scheduleList.ForEach(
                s =>
            {
                model.MeasurementScheduleList.Add(new MeasurementScheduleViewModel(s));
            });
        }
        public void BuildingCorrectness()
        {
            var totalDays    = 5;
            var fakeTownList = new List <Town>()
            {
                new Town("1"),
                new Town("2"),
                new Town("3"),
            };
            var manager = new Mock <IMeasurementOrderManager>();
            var builder = new TwoHoursMeasurementScheduleListBuilder();
            var result  = builder.WithTownList(fakeTownList)
                          .WithTotalDays(totalDays)
                          .WithOrderManager(manager.Object)
                          .EachIntervalMeasurmentsCount(() => { return(2); })
                          .TimeIntervalsCount(() => { return(2); })
                          .Build();

            Assert.True(result.Count > 0);
            Assert.True(fakeTownList.All(t => result.Any(s => s.Town == t)));
            Assert.True(result.GroupBy(s => s.Date).Count() == totalDays);
        }