예제 #1
0
        public void AddWorkout_ShouldThrowWhenInvalidWorkoutIsPassed()
        {
            var membersRepoMock = new Mock <IEfRepostory <Member> >();
            var unitOfWorkStub  = new Mock <IUnitOfWork>();
            var sut             = new MemberService(membersRepoMock.Object, unitOfWorkStub.Object);

            var member = new Member();

            Assert.Throws <ArgumentException>(() => sut.AddWorkout(member, null));
        }
예제 #2
0
        public void AddWorkout_ShouldAddWorkoutToMemberWorkouts()
        {
            var membersRepoMock = new Mock <IEfRepostory <Member> >();
            var unitOfWorkStub  = new Mock <IUnitOfWork>();
            var sut             = new MemberService(membersRepoMock.Object, unitOfWorkStub.Object);

            var workout = new Workout();
            var member  = new Member();

            sut.AddWorkout(member, workout);

            Assert.AreEqual(1, member.Workouts.Count);
            Assert.AreSame(workout, member.Workouts.First());
        }
예제 #3
0
        public void AddWorkout_ShouldCallUnitOfWorkCommitOnce()
        {
            var membersRepoMock = new Mock <IEfRepostory <Member> >();
            var unitOfWorkStub  = new Mock <IUnitOfWork>();
            var sut             = new MemberService(membersRepoMock.Object, unitOfWorkStub.Object);

            membersRepoMock.Setup(x => x.Update(It.IsAny <Member>()));
            unitOfWorkStub.Setup(x => x.Commit());

            var workout = new Workout();
            var member  = new Member();

            sut.AddWorkout(member, workout);

            unitOfWorkStub.Verify(x => x.Commit(), Times.Once);
        }