コード例 #1
0
        public void InitHandler()   //初试化Handler
        {
            CreateGameHandler createGameHandler = new CreateGameHandler();

            handlerDictionary.Add(createGameHandler.opCode, createGameHandler);
            JoinGameHandler joinGameHandler = new JoinGameHandler();

            handlerDictionary.Add(joinGameHandler.opCode, joinGameHandler);
            TeamChooseHandler teamChooseHandler = new TeamChooseHandler();

            handlerDictionary.Add(teamChooseHandler.opCode, teamChooseHandler);
            SyncTransformHandler syncTransformHandler = new SyncTransformHandler();

            handlerDictionary.Add(syncTransformHandler.opCode, syncTransformHandler);
            DamageHandler damageHandler = new DamageHandler();

            handlerDictionary.Add(damageHandler.opCode, damageHandler);
            SyncDropWeaponHandler syncDropWeaponHandler = new SyncDropWeaponHandler();

            handlerDictionary.Add(syncDropWeaponHandler.opCode, syncDropWeaponHandler);
            DeleteDropWeaponHandler deleteDropWeaponHandler = new DeleteDropWeaponHandler();

            handlerDictionary.Add(deleteDropWeaponHandler.opCode, deleteDropWeaponHandler);
            RestartHandler restartHandler = new RestartHandler();

            handlerDictionary.Add(restartHandler.opCode, restartHandler);
        }
コード例 #2
0
        public async Task When_creating_a_new_game_with_a_name_valid_then_a_new_game_should_be_created()
        {
            var gamesRepository   = Substitute.For <IGamesRepository>();
            var createGameHandler = new CreateGameHandler(gamesRepository, Substitute.For <IUnitOfWork>());

            var result = await createGameHandler.Handle(new CreateGame("Name"), default);

            await gamesRepository.ReceivedWithAnyArgs(1).AnyAsync(default, default);
コード例 #3
0
        public void When_creating_a_game_with_existing_name_then_an_application_exception_should_be_thrown()
        {
            var gamesRepository = Substitute.For <IGamesRepository>();

            gamesRepository.AnyAsync(Arg.Any <Expression <Func <Game, bool> > >(), default).Returns(Task.FromResult(true));

            var createGameHandler = new CreateGameHandler(gamesRepository, Substitute.For <IUnitOfWork>());

            Func <Task <Unit> > action = async() => await createGameHandler.Handle(new CreateGame("Name"), default);

            action.Should().Throw <ApplicationException>().WithMessage(Messages.NameMustUnique);
        }
コード例 #4
0
        public void CannotExecute_AlreadyExists()
        {
            //arrange
            var gameRecord = new GameRecord
            {
                Id = Guid.NewGuid(),
            };

            var repoMock = new Mock<IRepository>();
            repoMock.Setup(x => x.Query<GameRecord>()).Returns(new[] { gameRecord }.AsQueryable());

            var command = new CreateGame(gameRecord.Id);
            var handler = new CreateGameHandler(repoMock.Object);

            //act
            handler.Execute(command);

            //assert
            Assert.Fail();
        }
コード例 #5
0
        public void CanExecute()
        {
            //arrange
            var repoMock = new Mock<IRepository>();
            repoMock.Setup(x => x.Query<GameRecord>()).Returns(new GameRecord[0].AsQueryable());
            repoMock.Setup(x => x.Add(It.IsAny<GameRecord>())).Callback((object x) =>
            {
                var addItem = x as GameRecord;

                Assert.IsNotNull(addItem);
                Assert.AreEqual(9 * 9, addItem.Moves.Count());
            });

            var command = new CreateGame(Guid.NewGuid());
            var handler = new CreateGameHandler(repoMock.Object);

            //act
            handler.Execute(command);

            //assert
            repoMock.VerifyAll();
        }