Esempio n. 1
0
    public LocalMatchController(Match match, UserInput userInput)
    {
        m_match     = match;
        m_inputCtrl = new InputController(userInput, 0);

        var initialData = new PlayersProvider();
        var players     = initialData.GetPlayers(match);

        m_match.SetPlayers(players);
    }
        public async Task SuccessfulLoadPlayers()
        {
            // Arange.
            var dbProvider = new Mock <IMongoDbProvider>();
            var defBuilder = new Mock <IMongoDbDefinitionBuilder>();
            var collection = new Mock <IMongoBsonCollection>();
            var db         = new Mock <IMongoDatabase>();
            var encryptor  = new Mock <IEncryptor>();

            dbProvider.Setup(d => d.GetDatabase(It.IsAny <string>())).Returns(db.Object);
            dbProvider.Setup(d => d.GetBsonDocumentCollection(It.IsAny <string>(), It.IsAny <string>()))
            .Returns(collection.Object);

            var bsonList = new List <BsonDocument>();
            var document = new BsonDocument
            {
                { "Id", 0 },
                { "PersonId", "SuperCoolPlayer" },
                { "Nickname", "vasya228" },
                { "Country", "Peedorusha" },
                { "Money", 228 },
                { "ScoreMax", 1488 },
                { "LastSessionDateTime", new DateTime(2015, 09, 23) },
                { "FirstSessionDateTime", new DateTime(2015, 04, 22) },
                { "SelectedSkin", 0 },
                { "UnlockedSkins", "[0,1,2,3]" },
                { "SelectedAbility", 0 },
                { "UnlockedAbilities", "[0,1,2,3]" }
            };

            bsonList.Add(document);

            collection.Setup(c => c.GetDocumentsListAsync()).ReturnsAsync(bsonList);

            var pp = new PlayersProvider(dbProvider.Object, defBuilder.Object, encryptor.Object);

            // Act.
            var playersList = await pp.LoadPlayers();

            // Assert.
            Assert.AreEqual(1, playersList.Count);
            Assert.AreEqual(document["Id"].AsInt32, playersList.First().Id);
            Assert.AreEqual(document["PersonId"].AsString, playersList.First().PersonId);
            Assert.AreEqual(document["Nickname"].AsString, playersList.First().Nickname);
            Assert.AreEqual(document["Country"].AsString, playersList.First().Country);
            Assert.AreEqual(document["Money"].AsInt32, playersList.First().Money);
            Assert.AreEqual(document["ScoreMax"].AsInt32, playersList.First().ScoreMax);
            Assert.AreEqual(document["LastSessionDateTime"].ToLocalTime(), playersList.First().LastSessionDateTime);
            Assert.AreEqual(document["FirstSessionDateTime"].ToLocalTime(), playersList.First().FirstSessionDateTime);
            Assert.AreEqual((short)document["SelectedSkin"].AsInt32, playersList.First().SelectedSkin);
            Assert.AreEqual((short)document["SelectedAbility"].AsInt32, playersList.First().SelectedAbility);
            Assert.AreEqual("0, 1, 2, 3", playersList.First().UnlockedAbilitiesString);
            Assert.AreEqual("0, 1, 2, 3", playersList.First().UnlockedSkinsString);
        }
    public ClientMatchController(Match match, UserInput userInput)
    {
        m_match      = match;
        m_inputCtrl  = new InputController(userInput, 0);
        m_gameClient = GameClientFactory.Create();

        var initialData = new PlayersProvider();
        var players     = initialData.GetPlayers(match);

        m_match.SetPlayers(players);
    }
Esempio n. 4
0
    public Match()
    {
        m_ball = BallProvider.GetBall();
        m_messageInterpreter = new MessageInterpreter();

        m_physics = new ssg.Physics.SoccerPhysics(m_ball);
        m_physics.AddCollider(((Ball)m_ball).Collider);

        var playersProvider = new PlayersProvider();
        var players         = playersProvider.GetPlayers(this);

        SetPlayers(players);
    }
        public async Task SuccessfulEditPlayer()
        {
            // Arange.
            var dbProvider = new Mock <IMongoDbProvider>();
            var defBuilder = new Mock <IMongoDbDefinitionBuilder>();
            var collection = new Mock <IMongoBsonCollection>();
            var db         = new Mock <IMongoDatabase>();
            var encryptor  = new Mock <IEncryptor>();

            dbProvider.Setup(d => d.GetDatabase(It.IsAny <string>())).Returns(db.Object);
            dbProvider.Setup(d => d.GetBsonDocumentCollection(It.IsAny <string>(), It.IsAny <string>()))
            .Returns(collection.Object);

            var resultValue = "";

            defBuilder.Setup(d => d.GetFilterForPlayerEdit(It.IsAny <int>()))
            .Returns(default(FilterDefinition <BsonDocument>));
            defBuilder.Setup(d => d.GetUpdateForPlayerEdit(It.IsAny <string>(), It.IsAny <object>()))
            .Callback((string p, object n) => resultValue = n as string)
            .Returns(default(UpdateDefinition <BsonDocument>));

            var updateResult = new Mock <UpdateResult>();

            updateResult.Setup(u => u.ModifiedCount).Returns(1);

            collection.Setup(c => c.UpdateOneAsync(
                                 It.IsAny <FilterDefinition <BsonDocument> >(),
                                 It.IsAny <UpdateDefinition <BsonDocument> >()))
            .ReturnsAsync(updateResult.Object);

            var pp = new PlayersProvider(dbProvider.Object, defBuilder.Object, encryptor.Object);

            const int    playerId          = 0;
            const string parameterToUpdate = "UnlockedSkins";
            const string newValue          = "0, 1, 2, 3, 4";

            // Act.
            var success = await pp.EditPlayer(playerId, parameterToUpdate, newValue);

            // Assert.
            Assert.True(success);
            Assert.AreEqual("[0,1,2,3,4]", resultValue);
        }