public void OffsetRequest() { var request = new OffsetRequest(); request.ReplicaId = _random.Next(); request.TopicPartitions = new[] { new OffsetsRequestTopicPartition { TopicName = Guid.NewGuid().ToString(), Details = new [] { new OffsetsRequestTopicPartitionDetail() { Partition = _random.Next(), Time = (Int64)_random.Next(), MaxNumberOfOffsets = _random.Next() } } } }; Stream binary1 = new MemoryStream(); request.Serialize(binary1); binary1.Seek(0L, SeekOrigin.Begin); var request2 = new OffsetRequest(); request2.Deserialize(binary1); var compareLogic = new CompareLogic(); var result = compareLogic.Compare(request, request2); Assert.True(result.AreEqual); Stream binary2 = new MemoryStream(); request.Serialize(binary2); Assert.Equal(binary1.Length, binary2.Length); using (var stream1 = new MemoryStream()) using (var stream2 = new MemoryStream()) { binary1.Seek(0L, SeekOrigin.Begin); binary1.CopyTo(stream1); binary2.Seek(0L, SeekOrigin.Begin); binary2.CopyTo(stream2); Assert.Equal(stream1.Length, stream2.Length); stream1.Seek(0L, SeekOrigin.Begin); var bytes1 = stream1.ToArray(); stream2.Seek(0L, SeekOrigin.Begin); var bytes2 = stream2.ToArray(); Assert.Equal(bytes1.Length, bytes2.Length); for (int i = 0; i < bytes1.Length; i++) { Assert.Equal(bytes1[i], bytes2[i]); } } }
public void TestSerializeOffsetRequest() { var offset = new OffsetRequest { TopicsData = new[] { new TopicData <OffsetPartitionData> { TopicName = "boloss", PartitionsData = new[] { new OffsetPartitionData { MaxNumberOfOffsets = 3, Partition = 123, Time = 21341 } } } } }; using (var serialized = offset.Serialize(new ReusableMemoryStream(null), 1235, ClientId, null)) { CheckHeader(Basics.ApiKey.OffsetRequest, 0, 1235, TheClientId, serialized); Assert.AreEqual(-1, BigEndianConverter.ReadInt32(serialized)); // ReplicaId Assert.AreEqual(1, BigEndianConverter.ReadInt32(serialized)); // 1 topic data Assert.AreEqual(offset.TopicsData.First().TopicName, Basics.DeserializeString(serialized)); Assert.AreEqual(1, BigEndianConverter.ReadInt32(serialized)); // 1 partition data var od = new OffsetPartitionData(); od.Deserialize(serialized, null); Assert.AreEqual(123, od.Partition); Assert.AreEqual(21341, od.Time); Assert.AreEqual(3, od.MaxNumberOfOffsets); } }