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); }
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); }
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); }
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); }