コード例 #1
0
        public void TestVendorBuyContent6017()
        {
            var cont = new Container(Serial.LastItem + 1);

            var buyStates = new List <BuyItemState>
            {
                new BuyItemState("First Item", cont.Serial, Serial.NewItem, 10, 1, 0x01, 0),
                new BuyItemState("Second Item", cont.Serial, Serial.NewItem, 20, 2, 0x0A, 0),
                new BuyItemState("Third Item", cont.Serial, Serial.NewItem, 30, 10, 0x0F, 0)
            };

            var data = new VendorBuyContent6017(buyStates).Compile();

            Span <byte> expectedData = stackalloc byte[5 + buyStates.Count * 20];

            var pos = 0;

            expectedData.Write(ref pos, (byte)0x3C);                  // Packet ID
            expectedData.Write(ref pos, (ushort)expectedData.Length); // Length
            expectedData.Write(ref pos, (ushort)buyStates.Count);     // Count

            for (var i = buyStates.Count - 1; i >= 0; i--)
            {
                var buyState = buyStates[i];

                expectedData.Write(ref pos, buyState.MySerial);
                expectedData.Write(ref pos, (ushort)buyState.ItemID);
                pos++;                                        // ItemID Offset
                expectedData.Write(ref pos, (ushort)buyState.Amount);
                expectedData.Write(ref pos, (ushort)(i + 1)); // X
                expectedData.Write(ref pos, (ushort)1);       // Y
#if NO_LOCAL_INIT
                expectedData.Write(ref pos, (byte)0);         // Grid Location?
#else
                pos++;
#endif
                expectedData.Write(ref pos, buyState.ContainerSerial);
                expectedData.Write(ref pos, (ushort)buyState.Hue);
            }

            AssertThat.Equal(data, expectedData);
        }
コード例 #2
0
        public void TestVendorBuyContent6017()
        {
            var cont = new Container(Serial.LastItem + 1);

            var buyStates = new List <BuyItemState>
            {
                new BuyItemState("First Item", cont.Serial, Serial.NewItem, 10, 1, 0x01, 0),
                new BuyItemState("Second Item", cont.Serial, Serial.NewItem, 20, 2, 0x0A, 0),
                new BuyItemState("Third Item", cont.Serial, Serial.NewItem, 30, 10, 0x0F, 0)
            };

            Span <byte> data = new VendorBuyContent6017(buyStates).Compile();

            Span <byte> expectedData = stackalloc byte[5 + buyStates.Count * 20];

            int pos = 0;

            expectedData[pos++] = 0x3C;                                  // Packet ID
            ((ushort)expectedData.Length).CopyTo(ref pos, expectedData); // Length
            ((ushort)buyStates.Count).CopyTo(ref pos, expectedData);     // Count

            for (int i = buyStates.Count - 1; i >= 0; i--)
            {
                BuyItemState buyState = buyStates[i];

                buyState.MySerial.CopyTo(ref pos, expectedData);
                ((ushort)buyState.ItemID).CopyTo(ref pos, expectedData);
                pos++;                                           // ItemID Offset
                ((ushort)buyState.Amount).CopyTo(ref pos, expectedData);
                ((ushort)(i + 1)).CopyTo(ref pos, expectedData); // X
                expectedData[pos++] = 0;
                expectedData[pos++] = 1;                         // Y
                expectedData[pos++] = 0;                         // Grid Location
                buyState.ContainerSerial.CopyTo(ref pos, expectedData);
                ((ushort)buyState.Hue).CopyTo(ref pos, expectedData);
            }

            AssertThat.Equal(data, expectedData);
        }