Example #1
0
        public void CreateQuestionUpdater_ReturnsCorrectType(
            Type questionType,
            Type expectedUpdaterType)
        {
            var questionUpdaterFactory = new QuestionUpdaterFactory
                                         (
                dbContext: null,
                questionGenerator: null,
                timeProvider: null
                                         );

            var result = questionUpdaterFactory.CreateQuestionUpdater
                         (
                (Question)Activator.CreateInstance(questionType),
                errors: null
                         );

            Assert.Equal(expectedUpdaterType, result.GetType());
        }
		/// <summary>
		/// Constructor.
		/// </summary>
		public QuestionService(
			DatabaseContext dbContext, 
			QuestionLoaderFactory questionLoaderFactory, 
			QuestionUpdaterFactory questionUpdaterFactory,
			QuestionGraderFactory questionGraderFactory,
			QuestionDuplicatorFactory questionDuplicatorFactory,
			IQuestionGenerator questionGenerator,
			IJsonSerializer jsonSerializer,
			IRandomNumberProvider randomNumberProvider,
			ITimeProvider timeProvider)
		{
			_dbContext = dbContext;
			_questionLoaderFactory = questionLoaderFactory;
			_questionUpdaterFactory = questionUpdaterFactory;
			_questionGraderFactory = questionGraderFactory;
			_questionDuplicatorFactory = questionDuplicatorFactory;
			_questionGenerator = questionGenerator;
			_jsonSerializer = jsonSerializer;
			_randomNumberProvider = randomNumberProvider;
			_timeProvider = timeProvider;
		}
		/// <summary>
		/// Creates a question service.
		/// </summary>
		private QuestionService CreateQuestionService(
			DatabaseContext dbContext,
			QuestionLoaderFactory questionLoaderFactory = null,
			QuestionUpdaterFactory questionUpdaterFactory = null,
			QuestionGraderFactory questionGraderFactory = null,
			QuestionDuplicatorFactory questionDuplicatorFactory = null,
			IQuestionGenerator questionGenerator = null,
			IJsonSerializer jsonSerializer = null,
			IRandomNumberProvider randomNumberProvider = null,
			ITimeProvider timeProvider = null)
		{
			return new QuestionService
			(
				dbContext,
				questionLoaderFactory,
				questionUpdaterFactory,
				questionGraderFactory,
				questionDuplicatorFactory,
				questionGenerator,
				jsonSerializer,
				randomNumberProvider,
				timeProvider
			);
		}