Beispiel #1
0
        public void PassTheCorrectMeetingLengthHoursToTheStrategy()
        {
            var container = new ServiceCollection();

            var strategy = new Mock <ICateringStrategy>();

            container.AddSingleton <ICateringStrategy>(strategy.Object);

            var repo     = new Mock <IMeetingRepository>();
            var meeting  = new MeetingBuilder().Random().NumberOfDays(1).Build();
            var meetings = new Meeting[] { meeting };

            repo.Setup(r => r.GetMeetings(It.IsAny <DateTime>(), It.IsAny <DateTime>())).Returns(meetings);
            container.AddSingleton <IMeetingRepository>(repo.Object);

            var target = new Catering.Business.Engine(container.BuildServiceProvider());

            target.CreateData(DateTime.MinValue, DateTime.MaxValue);

            var expected = meeting.LengthHours;

            strategy.Verify(s => s.ShouldMeetingBeCatered(
                                It.IsAny <DateTime>(),
                                It.Is <float>(p => p == expected)
                                ), Times.Once);
        }
 public static MeetingBuilder Random(this MeetingBuilder builder)
 {
     return(builder.NumberOfDays(5.GetRandom(1))
            .StartDate(DateTime.Now.AddDays(255.GetRandom()))
            .LengthHours(6.GetRandom(2))
            .Location(string.Empty.GetRandom())
            .StartHour(20.GetRandom(10)));
 }