Esempio n. 1
0
        public void SetUp()
        {
            _testParty = new PartyDataModel(TestInitiatorPlayerId, Pit);
            _testParty.AddPlayerToParty(TestEvictedPlayerId, Pit);

            _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);
        }
Esempio n. 2
0
        public void SetUp()
        {
            _party = new PartyDataModel(SenderPlayerId, "PIT", 6, 28);
            _party.AddPlayerToParty("FR", "PIT");

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

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

            memoryStoreClientManager.Setup(manager => manager.GetClient()).Returns(_mockMemoryStoreClient.Object);
            _inviteService = new InviteServiceImpl(memoryStoreClientManager.Object);
        }
        public void ReturnFailedPreconditionWhenTheReceiverIsAlreadyAMemberOfTheParty()
        {
            // Setup the client such that it will claim that the receiver is already a member of the party.
            _party.AddPlayerToParty(ReceiverPlayerId, "PIT");
            _mockMemoryStoreClient.Setup(client => client.GetAsync <Member>(ReceiverPlayerId))
            .ReturnsAsync(_party.GetMember(ReceiverPlayerId));
            _mockMemoryStoreClient.Setup(client => client.GetAsync <PartyDataModel>(_party.Id)).ReturnsAsync(_party);

            var context   = Util.CreateFakeCallContext(ReceiverPlayerId, "");
            var exception = Assert.ThrowsAsync <RpcException>(() =>
                                                              _inviteService.CreateInvite(new CreateInviteRequest {
                ReceiverPlayerId = ReceiverPlayerId
            }, context));

            Assert.That(exception.Message, Contains.Substring("already a member"));
            Assert.AreEqual(StatusCode.FailedPrecondition, exception.StatusCode);
        }
        public void ReturnEarlyWhenThePlayerIsAlreadyAMemberOfTheParty()
        {
            // Setup the client such that it will claim that the player is already a member of the party they're trying
            // to join.
            _partyToJoin.AddPlayerToParty(TestPlayerId, Pit);
            _mockMemoryStoreClient.Setup(client => client.GetAsync <PartyDataModel>(_partyToJoin.Id)).ReturnsAsync(_partyToJoin);
            _mockMemoryStoreClient.Setup(client => client.GetAsync <Member>(TestPlayerId))
            .ReturnsAsync(_partyToJoin.GetMember(TestPlayerId));
            _mockMemoryStoreClient.Setup(client => client.GetAsync <PlayerInvites>(TestPlayerId)).ReturnsAsync(_playerInvites);
            _mockMemoryStoreClient.Setup(client => client.GetAsync <Invite>("invite")).ReturnsAsync(_invite);

            var context = Util.CreateFakeCallContext(TestPlayerId, Pit);
            var request = new JoinPartyRequest {
                PartyId = _partyToJoin.Id
            };
            var response = _partyService.JoinParty(request, context).Result;

            Assert.NotNull(response.Party);
        }
Esempio n. 5
0
        public void ReturnPermissionDeniedWhenInitiatorIsNotTheLeader()
        {
            // Setup the client such that it will claim that the initiator is not the leader of the party.
            _testParty.AddPlayerToParty("SomeoneNew", Pit);
            _testParty.UpdatePartyLeader("SomeoneNew");

            _mockMemoryStoreClient.Setup(client => client.GetAsync <Member>(TestInitiatorPlayerId))
            .ReturnsAsync(_testParty.GetMember(TestInitiatorPlayerId));
            _mockMemoryStoreClient.Setup(client => client.GetAsync <Member>(TestEvictedPlayerId))
            .ReturnsAsync(_testParty.GetMember(TestEvictedPlayerId));
            _mockMemoryStoreClient.Setup(client => client.GetAsync <PartyDataModel>(_testParty.Id))
            .ReturnsAsync(_testParty);

            // Check that the kick-out request will throw an exception.
            var context   = Util.CreateFakeCallContext(TestInitiatorPlayerId, Pit);
            var exception =
                Assert.ThrowsAsync <RpcException>(() => _partyService.KickOutPlayer(_testKickOutRequest, context));

            Assert.That(exception.Message, Contains.Substring("initiator is not the leader"));
            Assert.AreEqual(StatusCode.PermissionDenied, exception.StatusCode);
        }
Esempio n. 6
0
        public void ReturnPermissionDeniedWhenThePlayerIsNotTheLeaderOfTheParty()
        {
            // Setup the client so that it will return a party which doesn't have the player set as its leader.
            var party = new PartyDataModel(_testParty);

            party.AddPlayerToParty("SomeoneElse", Pit);
            party.UpdatePartyLeader("SomeoneElse");

            _mockMemoryStoreClient.Setup(client => client.GetAsync <Member>(TestPlayerId))
            .ReturnsAsync(_testMember);
            _mockMemoryStoreClient.Setup(client => client.GetAsync <PartyDataModel>(_testMember.PartyId))
            .ReturnsAsync(party);

            // Check that an RpcException was thrown signalising that the player doesn't have the necessary permissions
            // to delete the party.
            var context   = Util.CreateFakeCallContext(TestPlayerId, Pit);
            var exception = Assert.ThrowsAsync <RpcException>(() =>
                                                              _partyService.DeleteParty(new DeletePartyRequest(), context));

            Assert.That(exception.Message, Contains.Substring("needs to be the leader"));
            Assert.AreEqual(StatusCode.PermissionDenied, exception.StatusCode);
        }