Tiver.Fowl.Waiting 0.4.2

dotnet add package Tiver.Fowl.Waiting --version 0.4.2
NuGet\Install-Package Tiver.Fowl.Waiting -Version 0.4.2
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Tiver.Fowl.Waiting" Version="0.4.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Tiver.Fowl.Waiting --version 0.4.2
#r "nuget: Tiver.Fowl.Waiting, 0.4.2"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Tiver.Fowl.Waiting as a Cake Addin
#addin nuget:?package=Tiver.Fowl.Waiting&version=0.4.2

// Install Tiver.Fowl.Waiting as a Cake Tool
#tool nuget:?package=Tiver.Fowl.Waiting&version=0.4.2

tiver-fowl.Waiting

"Wait" implementation. Allows to process given condition until timeout is reached. Overall timeout and polling interval are configurable. Appearing exceptions can be ignored so processing of condition continues.

Branch status

Branch Package CI
master (stable) NuGet Build status
develop NuGet Pre Release Build status

Configurable

Can be configured via Tiver_config.json file in following way:

{
  "Tiver.Fowl.Waiting": {
    "Timeout": 1000,
    "PollingInterval": 250
  }
}

Full configuration can look like following:

{
  "Tiver.Fowl.Waiting": {
    "Timeout": 5000,
    "PollingInterval": 250,
    "ExtendOnTimeout": true,
    "ExtendedTimeout": 15000,
    "IgnoredExceptionsTypeNames": [
      "System.ArgumentException",
      "NUnit.Framework.AssertionException, NUnit.Framework"
    ]
  }
}

Loggable

Produces debug log. Uses Microsoft.Extensions.Logging.Abstractions

Logger instance can be configured using static method: Wait.SetLogger(loggerInstance)

Timeout Exception

Throws Tiver.Fowl.Waiting.Exceptions.WaitTimeoutException on timeout

Ignoring Exceptions

You can ignore exceptions during Wait

// Following code throws System.DivideByZeroException
var zero = 0;
var wait = Wait.Until(() => 2 / zero);

// Following code continue execution before timeout occurs
var zero = 0;
var wait = Wait.Until(() => 2 / zero, new WaitConfiguration(typeof(DivideByZeroException)));

Samples

Simple Wait (use Tiver_config.json values or defaults)

var result = Wait.Until(() => 2 + 2);
Assert.AreEqual(4, result);

Simple Wait with specific config

var config = new WaitConfiguration(1000, 250);
var result = Wait.Until(() => 2 + 2, config);
Assert.AreEqual(4, result);

Extensible Wait

var config = new WaitConfiguration(1000, 250, 5000);
var result = Wait.Until(() => 2 + 2, config);
Assert.AreEqual(4, result);

Custom exit condition (Default one - result is not null)

var counter = 0;
var result = Wait.Until(() => counter += 1, result => result == 10);
Assert.AreEqual(10, result);
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Tiver.Fowl.Waiting:

Package Downloads
Tiver.Fowl

A framework for writing Automated Integration tests (including tests via Selenium).

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
0.4.2 108 1/3/2024
0.4.2-codespace0001 67 1/3/2024
0.4.2-alpha0017 82 1/3/2024
0.4.1-alpha0005 124 9/29/2022
0.4.0 375 9/29/2022
0.3.3-alpha0005 193 9/13/2022
0.3.2 602 9/13/2022
0.3.2-alpha0007 115 9/2/2022
0.3.1 386 9/2/2022
0.3.1-alpha0015 113 9/2/2022
0.3.1-alpha0013 148 1/9/2022
0.3.0 285 1/9/2022
0.2.3-net6-update0001 146 1/7/2022
0.2.3-alpha0010 144 1/8/2022
0.2.3-alpha0004 203 2/27/2021
0.2.2 360 2/27/2021
0.2.2-alpha0017 236 2/27/2021
0.2.1 340 2/27/2021
0.2.1-alpha0026 237 2/27/2021
0.2.1-alpha0025 236 2/27/2021
0.2.1-alpha0024 242 2/27/2021
0.2.1-alpha0003 372 5/24/2020
0.2.1-alpha0001 333 5/10/2020
0.2.0 716 5/10/2020
0.1.5 1,851 10/5/2018
0.1.5-PullRequest0001 643 8/10/2018
0.1.5-alpha0011 310 5/10/2020
0.1.5-alpha0010 312 5/10/2020
0.1.5-alpha0009 348 5/10/2020
0.1.5-alpha0004 544 10/5/2018
0.1.5-alpha0001 848 3/6/2018
0.1.4 967 3/6/2018
0.1.4-alpha0007 883 3/6/2018
0.1.4-alpha0006 898 3/6/2018
0.1.4-alpha0005 811 3/6/2018
0.1.4-alpha0004 775 3/6/2018
0.1.4-alpha0001 821 12/6/2017
0.1.3 862 11/29/2017
0.1.3-alpha0014 802 12/6/2017
0.1.3-alpha0013 790 12/6/2017
0.1.3-alpha0012 698 11/29/2017
0.1.3-alpha0011 679 11/29/2017
0.1.3-alpha0010 689 11/28/2017
0.1.3-alpha0009 728 11/28/2017
0.1.3-alpha0008 710 11/28/2017
0.1.3-alpha0007 715 11/28/2017
0.1.3-alpha0006 688 11/21/2017
0.1.3-alpha0005 683 11/21/2017
0.1.3-alpha0003 667 11/21/2017
0.1.2 940 11/15/2017
0.1.1 866 9/1/2017
0.1.0 1,108 7/25/2017