コード例 #1
0
        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());
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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));
        }
コード例 #4
0
        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));
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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);
        }
コード例 #7
0
        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);
        }
コード例 #8
0
        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);
        }
コード例 #9
0
        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);
        }
コード例 #10
0
        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);
        }
コード例 #11
0
        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);
        }
コード例 #12
0
        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);
        }