예제 #1
0
        public void DeserializeAndSerialize()
        {
            var test = new HighPriorityAttribute();

            var clone = test.ToArray().AsSerializable <HighPriorityAttribute>();

            Assert.AreEqual(clone.Type, test.Type);

            // As transactionAttribute

            using var msRead  = new MemoryStream();
            using var msWrite = new MemoryStream();
            using (var stream = new BinaryWriter(msWrite))
            {
                var data = (test as TransactionAttribute).ToArray();
                msRead.Write(data);
                msRead.Seek(0, SeekOrigin.Begin);
            }

            using var reader = new BinaryReader(msRead);
            clone            = TransactionAttribute.DeserializeFrom(reader) as HighPriorityAttribute;
            Assert.AreEqual(clone.Type, test.Type);

            // Wrong type

            msRead.Seek(0, SeekOrigin.Begin);
            msRead.WriteByte(0xff);
            msRead.Seek(0, SeekOrigin.Begin);
            Assert.ThrowsException <FormatException>(() => TransactionAttribute.DeserializeFrom(reader));
            msRead.Seek(0, SeekOrigin.Begin);
            Assert.ThrowsException <FormatException>(() => new HighPriorityAttribute().Deserialize(reader));
        }
예제 #2
0
        public void ToJson()
        {
            var test = new HighPriorityAttribute();
            var json = test.ToJson().ToString();

            Assert.AreEqual(@"{""type"":""HighPriority""}", json);
        }
예제 #3
0
        public void DeserializeAndSerialize()
        {
            var test = new HighPriorityAttribute();

            var clone = test.ToArray().AsSerializable <HighPriorityAttribute>();

            Assert.AreEqual(clone.Type, test.Type);

            // As transactionAttribute

            byte[] buffer = test.ToArray();
            var    reader = new MemoryReader(buffer);

            clone = TransactionAttribute.DeserializeFrom(ref reader) as HighPriorityAttribute;
            Assert.AreEqual(clone.Type, test.Type);

            // Wrong type

            buffer[0] = 0xff;
            reader    = new MemoryReader(buffer);
            try
            {
                TransactionAttribute.DeserializeFrom(ref reader);
                Assert.Fail();
            }
            catch (FormatException) { }
            reader = new MemoryReader(buffer);
            try
            {
                new HighPriorityAttribute().Deserialize(ref reader);
                Assert.Fail();
            }
            catch (FormatException) { }
        }
예제 #4
0
        public void Verify()
        {
            var test     = new HighPriorityAttribute();
            var snapshot = TestBlockchain.GetTestSnapshot();

            Assert.IsFalse(test.Verify(snapshot, new Transaction()
            {
                Signers = new Signer[] { }
            }));
            Assert.IsFalse(test.Verify(snapshot, new Transaction()
            {
                Signers = new Signer[] { new Signer()
                                         {
                                             Account = UInt160.Parse("0xa400ff00ff00ff00ff00ff00ff00ff00ff00ff01")
                                         } }
            }));
            Assert.IsTrue(test.Verify(snapshot, new Transaction()
            {
                Signers = new Signer[] { new Signer()
                                         {
                                             Account = NativeContract.NEO.GetCommitteeAddress(snapshot)
                                         } }
            }));
        }
예제 #5
0
        public void Size_Get()
        {
            var test = new HighPriorityAttribute();

            test.Size.Should().Be(1);
        }