예제 #1
0
        public void TestGame_QuizMasterSelectsInvalidGame_ThrowsException()
        {
            // arrange
            var actorId = Users.First(u => u.UserName == "Quiz master 1").Id;
            var command = new SelectGameCommand {
                GameId = Guid.Empty.ToShortGuidString(), ActorId = actorId
            };

            // act & assert
            var exception = Assert.ThrowsExceptionAsync <DomainException>(() => Mediator.Send(command)).Result;

            Assert.AreEqual(ResultCode.InvalidEntityId, exception.ResultCode);
            Assert.AreEqual("Invalid GameId.", exception.Message);
            Assert.IsTrue(exception.IsBadRequest);
        }
예제 #2
0
        public void TestGame_UnauthorizedQuizMasterSelectsGame_ThrowsException()
        {
            // arrange
            var actorId = Users.First(u => u.UserName == "Quiz master 2").Id;
            var command = new SelectGameCommand {
                GameId = Game.Id, ActorId = actorId
            };

            // act & assert
            var exception = Assert.ThrowsExceptionAsync <DomainException>(() => Mediator.Send(command)).Result;

            Assert.AreEqual(ResultCode.QuizMasterUnauthorizedForGame, exception.ResultCode);
            Assert.AreEqual($"Actor with id {actorId} is not authorized for game '{Game.Id}'", exception.Message);
            Assert.IsTrue(exception.IsBadRequest);
        }
예제 #3
0
        public void TestGame_QuizMasterSelectsValidGame_ReturnsUser()
        {
            // arrange
            var actorId           = Users.First(u => u.UserName == "Quiz master 1").Id;
            var selectGameCommand = new SelectGameCommand {
                GameId = Game.Id, ActorId = actorId
            };

            // act
            Mediator.Send(selectGameCommand).Wait();

            // assert
            var updatedUser = UnitOfWork.GetCollection <User>().GetAsync(actorId).Result;

            Assert.IsNotNull(updatedUser);
            Assert.AreEqual(Game.Id, updatedUser.CurrentGameId);
        }
예제 #4
0
        public GameDto(string title)
        {
            Title = title;

            SelectGameCommand = new SelectGameCommand(this);
        }