redb.Route.TestKit
4.2.2
Prefix Reserved
dotnet add package redb.Route.TestKit --version 4.2.2
NuGet\Install-Package redb.Route.TestKit -Version 4.2.2
<PackageReference Include="redb.Route.TestKit" Version="4.2.2" />
<PackageVersion Include="redb.Route.TestKit" Version="4.2.2" />
<PackageReference Include="redb.Route.TestKit" />
paket add redb.Route.TestKit --version 4.2.2
#r "nuget: redb.Route.TestKit, 4.2.2"
#:package redb.Route.TestKit@4.2.2
#addin nuget:?package=redb.Route.TestKit&version=4.2.2
#tool nuget:?package=redb.Route.TestKit&version=4.2.2
redb.Route.TestKit
Test a route without its brokers, without changing the route. Works with xUnit, NUnit and MSTest:
assertions throw MockAssertionException, no test-framework dependency.
await using var ctx = new RouteContext().AddRoutes(new OrdersRoutes());
ctx.AdviceRoute("orders", a => a
.ReplaceFrom("direct://test-in") // instead of kafka://orders
.MockEndpoints("kafka://*", "sql:*")); // every matching To(...) goes to a mock
await ctx.Start();
var vip = ctx.Mock("kafka://orders-vip");
vip.ExpectMessageCount(1).ExpectHeader("priority", "high");
await ctx.SendBody("direct://test-in", order);
await vip.AssertIsSatisfiedAsync(TimeSpan.FromSeconds(2));
What is inside
| API | Purpose |
|---|---|
ctx.AdviceRoute(routeId, a => ...) |
rewrite a route definition before Start(): ReplaceFrom, MockEndpoints, MockEndpointsAndSkip, WeaveById, WeaveByToUri, WeaveAddFirst, WeaveAddLast |
ctx.Mock(uri) |
the MockEndpoint standing in for uri (original URI or mock://name) |
MockEndpoint.Expect* |
ExpectMessageCount, ExpectMinimumMessageCount, ExpectBodies, ExpectBodiesInAnyOrder, ExpectHeader, ExpectHeaderReceived, ExpectProperty, Expect(predicate / condition string) |
MockEndpoint.AssertIsSatisfiedAsync(timeout) |
waits, then fails with an "Expected / but was" diff and the bodies received |
MockEndpoint.Whenever(n) / WheneverAny() |
scripted replies: SetBody, SetHeader, Delay, Throw, Do — for Enrich and request-reply through mock:// |
ctx.Notify().FromRoute("orders").WhenDone(3).Create() |
wait for route events (WhenReceived, WhenCompleted, WhenFailed, WhenDone, From(uriMask), Filter(condition)) without a mock at the end |
ctx.SendBody, ctx.SendBodyAndHeaders, ctx.RequestBody<T> |
one-line sends instead of endpoint/producer plumbing |
URI masks (MockEndpoints, WeaveByToUri, Notify().From): exact URI, prefix with a trailing *
(kafka://*), or regex:<expression>. Query strings are ignored for matching.
MockEndpoints rewrites the static To(...) steps of the advised route; a dynamic ToD(...)
resolves its URI per message and is not rewritten — point it at a mock:// URI through the
message instead.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- redb.Route (>= 4.2.2)
-
net8.0
- redb.Route (>= 4.2.2)
-
net9.0
- redb.Route (>= 4.2.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.