public void TestDisplayHelpTopic(int topic, bool display)
        {
            var expected = new DisplayHelpTopic(topic, display).Compile();

            var ns = PacketTestUtilities.CreateTestNetState();

            ns.SendDisplayHelpTopic(topic, display);

            var result = ns.SendPipe.Reader.TryRead();

            AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
        }
예제 #2
0
        public void TestSpecialAbility(int abilityId, bool active)
        {
            var expected = new ToggleSpecialAbility(abilityId, active).Compile();

            var ns = PacketTestUtilities.CreateTestNetState();

            ns.SendToggleSpecialAbility(abilityId, active);

            var result = ns.SendPipe.Reader.TryRead();

            AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
        }
        public void TestSendChatMessage(string lang, int number, string param1, string param2)
        {
            var expected = new ChatMessagePacket(lang, number, param1, param2).Compile();

            var ns = PacketTestUtilities.CreateTestNetState();

            ns.SendChatMessage(lang, number, param1, param2);

            var result = ns.SendPipe.Reader.TryRead();

            AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
        }
예제 #4
0
        public void TestDesignStateGeneral(uint serial, int revision)
        {
            var expected = new DesignStateGeneral((Serial)serial, revision).Compile();

            var ns = PacketTestUtilities.CreateTestNetState();

            ns.SendDesignStateGeneral((Serial)serial, revision);

            var result = ns.SendPipe.Reader.TryRead();

            AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
        }
예제 #5
0
        public void TestEndHouseCustomization(uint serial)
        {
            var expected = new EndHouseCustomization((Serial)serial).Compile();

            var ns = PacketTestUtilities.CreateTestNetState();

            ns.SendEndHouseCustomization((Serial)serial);

            var result = ns.SendPipe.Reader.TryRead();

            AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
        }
예제 #6
0
        public void TestClearAbility()
        {
            var expected = new ClearWeaponAbility().Compile();

            var ns = PacketTestUtilities.CreateTestNetState();

            ns.SendClearWeaponAbility();

            var result = ns.SendPipe.Reader.TryRead();

            AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
        }
        public void TestSendStatueAnimation(uint s, int status, int anim, int frame)
        {
            var expected = new UpdateStatueAnimation((Serial)s, status, anim, frame).Compile();

            var ns = PacketTestUtilities.CreateTestNetState();

            ns.SendStatueAnimation((Serial)s, status, anim, frame);

            var result = ns.SendPipe.Reader.TryRead();

            AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
        }
예제 #8
0
        public void TestMoveBoatHS(Direction d, int speed, int xOffset, int yOffset)
        {
            var item1 = new Item((Serial)0x1000)
            {
                ItemID   = 0x13B9,
                Location = new Point3D(11, 21, 16),
                Map      = Map.Felucca,
                Visible  = true
            };
            var item2 = new Item((Serial)0x2000)
            {
                ItemID   = 0x13B9,
                Location = new Point3D(100, 200, 16),
                Map      = Map.Felucca,
                Visible  = true
            };

            var beholder = new Mock <Mobile>((Serial)0x100);

            beholder.Object.DefaultMobileInit();
            beholder.Object.Location = new Point3D(10, 20, 15);
            beholder.Object.Map      = Map.Felucca;
            beholder.Setup(m => m.CanSee(It.Is <IEntity>(e => e == beholder.Object))).Returns(true);
            beholder.Setup(m => m.CanSee(It.Is <IEntity>(e => e == item1))).Returns(true);
            beholder.Setup(m => m.CanSee(It.Is <IEntity>(e => e == item2))).Returns(false);

            var list = new List <IEntity> {
                item1, beholder.Object
            };
            var notContained = new List <IEntity> {
                item2
            };
            var boat = new TestBoat((Serial)0x3000, list, notContained)
            {
                Location = new Point3D(10, 20, 15),
                Facing   = Direction.Right,
                Map      = Map.Felucca
            };

            beholder.Setup(m => m.CanSee(It.Is <IEntity>(e => e == boat))).Returns(true);

            var ns = PacketTestUtilities.CreateTestNetState();

            ns.ProtocolChanges = ProtocolChanges.HighSeas;
            var expected = new MoveBoatHS(beholder.Object, boat, d, speed, list, xOffset, yOffset).Compile();

            ns.SendMoveBoatHS(beholder.Object, boat, d, speed, boat.GetMovingEntities(true), xOffset, yOffset);

            var result = ns.SendPipe.Reader.TryRead();

            AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
        }
예제 #9
0
        public void TestRemoveBuffIcon()
        {
            Serial m        = 0x1024;
            var    buffIcon = BuffIcon.Disguised;
            var    expected = new RemoveBuffPacket(m, buffIcon).Compile();

            using var ns = PacketTestUtilities.CreateTestNetState();
            BuffInfo.SendRemoveBuffPacket(ns, m, buffIcon);

            var result = ns.SendPipe.Reader.TryRead();

            AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
        }
예제 #10
0
        public void TestPartyInvitation()
        {
            Serial m = 0x1024u;

            var expected = new PartyInvitation(m).Compile();

            using var ns = PacketTestUtilities.CreateTestNetState();
            ns.SendPartyInvitation(m);

            var result = ns.SendPipe.Reader.TryRead();

            AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
        }
예제 #11
0
        public void TestMahjongJoinGame()
        {
            Serial game = 0x1024u;

            var expected = new MahjongJoinGame(game).Compile();

            var ns = PacketTestUtilities.CreateTestNetState();

            ns.SendMahjongJoinGame(game);

            var result = ns.SendPipe.Reader.TryRead();

            AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
        }
예제 #12
0
        public void TestPartyEmptyList()
        {
            Serial m = (Serial)0x1024u;

            var expected = new PartyEmptyList(m).Compile();

            var ns = PacketTestUtilities.CreateTestNetState();

            ns.SendPartyRemoveMember(m);

            var result = ns.SendPipe.Reader.TryRead();

            AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
        }
예제 #13
0
        public void TestAddBuffIcon(uint mob, BuffIcon iconID, int titleCliloc, int secondaryCliloc, string args, int ts)
        {
            var timeSpan = new TimeSpan(ts);
            var expected = new AddBuffPacket(
                mob, iconID, titleCliloc, secondaryCliloc, args, timeSpan
                ).Compile();

            using var ns = PacketTestUtilities.CreateTestNetState();
            BuffInfo.SendAddBuffPacket(ns, mob, iconID, titleCliloc, secondaryCliloc, args, timeSpan);

            var result = ns.SendPipe.Reader.TryRead();

            AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
        }
        public void TestSendMapCommand(int command, int number, int x, int y)
        {
            var mapItem = new MapItem(Map.Trammel);

            var expected = new MapCommand(mapItem, command, number, x, y).Compile();

            var ns = PacketTestUtilities.CreateTestNetState();

            ns.SendMapCommand(mapItem, command, x, y, number > 0);

            var result = ns.SendPipe.Reader.TryRead();

            AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
        }
예제 #15
0
        public void TestPartyTextMessage(bool toAll)
        {
            Serial serial = 0x1024u;
            var    text   = "[Party] Stuff Happens";

            var expected = new PartyTextMessage(toAll, serial, text).Compile();

            using var ns = PacketTestUtilities.CreateTestNetState();
            ns.SendPartyTextMessage(serial, text, toAll);

            var result = ns.SendPipe.Reader.TryRead();

            AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
        }
예제 #16
0
        public void TestSendRemoveVirtualHair()
        {
            var m = new Mobile(0x1024u);

            m.DefaultMobileInit();

            var expected = new RemoveHair(m).Compile();

            using var ns = PacketTestUtilities.CreateTestNetState();
            ns.SendRemoveHairPacket(HairInfo.FakeSerial(m.Serial));

            var result = ns.SendPipe.Reader.TryRead();

            AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
        }
예제 #17
0
        public void TestSendVirtualHairUpdate()
        {
            var m = new Mobile(0x1024u);

            m.DefaultMobileInit();

            var expected = new HairEquipUpdate(m).Compile();

            var ns = PacketTestUtilities.CreateTestNetState();

            ns.SendHairEquipUpdatePacket(m, HairInfo.FakeSerial(m.Serial), Layer.Hair);

            var result = ns.SendPipe.Reader.TryRead();

            AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
        }
예제 #18
0
        public void TestMahjongGeneralInfo(bool showScores, bool spectatorVision)
        {
            var game = new MahjongGame {
                ShowScores = showScores, SpectatorVision = spectatorVision
            };

            var expected = new MahjongGeneralInfo(game).Compile();

            var ns = PacketTestUtilities.CreateTestNetState();

            ns.SendMahjongGeneralInfo(game);

            var result = ns.SendPipe.Reader.TryRead();

            AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
        }
        public void TestSendMapDetails(ProtocolChanges changes)
        {
            var mapItem = new MapItem(Map.Trammel);

            var ns = PacketTestUtilities.CreateTestNetState();

            ns.ProtocolChanges = changes;

            var expected = (ns.NewCharacterList ?
                            (Packet) new MapDetailsNew(mapItem) : new MapDetails(mapItem)).Compile();

            ns.SendMapDetails(mapItem);

            var result = ns.SendPipe.Reader.TryRead();

            AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
        }
        public void TestSendBBDisplayBoard(string boardName)
        {
            var bb = new TestBulletinBoard(0x234)
            {
                BoardName = boardName
            };

            var expected = new BBDisplayBoard(bb).Compile();

            var ns = PacketTestUtilities.CreateTestNetState();

            ns.SendBBDisplayBoard(bb);

            var result = ns.SendPipe.Reader.TryRead();

            AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
        }
        public void TestRaceChanger(bool female, int raceId)
        {
            var raceMock = new Mock <Race>(
                raceId, 0, "Test Race", "Test Races", 0x1, 0x2, 0x3, 0x4, Expansion.None
                );

            var race = raceMock.Object;

            var expected = new RaceChanger(female, race).Compile();

            var ns = PacketTestUtilities.CreateTestNetState();

            ns.SendRaceChanger(female, race);

            var result = ns.SendPipe.Reader.TryRead();

            AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
        }
        // Regression test used to identify an issue with AddItem compilation of the packet
        public void TestTrackingGump(ProtocolChanges changes)
        {
            var pm = new PlayerMobile();

            pm.Skills.Tracking.BaseFixedPoint = 1000;
            var g = new TrackWhatGump(pm);

            var ns = PacketTestUtilities.CreateTestNetState();

            ns.ProtocolChanges = changes;

            var expected = g.Compile(ns).Compile();

            ns.SendDisplayGump(g, out var switches, out var entries);

            var result = ns.SendPipe.Reader.TryRead();

            AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
        }
예제 #23
0
        public void TestBookContent()
        {
            var m = new Mobile(0x1);

            m.DefaultMobileInit();

            Serial serial = 0x1001;
            var    book   = new TestBook(serial)
            {
                Author = "Some Author", Title = "Some Title"
            };

            book.Pages[0].Lines = new[]
            {
                "Some books start with actual content",
                "This book does not have any actual content",
                "Instead it has several pages of useless text"
            };

            book.Pages[1].Lines = new[]
            {
                "Another page exists but this page:",
                "Has lots of: 🅵🅰🅽🅲🆈 🆃🅴🆇🆃",
                "And just more: 🅵🅰🅽🅲🆈 🆃🅴🆇🆃",
                "So everyone can read: 🅵🅰🅽🅲🆈 🆃🅴🆇🆃"
            };

            book.Pages[2].Lines = new[]
            {
                "The end"
            };

            var expected = new BookPageDetails(book).Compile();

            var ns = PacketTestUtilities.CreateTestNetState();

            ns.SendBookContent(book);

            var result = ns.SendPipe.Reader.TryRead();

            AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
        }
예제 #24
0
        public void TestBookCover(string author, string title)
        {
            var m = new Mobile(0x1);

            m.DefaultMobileInit();

            var book = new BlueBook {
                Author = author, Title = title
            };

            var expected = new BookHeader(m, book).Compile();

            var ns = PacketTestUtilities.CreateTestNetState();

            ns.SendBookCover(m, book);

            var result = ns.SendPipe.Reader.TryRead();

            AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
        }
예제 #25
0
        public void TestCorpseEquipPacket()
        {
            var m = new Mobile(0x1);

            m.DefaultMobileInit();

            var weapon = new VikingSword();

            m.EquipItem(weapon);

            var c = new Corpse(m, m.Items);

            var expected = new CorpseEquip(m, c).Compile();

            using var ns = PacketTestUtilities.CreateTestNetState();
            ns.SendCorpseEquip(m, c);

            var result = ns.SendPipe.Reader.TryRead();

            AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
        }
예제 #26
0
        public void TestMahjongTilesInfo(bool spectatorVision)
        {
            var m = new Mobile(0x1);

            m.DefaultMobileInit();

            var game = new MahjongGame {
                SpectatorVision = spectatorVision
            };

            game.Players.Join(m);

            var expected = new MahjongTilesInfo(game, m).Compile();

            var ns = PacketTestUtilities.CreateTestNetState();

            ns.SendMahjongTilesInfo(game, m);

            var result = ns.SendPipe.Reader.TryRead();

            AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
        }
예제 #27
0
        public void TestCorpseContainerPacket(ProtocolChanges changes)
        {
            var m = new Mobile(0x1);

            m.DefaultMobileInit();

            var weapon = new VikingSword();

            m.EquipItem(weapon);

            var c = new Corpse(m, m.Items);

            using var ns       = PacketTestUtilities.CreateTestNetState();
            ns.ProtocolChanges = changes;

            var expected = (ns.ContainerGridLines ? (Packet) new CorpseContent6017(m, c) : new CorpseContent(m, c)).Compile();

            ns.SendCorpseContent(m, c);

            var result = ns.SendPipe.Reader.TryRead();

            AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
        }
예제 #28
0
        public void TestPartyMemberList()
        {
            var leader = new Mobile(0x1024u);

            leader.DefaultMobileInit();

            var member = new Mobile(0x2048u);

            member.DefaultMobileInit();

            var p = new Party(leader);

            p.Add(member);

            var expected = new PartyMemberList(p).Compile();

            using var ns = PacketTestUtilities.CreateTestNetState();
            ns.SendPartyMemberList(p);

            var result = ns.SendPipe.Reader.TryRead();

            AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
        }