public async Task Add_ShallRetryOnFailure() { _kubernetesClient .Setup(p => p.CreateNamespacedCustomObjectWithHttpMessagesAsync(It.IsAny <CustomResourceDefinition>(), It.IsAny <object>())) .Throws(new HttpOperationException("error message") { Response = new HttpResponseMessageWrapper(new HttpResponseMessage(HttpStatusCode.Conflict), "error content") }); var inferenceRequest = new InferenceRequest(); inferenceRequest.JobId = Guid.NewGuid().ToString(); inferenceRequest.PayloadId = Guid.NewGuid().ToString(); inferenceRequest.TransactionId = Guid.NewGuid().ToString(); var store = new InferenceRequestStore(_loggerFactory.Object, _configuration, _kubernetesClient.Object); await Assert.ThrowsAsync <HttpOperationException>(async() => await store.Add(inferenceRequest)); _logger.VerifyLoggingMessageBeginsWith($"Failed to add new inference request with JobId={inferenceRequest.JobId}, TransactionId={inferenceRequest.TransactionId} in CRD", LogLevel.Warning, Times.Exactly(3)); _kubernetesClient.Verify(p => p.CreateNamespacedCustomObjectWithHttpMessagesAsync(It.IsAny <CustomResourceDefinition>(), It.IsAny <object>()), Times.Exactly(4)); }
public async Task Add_ShallAddItemToCrd() { _kubernetesClient .Setup(p => p.CreateNamespacedCustomObjectWithHttpMessagesAsync(It.IsAny <CustomResourceDefinition>(), It.IsAny <object>())) .Returns(Task.FromResult(new HttpOperationResponse <object> { Response = new HttpResponseMessage() })); var inferenceRequest = new InferenceRequest(); inferenceRequest.JobId = Guid.NewGuid().ToString(); inferenceRequest.PayloadId = Guid.NewGuid().ToString(); inferenceRequest.TransactionId = Guid.NewGuid().ToString(); var store = new InferenceRequestStore(_loggerFactory.Object, _configuration, _kubernetesClient.Object); await store.Add(inferenceRequest); _logger.VerifyLoggingMessageBeginsWith($"Failed to add new inference request with JobId={inferenceRequest.JobId}, TransactionId={inferenceRequest.TransactionId} in CRD", LogLevel.Warning, Times.Never()); _kubernetesClient.Verify(p => p.CreateNamespacedCustomObjectWithHttpMessagesAsync(It.IsAny <CustomResourceDefinition>(), It.IsAny <object>()), Times.Once()); _logger.VerifyLoggingMessageBeginsWith($"Inference request saved. JobId={inferenceRequest.JobId}, TransactionId={inferenceRequest.TransactionId} in CRD", LogLevel.Warning, Times.Never()); }