public void Setup()
        {
            _partyMatched = new PartyDataModel(LeaderPartyMatched, Pit);
            _partyMatched.AddPlayerToParty(PlayerPartyMatched, Pit);
            _matchedPartyJoinRequest = new PartyJoinRequest(_partyMatched, "type-matched", null);
            _partyError              = new PartyDataModel(LeaderPartyError, Pit);
            _errorPartyJoinRequest   = new PartyJoinRequest(_partyError, "type-error", null);
            _partyRequeue            = new PartyDataModel(LeaderPartyRequeue, Pit);
            _requeuePartyJoinRequest = new PartyJoinRequest(_partyRequeue, "type-requeue", null);

            _logger    = new Mock <ILogger>();
            Log.Logger = _logger.Object;

            _transaction = new Mock <ITransaction>(MockBehavior.Strict);
            _transaction.Setup(tx => tx.Dispose());

            _memoryStoreClient = new Mock <IMemoryStoreClient>(MockBehavior.Strict);
            _memoryStoreClient.Setup(client => client.Dispose());
            _memoryStoreClient.Setup(client => client.CreateTransaction()).Returns(_transaction.Object);

            var memoryStoreClientManager = new Mock <IMemoryStoreClientManager <IMemoryStoreClient> >();

            memoryStoreClientManager.Setup(manager => manager.GetClient()).Returns(_memoryStoreClient.Object);
            _service = new GatewayInternalServiceImpl(memoryStoreClientManager.Object);
        }
Example #2
0
 public PartyJoinRequest(PartyDataModel party, string type, Dictionary <string, string> metadata)
 {
     Id       = party.Id;
     Party    = new PartyDataModel(party);
     Type     = type;
     Metadata = metadata;
     RefreshQueueData();
 }
Example #3
0
 public PartyJoinRequest(PartyDataModel party, string type, Dictionary <string, string> metadata)
 {
     MatchRequestId = Guid.NewGuid().ToString();
     Id             = party.Id;
     Party          = new PartyDataModel(party);
     Type           = type;
     Metadata       = metadata;
     RefreshQueueData();
 }
        public void ReturnLeaderWhenThereLeaderPlayerIdIsSet()
        {
            var party  = new PartyDataModel("Leader", "PIT", 10, 20, new Dictionary <string, string>());
            var member = party.GetLeader();

            Assert.NotNull(member);
            Assert.AreEqual("Leader", member.Id);
            Assert.AreEqual(party.Id, member.PartyId);
            Assert.AreEqual(member.SerializeToJson(), member.PreviousState);
        }
Example #5
0
 public PartyJoinRequest(string id, PartyDataModel party, string type, Dictionary <string, string> metadata,
                         string queueName, double score)
 {
     Id        = party.Id;
     Party     = party;
     Type      = type;
     Metadata  = metadata;
     QueueName = queueName;
     Score     = score;
 }
Example #6
0
 public PartyJoinRequest(string id, PartyDataModel party, string type, Dictionary <string, string> metadata,
                         string queueName, double score, string matchRequestId = null)
 {
     MatchRequestId = matchRequestId ?? Guid.NewGuid().ToString();
     Id             = party.Id;
     Party          = party;
     Type           = type;
     Metadata       = metadata;
     QueueName      = queueName;
     Score          = score;
 }
Example #7
0
        public void SetAllFieldsWhenGiven()
        {
            var party = new PartyDataModel(TestLeaderPlayerId, TestPit, TestMinMembers, TestMaxMembers, _testMetadata);

            Assert.False(string.IsNullOrEmpty(party.Id));
            Assert.AreEqual(TestLeaderPlayerId, party.LeaderPlayerId);
            Assert.AreEqual(TestMinMembers, party.MinMembers);
            Assert.AreEqual(TestMaxMembers, party.MaxMembers);
            Assert.AreEqual(PartyDataModel.Phase.Forming, party.CurrentPhase);
            CollectionAssert.AreEquivalent(_testMetadata, party.Metadata);
            CollectionAssert.AreEquivalent(_testMemberIdToPit, party.MemberIdToPit);
            Assert.IsNull(party.PreviousState);
        }
 private static PartyProto ConvertToProto(PartyDataModel party)
 {
     return(new PartyProto
     {
         Id = party.Id,
         LeaderPlayerId = party.LeaderPlayerId,
         MinMembers = party.MinMembers,
         MaxMembers = party.MaxMembers,
         Metadata = { party.Metadata },
         MemberIds = { party.MemberIds },
         CurrentPhase = ConvertToProto(party.CurrentPhase)
     });
 }
Example #9
0
        public void SetDefaultValuesWhenParametersAreAbsent()
        {
            PartyDataModel.Defaults.MinMembers = 10;
            PartyDataModel.Defaults.MaxMembers = 100;
            var party = new PartyDataModel(TestLeaderPlayerId, TestPit);

            Assert.False(string.IsNullOrEmpty(party.Id));
            Assert.AreEqual(TestLeaderPlayerId, party.LeaderPlayerId);
            Assert.AreEqual(10, party.MinMembers);
            Assert.AreEqual(100, party.MaxMembers);
            Assert.AreEqual(PartyDataModel.Phase.Forming, party.CurrentPhase);
            CollectionAssert.IsEmpty(party.Metadata);
            CollectionAssert.AreEquivalent(_testMemberIdToPit, party.MemberIdToPit);
            Assert.IsNull(party.PreviousState);
        }
        public void Setup()
        {
            _soloParty      = new PartyDataModel(SoloPartyLeader, Pit);
            _twoPlayerParty = new PartyDataModel(TwoPlayerPartyLeader, Pit);
            _twoPlayerParty.AddPlayerToParty(TwoPlayerPartyMember, Pit);

            _transaction = new Mock <ITransaction>(MockBehavior.Strict);
            _transaction.Setup(tx => tx.Dispose());

            _memoryStoreClient = new Mock <IMemoryStoreClient>(MockBehavior.Strict);
            _memoryStoreClient.Setup(client => client.Dispose());
            _memoryStoreClient.Setup(client => client.CreateTransaction()).Returns(_transaction.Object);

            var memoryStoreClientManager = new Mock <IMemoryStoreClientManager <IMemoryStoreClient> >();

            memoryStoreClientManager.Setup(manager => manager.GetClient()).Returns(_memoryStoreClient.Object);
            _service = new GatewayInternalServiceImpl(memoryStoreClientManager.Object);
        }
Example #11
0
        public void SetUp()
        {
            _testParty = new PartyDataModel(TestPlayerId, Pit, TestMinMembers, TestMaxMembers, _testMetadata);
            _testParty.MemberIdToPit[TestPlayerId2] = Pit;

            _testUpdatedParty.Id = _testParty.Id;
            _testUpdatedParty.Metadata.Clear();
            _testUpdatedParty.Metadata.Add(_testNewMetadata);

            _mockTransaction       = new Mock <ITransaction>(MockBehavior.Strict);
            _mockMemoryStoreClient = new Mock <IMemoryStoreClient>(MockBehavior.Strict);
            _mockMemoryStoreClient.Setup(client => client.Dispose()).Verifiable();
            _mockMemoryStoreClient.Setup(client => client.CreateTransaction()).Returns(_mockTransaction.Object);

            var memoryStoreClientManager = new Mock <IMemoryStoreClientManager <IMemoryStoreClient> >(MockBehavior.Strict);

            memoryStoreClientManager.Setup(manager => manager.GetClient()).Returns(_mockMemoryStoreClient.Object);
            _partyService = new PartyServiceImpl(memoryStoreClientManager.Object);
        }
        public void ReturnFailedPreconditionWhenNewLeaderIsNotAMemberOfTheParty()
        {
            // Setup the client such that it will claim that the party doesn't have as member the newly proposed leader.
            var party = new PartyDataModel(_testParty);

            party.MemberIdToPit.Remove(TestPlayerId2);

            _mockMemoryStoreClient.Setup(client => client.GetAsync <PartyDataModel>(_testUpdatedParty.Id)).ReturnsAsync(party);

            // Check that an exception was thrown signaling that the update operation failed.
            var context = Util.CreateFakeCallContext(TestPlayerId, Pit);
            var request = new UpdatePartyRequest {
                UpdatedParty = _testUpdatedParty
            };
            var exception = Assert.ThrowsAsync <RpcException>(() => _partyService.UpdateParty(request, context));

            Assert.That(exception.Message, Contains.Substring("new leader is not a member"));
            Assert.AreEqual(StatusCode.FailedPrecondition, exception.StatusCode);
        }
        public void ReturnPermissionDeniedWhenPlayerIsNotTheLeader()
        {
            // Setup the client such that it will claim that the party has as leader a different player other than the
            // one making the request.
            var party = new PartyDataModel(_testParty);

            party.UpdatePartyLeader(TestPlayerId2);

            _mockMemoryStoreClient.Setup(client => client.GetAsync <PartyDataModel>(_testUpdatedParty.Id)).ReturnsAsync(party);

            // Check that an exception was thrown signaling that the update operation failed.
            var context = Util.CreateFakeCallContext(TestPlayerId, Pit);
            var request = new UpdatePartyRequest {
                UpdatedParty = _testUpdatedParty
            };
            var exception = Assert.ThrowsAsync <RpcException>(() => _partyService.UpdateParty(request, context));

            Assert.That(exception.Message, Contains.Substring("can only be done by the leader"));
            Assert.AreEqual(StatusCode.PermissionDenied, exception.StatusCode);
        }
Example #14
0
        public void ReturnACollectionWithAllMembers()
        {
            var party = new PartyDataModel(TestLeaderId, DefaultPit)
            {
                MemberIdToPit = { [TestMemberId] = DefaultPit }
            };
            var memberList = party.GetMembers().ToList();

            Assert.AreEqual(2, memberList.Count);

            var first = memberList[0];

            Assert.AreEqual(TestLeaderId, first.Id);
            Assert.AreEqual(party.Id, first.PartyId);
            Assert.AreEqual(first.SerializeToJson(), first.PreviousState);

            var second = memberList[1];

            Assert.AreEqual(TestMemberId, second.Id);
            Assert.AreEqual(party.Id, second.PartyId);
            Assert.AreEqual(second.SerializeToJson(), second.PreviousState);
        }
 public void SetUp()
 {
     _party = new PartyDataModel(LeaderId, "PIT", MinMembers, MaxMembers);
 }
 public void SetUp()
 {
     _party = new PartyDataModel(LeaderId, "PIT");
     _party.AddPlayerToParty(PlayerId, "PIT");
 }
 public void SetUp()
 {
     _party = new PartyDataModel(LeaderId, "PIT");
 }