public void Serialize_WithSupportedTransaction_ShouldInvokePayloadSerializer( int version, int id, params byte[] expected) { // Arrange. var tx = new FakeTransaction(null, null, id, version); var serializer = new FakeTransactionPayloadSerializer(tx.Id); var subject = new TransactionSerializer(new[] { serializer }); var writer = new ArrayBufferWriter <byte>(); serializer.StubbedSerialize .Setup(f => f(It.IsAny <IBufferWriter <byte> >(), It.IsAny <Elysium.Transaction>())) .Callback((IBufferWriter <byte> writer, Elysium.Transaction tx) => { writer.Write(new ReadOnlySpan <byte>(expected, 4, expected.Length - 4)); }); // Act. subject.Serialize(writer, tx); // Assert. Assert.Equal(expected, writer.WrittenSpan.ToArray()); serializer.StubbedSerialize.Verify(f => f(writer, tx), Times.Once()); }
public TransactionSerializerTests() { this.payload1 = new FakeTransactionPayloadSerializer(0); this.payload2 = new FakeTransactionPayloadSerializer(1); this.subject = new TransactionSerializer(new[] { this.payload1, this.payload2 }); }