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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 4
0
 /// <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));
        }
Exemplo n.º 6
0
        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());
        }
Exemplo n.º 7
0
        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);
        }