Пример #1
0
        private ConfluentResponse <List <AvroMessage <string, LogMessage> > > CreateTestRecords(int responseCount)
        {
            // Arrange
            var payload = Enumerable.Range(0, responseCount)
                          .Select(_ => CreateResult())
                          .ToList();

            return(ConfluentResponse <List <AvroMessage <string, LogMessage> > > .Success(payload));
        }
Пример #2
0
        public async Task <ConfluentResponse> DeleteConsumerAsync(ConsumerInstance consumerInstance, CancellationToken cancellationToken)
        {
            HttpRequestMessage request = CreateRequestMessage(HttpMethod.Delete, "", consumerInstance.BaseUri)
                                         .WithContentType(ContentTypeKafkaDefault)
                                         .WithHostHeader(consumerInstance.BaseUri);

            var response = await SendRequest(request, cancellationToken).ConfigureAwait(false);

            if (response.IsSuccessStatusCode)
            {
                return(ConfluentResponse.Success());
            }

            return(ConfluentResponse.Failed(await ReadResponseAs <Error>(response).ConfigureAwait(false)));
        }
Пример #3
0
        private async Task <ConfluentResponse <TResponse> > ProcessRequest <TResponse>(HttpRequestMessage request, CancellationToken cancellationToken)
            where TResponse : class
        {
            var response = await SendRequest(request, cancellationToken).ConfigureAwait(false);

            try
            {
                if (response.IsSuccessStatusCode)
                {
                    return(ConfluentResponse <TResponse> .Success(await ReadResponseAs <TResponse>(response).ConfigureAwait(false)));
                }

                return(ConfluentResponse <TResponse> .Failed(await ReadResponseAs <Error>(response).ConfigureAwait(false)));
            }
            catch (Exception e)
            {
                throw new ConfluentApiSerializationException("Failed to deserialize response", e);
            }
        }
Пример #4
0
 private static void SendResultToObserver <TK, TV>(
     ConfluentResponse <List <AvroMessage <TK, TV> > > result,
     IObserver <Try <Record <TK, TV> > > observer)
     where TK : class
     where TV : class
 {
     if (result.IsSuccess())
     {
         // flatten the result
         foreach (var record in result.Payload)
         {
             Console.WriteLine("Sending " + record.Value + " to observer");
             observer.OnNext(new Success <Record <TK, TV> >(new Record <TK, TV>(record.Key, record.Value)));
         }
     }
     else
     {
         Console.WriteLine("Got an error: " + result.Error.Message);
         observer.OnNext(new Failure <Record <TK, TV> >(
                             new Exception(result.Error.ErrorCode + ": " + result.Error.Message)));
     }
 }
Пример #5
0
 private Func<IConfluentClient, ConsumerInstance, string, Task<ConfluentResponse<List<AvroMessage<string, LogMessage>>>>> MockDataTask(
     ConfluentResponse<List<AvroMessage<string, LogMessage>>> confluentResponse)
 {
     return (_1, _2, _3) => Task.FromResult(confluentResponse);
 }
Пример #6
0
 private void WriteLog(ConfluentResponse response)
 {
     WriteLog(JsonConvert.SerializeObject(response, Formatting.Indented));
 }
Пример #7
0
 private ConfluentResponse <List <AvroMessage <string, LogMessage> > > CreateErrorMessage(int errorCode, string testError)
 {
     return(ConfluentResponse <List <AvroMessage <string, LogMessage> > > .Failed(new Error { ErrorCode = errorCode, Message = testError }));
 }
Пример #8
0
 private Func <IConfluentClient, ConsumerInstance, string, Task <ConfluentResponse <List <AvroMessage <string, LogMessage> > > > > MockDataTask(
     ConfluentResponse <List <AvroMessage <string, LogMessage> > > confluentResponse)
 {
     return((_1, _2, _3) => Task.FromResult(confluentResponse));
 }