public async Task Start(int id) { var quizModel = QuizModelFactory.Create(id); var quiz = new QuizAggregate(); quiz.Start(quizModel); await _quizRepository.Save(quiz); }
public async Task <object> Start() { var quizModel = QuizModelFactory.Create(); var quiz = new QuizAggregate(); quiz.Start(quizModel); await _quizRepository.Save(quiz); return(new { QuizId = quiz.Id, Questions = quiz.QuizModel.Questions }); }
public void Given_A_Quiz_When_Starting_Then_QuizStartedEvent_Raised() { // Arrange var quiz = new QuizAggregate(); var quizModel = QuizModelFactory.Create(1); // Act quiz.Start(quizModel); // Assert var startEvent = quiz.GetPendingEvents().FirstOrDefault(); Assert.NotNull(startEvent); Assert.IsAssignableFrom(typeof(QuizStartedEvent), startEvent); }
public void Given_An_Started_Quiz_When_Voting_For_WrongAnswer_Then_QuestionWrongAnsweredEvent_Raised() { // Arrange var quiz = new QuizAggregate(); var quizModel = QuizModelFactory.Create(1); var selectedQuestion = quizModel.Questions.FirstOrDefault(); var selectedOption = selectedQuestion.Options.FirstOrDefault(x => !x.IsCorrect); // Act quiz.Start(quizModel); quiz.Vote(selectedQuestion.Id, selectedOption.Id); // Assert var startedEvent = quiz.GetPendingEvents().FirstOrDefault(); var answeredEvent = quiz.GetPendingEvents().LastOrDefault(); Assert.NotNull(startedEvent); Assert.IsAssignableFrom(typeof(QuizStartedEvent), startedEvent); Assert.NotNull(answeredEvent); Assert.IsAssignableFrom(typeof(QuestionWrongAnsweredEvent), answeredEvent); }
public QuizModel Get(int id) => QuizModelFactory.Create(id);