コード例 #1
0
        public void Properties()
        {
            var tpoe = new TopicPartitionOffsetError("mytopic", 42, 107, ErrorCode.NoError);

            Assert.Equal(tpoe.TopicPartition, new TopicPartition("mytopic", 42));
            Assert.Equal(tpoe.TopicPartitionOffset, new TopicPartitionOffset("mytopic", 42, 107));
        }
コード例 #2
0
        private long GetOffsetValue(TopicPartitionOffsetError tpo)
        {
            if (!tpo.Offset.IsSpecial)
            {
                return(tpo.Offset.Value);
            }

            var offset = tpo.Offset;

            if (offset == Offset.Invalid)
            {
                // TODO: Check configuration
                offset = Offset.End;
            }

            if (offset == Offset.Beginning)
            {
                return(GetLowOffset(tpo.Partition));
            }

            if (offset == Offset.End)
            {
                return(GetLowOffset(tpo.Partition));
            }

            throw new InvalidKafkaResponseException($"Cannot understand special offset value of {tpo} for ");
        }
コード例 #3
0
        public void Constuctor()
        {
            var tpoe = new TopicPartitionOffsetError("mytopic", 42, 107, ErrorCode.Local_BadMsg);

            Assert.Equal(tpoe.Topic, "mytopic");
            Assert.Equal(tpoe.Partition, 42);
            Assert.Equal(tpoe.Offset, 107);
            Assert.Equal(tpoe.Error, new Error(ErrorCode.Local_BadMsg));
        }
コード例 #4
0
        public void ToStringTest()
        {
            var tpoe = new TopicPartitionOffsetError("mytopic", 42, 107, ErrorCode.Local_BadMsg);

            Assert.True(tpoe.ToString().Contains(tpoe.Topic));
            Assert.True(tpoe.ToString().Contains(tpoe.Partition.ToString()));
            Assert.True(tpoe.ToString().Contains(tpoe.Offset.ToString()));
            Assert.True(tpoe.ToString().Contains(tpoe.Error.ToString()));
            Assert.True(tpoe.ToString().Contains(tpoe.Error.Reason));
        }
コード例 #5
0
        public void ToStringTest()
        {
            var tpoe = new TopicPartitionOffsetError("mytopic", 42, 107, ErrorCode._BAD_MSG);

            Assert.True(tpoe.ToString().Contains(tpoe.Topic));
            Assert.True(tpoe.ToString().Contains(tpoe.Partition.ToString()));
            Assert.True(tpoe.ToString().Contains(tpoe.Offset.ToString()));
            Assert.True(tpoe.ToString().Contains(((int)tpoe.Error.Code).ToString()));
            Assert.True(tpoe.ToString().Contains(tpoe.Error.Message));
        }
コード例 #6
0
        public void ExplicitCast()
        {
            var tpoe = new TopicPartitionOffsetError("mytopic", 42, 107, ErrorCode.NoError);
            var tpo  = (TopicPartitionOffset)tpoe;

            Assert.Equal(tpoe.TopicPartitionOffset, tpo);

            tpoe = new TopicPartitionOffsetError("mytopic", 42, 107, ErrorCode.Local_BadMsg);
            Assert.Throws <KafkaException>(() => (TopicPartitionOffset)tpoe);
        }
コード例 #7
0
        public void NullEquality()
        {
            var tpoe1 = new TopicPartitionOffsetError("a", 31, 55, ErrorCode.NoError);
            TopicPartitionOffsetError tpoe2 = null;
            TopicPartitionOffsetError tpoe3 = null;

            Assert.NotEqual(tpoe1, tpoe2);
            Assert.False(tpoe1.Equals(tpoe2));
            Assert.False(tpoe1 == tpoe2);
            Assert.True(tpoe1 != tpoe2);

            Assert.NotEqual(tpoe2, tpoe1);
            Assert.False(tpoe2 == tpoe1);
            Assert.True(tpoe2 != tpoe1);

            Assert.Equal(tpoe2, tpoe3);
            Assert.True(tpoe2 == tpoe3);
            Assert.False(tpoe2 != tpoe3);
        }
コード例 #8
0
        public static void LogOffsetCommitError(
            this ISilverbackLogger logger,
            TopicPartitionOffsetError topicPartitionOffsetError,
            KafkaConsumer consumer)
        {
            if (!logger.IsEnabled(KafkaLogEvents.OffsetCommitError))
            {
                return;
            }

            OffsetCommitError(
                logger.InnerLogger,
                topicPartitionOffsetError.Topic,
                topicPartitionOffsetError.Partition,
                topicPartitionOffsetError.Offset,
                GetErrorReason(topicPartitionOffsetError.Error),
                (int)topicPartitionOffsetError.Error.Code,
                consumer.Id,
                null);
        }
コード例 #9
0
        public void Equality()
        {
            var a   = new TopicPartitionOffsetError("a", 31, 55, ErrorCode.NoError);
            var a2  = new TopicPartitionOffsetError("a", 31, 55, ErrorCode.NoError);
            var nes = new List <TopicPartitionOffsetError> {
                new TopicPartitionOffsetError("b", 31, 55, ErrorCode.NoError),
                new TopicPartitionOffsetError("a", 32, 55, ErrorCode.NoError),
                new TopicPartitionOffsetError("a", 31, 56, ErrorCode.NoError),
                new TopicPartitionOffsetError("a", 31, 55, ErrorCode.Local_Conflict),
            };

            Assert.Equal(a, a2);
            Assert.True(a.Equals(a2));
            Assert.True(a == a2);
            Assert.False(a != a2);

            foreach (var ne in nes)
            {
                Assert.NotEqual(a, ne);
                Assert.False(a.Equals(ne));
                Assert.False(a == ne);
                Assert.True(a != ne);
            }
        }