示例#1
0
        public async Task UpdateAllAsync_UpdatersInvoked()
        {
            var userQuestionDatas = Collections.CreateList
                                    (
                CreateUserQuestionData(0),
                CreateUserQuestionData(1),
                CreateUserQuestionData(2)
                                    );

            var impl1 = new MockUserQuestionDataUpdater();
            var impl2 = new MockUserQuestionDataUpdater();

            var mockImplFactory = new Mock <IUserQuestionDataUpdaterImplFactory>();

            SetupMockImplFactory(mockImplFactory, userQuestionDatas[0], impl1);
            SetupMockImplFactory(mockImplFactory, userQuestionDatas[1], impl1);
            SetupMockImplFactory(mockImplFactory, userQuestionDatas[2], impl2);

            var aggregateUpdater = new AggregateUserQuestionDataUpdater
                                   (
                mockImplFactory.Object
                                   );

            foreach (var uqd in userQuestionDatas)
            {
                aggregateUpdater.AddToBatch(uqd);
            }

            await aggregateUpdater.UpdateAllAsync();

            Assert.True(impl1.VerifyUpdates(Collections.CreateList(0, 1)));
            Assert.True(impl2.VerifyUpdates(Collections.CreateList(2)));
        }
示例#2
0
 /// <summary>
 /// Sets up the mock factory to return a given updater for a given
 /// UserQuestionData object.
 /// </summary>
 private static void SetupMockImplFactory(
     Mock <IUserQuestionDataUpdaterImplFactory> mockImplFactory,
     UserQuestionData userQuestionData,
     MockUserQuestionDataUpdater impl)
 {
     mockImplFactory
     .Setup
     (
         m => m.GetUserQuestionDataUpdater
         (
             userQuestionData.AssignmentQuestion.Question
         )
     ).Returns(impl);
 }