From f58f19c26da8ef2cb9b7cccf6671f30628a5441f Mon Sep 17 00:00:00 2001 From: Maksym Kucherov Date: Mon, 18 Sep 2023 16:13:44 +0300 Subject: [PATCH] Report multiple calls to `RefreshData` due to `FileSystemWatcher` as inconclusive result. --- .../Services/DataUpdateServiceTests.cs | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/Tests/FiftyOne.Pipeline.Engines.Tests/Services/DataUpdateServiceTests.cs b/Tests/FiftyOne.Pipeline.Engines.Tests/Services/DataUpdateServiceTests.cs index a8b17cf2..5dc83fdb 100644 --- a/Tests/FiftyOne.Pipeline.Engines.Tests/Services/DataUpdateServiceTests.cs +++ b/Tests/FiftyOne.Pipeline.Engines.Tests/Services/DataUpdateServiceTests.cs @@ -383,8 +383,19 @@ public void DataUpdateService_UpdateFromWatcher() // Assert Assert.IsTrue(completeFlag.IsSet, "The 'CheckForUpdateComplete' " + - "event was never fired"); - engine.Verify(e => e.RefreshData(config.Identifier), Times.Once()); + "event was never fired"); + + // TODO: Make sure `RefreshData` is called actually once regardless of microsecond fluctuations in the 3 change dates + engine.Verify(e => e.RefreshData(config.Identifier), Times.AtLeastOnce()); + try + { + engine.Verify(e => e.RefreshData(config.Identifier), Times.Once()); + } + catch (MockException e) + { + Assert.Inconclusive($"{nameof(IOnPremiseAspectEngine.RefreshData)} called more than once: {e}"); + } + // FileSystemWatcher often fires multiple events for a single file. // As long as the update was successful once, the test is passed. Assert.IsTrue(completeEventArgs.Any(e => e.Status == AutoUpdateStatus.AUTO_UPDATE_SUCCESS));