public void Test_Delete_Friend_When_Disconnected() { var guid = Guid.NewGuid(); var targetGuid = Guid.NewGuid(); _session.Character.CharacterRelations.TryAdd(guid, new CharacterRelation { CharacterId = _session.Character.CharacterId, CharacterRelationId = guid, RelatedCharacterId = 2, RelationType = CharacterRelationType.Friend }); _session.Character.RelationWithCharacter.TryAdd(targetGuid, new CharacterRelation { CharacterId = 2, CharacterRelationId = targetGuid, RelatedCharacterId = _session.Character.CharacterId, RelationType = CharacterRelationType.Friend }); Assert.IsTrue(_session.Character.CharacterRelations.Count == 1 && _session.Character.RelationWithCharacter.Count == 1); var fdelPacket = new FdelPacket { CharacterId = 2 }; _handler.DeleteFriend(fdelPacket); Assert.IsTrue(_session.Character.CharacterRelations.IsEmpty); }
public async Task Test_Delete_Friend_No_FriendAsync() { var targetSession = await TestHelpers.Instance.GenerateSessionAsync().ConfigureAwait(false); var guid = Guid.NewGuid(); var targetGuid = Guid.NewGuid(); var list = new List <CharacterDto> { _session !.Character !, targetSession.Character ! }; _characterDao !.Setup(s => s.FirstOrDefaultAsync(It.IsAny <Expression <Func <CharacterDto, bool> > >())) .Returns((Expression <Func <CharacterDto, bool> > exp) => Task.FromResult(list.FirstOrDefault(exp.Compile()))); var fdelPacket = new FdelPacket { CharacterId = targetSession.Character.CharacterId }; await _fDelPacketHandler !.ExecuteAsync(fdelPacket, _session).ConfigureAwait(false); var lastpacket = (InfoPacket?)_session.LastPackets.FirstOrDefault(s => s is InfoPacket); Assert.AreEqual(GameLanguage.Instance.GetMessageFromKey(LanguageKey.NOT_IN_FRIENDLIST, _session.Account.Language), lastpacket?.Message); } }
public void Test_Delete_Friend_No_Friend() { var targetSession = TestHelpers.Instance.GenerateSession(); var guid = Guid.NewGuid(); var targetGuid = Guid.NewGuid(); var list = new List <CharacterDto> { _session.Character, targetSession.Character }; _characterDao.Setup(s => s.FirstOrDefault(It.IsAny <Expression <Func <CharacterDto, bool> > >())) .Returns((Expression <Func <CharacterDto, bool> > exp) => list.FirstOrDefault(exp.Compile())); var fdelPacket = new FdelPacket { CharacterId = targetSession.Character.CharacterId }; _fDelPacketHandler.Execute(fdelPacket, _session); var lastpacket = (InfoPacket)_session.LastPackets.FirstOrDefault(s => s is InfoPacket); Assert.AreEqual(Language.Instance.GetMessageFromKey(LanguageKey.NOT_IN_FRIENDLIST, _session.Account.Language), lastpacket.Message); }
/// <summary> /// fdel packet /// </summary> /// <param name="fdelPacket"></param> public void DeleteFriend(FdelPacket fdelPacket) { Session.Character.DeleteRelation(fdelPacket.CharacterId); Session.SendPacket(new InfoPacket { Message = Language.Instance.GetMessageFromKey(LanguageKey.FRIEND_DELETED, Session.Account.Language) }); }
public void Test_Delete_Friend() { var fdelPacket = new FdelPacket { CharacterId = _targetChar.CharacterId }; _targetSession.Character.FriendRequestCharacters.TryAdd(0, _session.Character.CharacterId); var finsPacket = new FinsPacket { CharacterId = _targetChar.CharacterId, Type = FinsPacketType.Accepted }; _handler.AddFriend(finsPacket); _handler.DeleteFriend(fdelPacket); Assert.IsTrue(_session.Character.CharacterRelations.All(s => s.Value.RelatedCharacterId != _targetSession.Character.CharacterId) && _targetSession.Character.CharacterRelations.All(s => s.Value.RelatedCharacterId != _session.Character.CharacterId)); }
public async Task Test_Delete_Friend_When_DisconnectedAsync() { var guid = Guid.NewGuid(); var targetGuid = Guid.NewGuid(); var list = new List <CharacterDto> { _session !.Character !, new CharacterDto { CharacterId = 2, Name = "test" } }; _characterDao !.Setup(s => s.FirstOrDefaultAsync(It.IsAny <Expression <Func <CharacterDto, bool> > >())) .Returns((Expression <Func <CharacterDto, bool> > exp) => Task.FromResult(list.FirstOrDefault(exp.Compile()))); await _characterRelationDao !.TryInsertOrUpdateAsync(new[] { new CharacterRelationDto { CharacterId = 2, CharacterRelationId = guid, RelatedCharacterId = _session.Character.CharacterId, RelationType = CharacterRelationType.Friend }, new CharacterRelationDto { RelatedCharacterId = 2, CharacterRelationId = targetGuid, CharacterId = _session.Character.CharacterId, RelationType = CharacterRelationType.Friend } }).ConfigureAwait(false); var fdelPacket = new FdelPacket { CharacterId = 2 }; await _fDelPacketHandler !.ExecuteAsync(fdelPacket, _session).ConfigureAwait(false); Assert.IsTrue(!(_characterRelationDao !.LoadAll()).Any()); }
public async Task Test_Delete_FriendAsync() { var targetSession = await TestHelpers.Instance.GenerateSessionAsync().ConfigureAwait(false); var guid = Guid.NewGuid(); var targetGuid = Guid.NewGuid(); var list = new List <CharacterDto> { _session !.Character !, targetSession.Character ! }; _characterDao !.Setup(s => s.FirstOrDefaultAsync(It.IsAny <Expression <Func <CharacterDto, bool> > >())) .ReturnsAsync((Expression <Func <CharacterDto, bool> > exp) => list.FirstOrDefault(exp.Compile())); await _characterRelationDao !.TryInsertOrUpdateAsync(new[] { new CharacterRelationDto { CharacterId = targetSession.Character.CharacterId, CharacterRelationId = guid, RelatedCharacterId = _session.Character.CharacterId, RelationType = CharacterRelationType.Friend }, new CharacterRelationDto { RelatedCharacterId = targetSession.Character.CharacterId, CharacterRelationId = targetGuid, CharacterId = _session.Character.CharacterId, RelationType = CharacterRelationType.Friend } }).ConfigureAwait(false); var fdelPacket = new FdelPacket { CharacterId = targetSession.Character.CharacterId }; await _fDelPacketHandler !.ExecuteAsync(fdelPacket, _session).ConfigureAwait(false); Assert.IsTrue(!_characterRelationDao.LoadAll().Any()); }
public void Test_Delete_Friend_When_Disconnected() { var guid = Guid.NewGuid(); var targetGuid = Guid.NewGuid(); var list = new List <CharacterDto> { _session.Character, new CharacterDto { CharacterId = 2, Name = "test" } }; _characterDao.Setup(s => s.FirstOrDefault(It.IsAny <Expression <Func <CharacterDto, bool> > >())) .Returns((Expression <Func <CharacterDto, bool> > exp) => list.FirstOrDefault(exp.Compile())); _characterRelationDao.InsertOrUpdate(new[] { new CharacterRelationDto { CharacterId = 2, CharacterRelationId = guid, RelatedCharacterId = _session.Character.CharacterId, RelationType = CharacterRelationType.Friend }, new CharacterRelationDto { RelatedCharacterId = 2, CharacterRelationId = targetGuid, CharacterId = _session.Character.CharacterId, RelationType = CharacterRelationType.Friend } }); var fdelPacket = new FdelPacket { CharacterId = 2 }; _fDelPacketHandler.Execute(fdelPacket, _session); Assert.IsTrue(_characterRelationDao.LoadAll().Count() == 0); }