public void GetAllDescending_ShouldReturnTwoWeekSchedulesInCorrectOrder() { var weekScheduleStub = new Mock <IEfRepostory <WeekSchedule> >(); var unitOfWorkStub = new Mock <IUnitOfWork>(); var datetimeProviderStub = new Mock <IDatetimeProvider>(); var list = new List <WeekSchedule>(); var weekScheduleOne = new WeekSchedule { WeekStart = new DateTime(2017, 10, 10) }; var weekScheduleTwo = new WeekSchedule { WeekStart = new DateTime(2017, 11, 11) }; list.Add(weekScheduleOne); list.Add(weekScheduleTwo); var dbSetStub = list.AsQueryable(); var sut = new WeekScheduleService(weekScheduleStub.Object, unitOfWorkStub.Object, datetimeProviderStub.Object); weekScheduleStub.Setup(x => x.All).Returns(dbSetStub); var result = sut.GetAllDescending(); Assert.AreEqual(2, result.Count); Assert.AreSame(weekScheduleTwo, result.First()); }
public void Constructor_ShouldCreateCorrectInstanceOfTheSerivce() { var weekScheduleStub = new Mock <IEfRepostory <WeekSchedule> >(); var unitOfWorkStub = new Mock <IUnitOfWork>(); var datetimeProviderStub = new Mock <IDatetimeProvider>(); var sut = new WeekScheduleService(weekScheduleStub.Object, unitOfWorkStub.Object, datetimeProviderStub.Object); Assert.IsInstanceOf <WeekScheduleService>(sut); }
public void AddDailiesToSchedule_ShouldThrowwhenInvalidScheduleIsPassed() { var weekScheduleStub = new Mock <IEfRepostory <WeekSchedule> >(); var unitOfWorkStub = new Mock <IUnitOfWork>(); var datetimeProviderStub = new Mock <IDatetimeProvider>(); var sut = new WeekScheduleService(weekScheduleStub.Object, unitOfWorkStub.Object, datetimeProviderStub.Object); Assert.Throws <ArgumentException>(() => sut.AddDailiesToSchedule(null)); }
public void AddWeekSchedule_ShouldThrowWhenInvalidWeekScheduleIsPassed() { var weekScheduleStub = new Mock <IEfRepostory <WeekSchedule> >(); var unitOfWorkStub = new Mock <IUnitOfWork>(); var datetimeProviderStub = new Mock <IDatetimeProvider>(); var sut = new WeekScheduleService(weekScheduleStub.Object, unitOfWorkStub.Object, datetimeProviderStub.Object); weekScheduleStub.Setup(x => x.Add(It.IsAny <WeekSchedule>())); unitOfWorkStub.Setup(x => x.Commit()); Assert.Throws <ArgumentException>(() => sut.AddWeekSchedule(null)); }
public void GetAll_ShouldReturnAnICollectionOfWeekSchedules() { var weekScheduleStub = new Mock <IEfRepostory <WeekSchedule> >(); var unitOfWorkStub = new Mock <IUnitOfWork>(); var datetimeProviderStub = new Mock <IDatetimeProvider>(); var dbSetStub = new Mock <IList <WeekSchedule> >().As <IQueryable <WeekSchedule> >(); var sut = new WeekScheduleService(weekScheduleStub.Object, unitOfWorkStub.Object, datetimeProviderStub.Object); weekScheduleStub.Setup(x => x.All).Returns(dbSetStub.Object); var result = sut.GetAll(); Assert.IsInstanceOf(typeof(ICollection <WeekSchedule>), result); }
public void GetAll_ShouldCallWeekScheduleRepoAllPropertyOnce() { var weekScheduleStub = new Mock <IEfRepostory <WeekSchedule> >(); var unitOfWorkStub = new Mock <IUnitOfWork>(); var datetimeProviderStub = new Mock <IDatetimeProvider>(); var dbSetStub = new List <WeekSchedule>().AsQueryable(); var sut = new WeekScheduleService(weekScheduleStub.Object, unitOfWorkStub.Object, datetimeProviderStub.Object); weekScheduleStub.Setup(x => x.All).Returns(dbSetStub); var result = sut.GetAll(); weekScheduleStub.Verify(x => x.All, Times.Once); }
public void AddDailiesToSchedule_ShouldNotAddAnythingWhenNoWorkoutsAreProvided() { var weekScheduleStub = new Mock <IEfRepostory <WeekSchedule> >(); var unitOfWorkStub = new Mock <IUnitOfWork>(); var datetimeProviderStub = new Mock <IDatetimeProvider>(); var sut = new WeekScheduleService(weekScheduleStub.Object, unitOfWorkStub.Object, datetimeProviderStub.Object); var schedule = new WeekSchedule(); weekScheduleStub.Setup(x => x.Update(It.IsAny <WeekSchedule>())); unitOfWorkStub.Setup(x => x.Commit()); sut.AddDailiesToSchedule(schedule); Assert.AreEqual(0, schedule.DailyWorkouts.Count); }
public void AddWeekSchedule_ShouldCallUnitOfWorkCommitOnce() { var weekScheduleStub = new Mock <IEfRepostory <WeekSchedule> >(); var unitOfWorkStub = new Mock <IUnitOfWork>(); var datetimeProviderStub = new Mock <IDatetimeProvider>(); var sut = new WeekScheduleService(weekScheduleStub.Object, unitOfWorkStub.Object, datetimeProviderStub.Object); weekScheduleStub.Setup(x => x.Update(It.IsAny <WeekSchedule>())); unitOfWorkStub.Setup(x => x.Commit()); var weekSchedule = new WeekSchedule(); sut.AddWeekSchedule(weekSchedule); unitOfWorkStub.Verify(x => x.Commit(), Times.Once); }
public void AddDailiesToSchedule_ShouldCallCommitOnTheUnitOfWork() { var weekScheduleStub = new Mock <IEfRepostory <WeekSchedule> >(); var unitOfWorkStub = new Mock <IUnitOfWork>(); var datetimeProviderStub = new Mock <IDatetimeProvider>(); var sut = new WeekScheduleService(weekScheduleStub.Object, unitOfWorkStub.Object, datetimeProviderStub.Object); var schedule = new WeekSchedule(); var workoutOne = new DailyWorkout(); var workoutTwo = new DailyWorkout(); weekScheduleStub.Setup(x => x.Update(It.IsAny <WeekSchedule>())); unitOfWorkStub.Setup(x => x.Commit()); sut.AddDailiesToSchedule(schedule, workoutOne, workoutTwo); unitOfWorkStub.Verify(x => x.Commit(), Times.Once); }
public void GetById_ShouldReturnCorrectEntryWhenIdMatchesThePasedId() { var weekScheduleStub = new Mock <IEfRepostory <WeekSchedule> >(); var unitOfWorkStub = new Mock <IUnitOfWork>(); var datetimeProviderStub = new Mock <IDatetimeProvider>(); var list = new List <WeekSchedule>(); var weekSchedule = new WeekSchedule(); list.Add(weekSchedule); var dbSetStub = list.AsQueryable(); var sut = new WeekScheduleService(weekScheduleStub.Object, unitOfWorkStub.Object, datetimeProviderStub.Object); weekScheduleStub.Setup(x => x.All).Returns(dbSetStub); var result = sut.GetById(weekSchedule.Id); Assert.IsNotNull(result); Assert.IsInstanceOf <WeekSchedule>(result); Assert.AreSame(result, weekSchedule); }
public void GetById_ShouldReturnNullWhenNoEntryMatchesTheId() { var weekScheduleStub = new Mock <IEfRepostory <WeekSchedule> >(); var unitOfWorkStub = new Mock <IUnitOfWork>(); var datetimeProviderStub = new Mock <IDatetimeProvider>(); var list = new List <WeekSchedule>(); var weekSchedule = new WeekSchedule(); list.Add(weekSchedule); var dbSetStub = list.AsQueryable(); var sut = new WeekScheduleService(weekScheduleStub.Object, unitOfWorkStub.Object, datetimeProviderStub.Object); weekScheduleStub.Setup(x => x.All).Returns(dbSetStub); var newId = new Guid(); var result = sut.GetById(newId); Assert.IsNull(result); }
public void GetCurrentSchedule_ShouldReturnCorrectSchedule() { var weekScheduleStub = new Mock <IEfRepostory <WeekSchedule> >(); var unitOfWorkStub = new Mock <IUnitOfWork>(); var datetimeProviderStub = new Mock <IDatetimeProvider>(); var today = new DateTime(2017, 10, 5); var list = new List <WeekSchedule>(); var weekScheduleOne = new WeekSchedule { WeekStart = new DateTime(2017, 10, 2), WeekEnd = new DateTime(2017, 10, 8) }; var weekScheduleTwo = new WeekSchedule { WeekStart = new DateTime(2017, 10, 9), WeekEnd = new DateTime(2017, 10, 15) }; list.Add(weekScheduleOne); list.Add(weekScheduleTwo); var dbSetStub = list.AsQueryable(); var sut = new WeekScheduleService(weekScheduleStub.Object, unitOfWorkStub.Object, datetimeProviderStub.Object); weekScheduleStub.Setup(x => x.All).Returns(dbSetStub); datetimeProviderStub.Setup(x => x.GetToday()).Returns(today); var result = sut.GetCurrentSchedule(); Assert.AreSame(weekScheduleOne, result); }