public void PutUpdateData_Local_ShouldUpdate() { var changes = new OsmChange { Create = new OsmGeo[] { new Node() } }; _osmLatestFileFetcherExecutor.GetUpdates().Returns(CreateStream(changes)); SetupContext(IPAddress.Parse("1.2.3.4"), IPAddress.Loopback); _controller.PutUpdateData().Wait(); _databasesUpdaterService.Received(1).Update(Arg.Is <OsmChange>(x => x.Create.Length == changes.Create.Length)); }
public async Task <IActionResult> PutUpdateData() { if (!IsRequestLocal()) { return(BadRequest("This operation can't be done from a remote client, please run this from the server")); } if (!RebuildSemaphore.WaitOne(0)) { return(BadRequest("Can't run update while full update is running")); } RebuildSemaphore.Release(); await UpdateSemaphore.WaitAsync(); try { _logger.LogInformation("Starting incremental site's databases update"); using (var updatesStream = await _osmLatestFileFetcherExecutor.GetUpdates()) { XmlSerializer serializer = new XmlSerializer(typeof(OsmChange)); var changes = (OsmChange)serializer.Deserialize(updatesStream); await _elasticSearchUpdaterService.Update(changes); } _logger.LogInformation("Finished incremental site's databases update"); return(Ok()); } finally { UpdateSemaphore.Release(); } }
public void GetUpdates_ShouldFetchFile() { _fetcher.GetUpdates().Wait(); _processHelper.Received(2).Start(Arg.Any <string>(), Arg.Any <string>(), Arg.Any <string>()); }