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))); }