예제 #1
0
        public void AddPending_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.AddPending(member, null));
        }
예제 #2
0
        public void AddPending_ShouldAddWorkoutToMemberPendingWorkouts()
        {
            var membersRepoMock = new Mock <IEfRepostory <Member> >();
            var unitOfWorkStub  = new Mock <IUnitOfWork>();
            var sut             = new MemberService(membersRepoMock.Object, unitOfWorkStub.Object);

            var pendingWorkout = new PendingWorkout();
            var member         = new Member();

            sut.AddPending(member, pendingWorkout);

            Assert.AreEqual(1, member.PendingWorkouts.Count);
            Assert.AreSame(pendingWorkout, member.PendingWorkouts.First());
        }
예제 #3
0
        public void AddPending_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 pendingWorkout = new PendingWorkout();
            var member         = new Member();

            sut.AddPending(member, pendingWorkout);

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