Example #1
0
        public async Task GetGraphImportStatus_Success()
        {
            // Arrange
            var expectedResponse = new NeptuneLoaderStatusResponse {
                Status = "200 OK", LoadStatus = "LOAD_COMPLETED", StartTime = "1598252845"
            };

            _mockNeptuneLoaderConnector.Setup(x => x.GetStatus(It.IsAny <Guid>())).ReturnsAsync(expectedResponse);

            // Act
            var result = await _service.GetGraphImportStatus(It.IsAny <Guid>());

            // Assert
            Assert.NotNull(result);
            Assert.Equal(expectedResponse.Status, result.Status);
            Assert.Equal(expectedResponse.LoadStatus, result.LoadStatus);
            Assert.Equal(expectedResponse.StartTime, result.StartTime);
        }
        /// <summary>
        /// Get the import-status for the given load id.
        /// </summary>
        /// <param name="loadId">the id to fetch the status for</param>
        public async Task <NeptuneLoaderStatusResponse> GetStatus(Guid loadId)
        {
            using var client = _clientFactory.CreateClient();
            var path = $"{_loaderUrl}/{loadId}";

            var response = await client.GetAsync(path);

            var responseContent = await response.Content.ReadAsStringAsync();

            var neptuneResponse = JsonConvert.DeserializeObject <JObject>(responseContent);

            var status = new NeptuneLoaderStatusResponse
            {
                Status     = neptuneResponse["status"]?.ToString(),
                LoadStatus = neptuneResponse["payload"]?["overallStatus"]?["status"]?.ToString(),
                StartTime  = neptuneResponse["payload"]?["overallStatus"]?["startTime"]?.ToString()
            };

            return(status);
        }