Our backend consists of a WebApi backend sporting an async CQS API (Not involving Event sourcing). I wanted a fluent syntax setup for our scenario tests, here is an actual example from the resulting code. (Code removed that are customer specific)
[TestClass] public class When_doing_a_complete_booking : BusinessTest { private Booking _result; private DateTime _date; [TestInitialize] public void Context() { Guid bookingKey = Guid.Empty; _date = DateTime.Now.AddDays(5); _result = Given(db => /* Setup here */) .When(() => new SearchQuery{ Date = _date, ...}) .And(result => { bookingKey = result.First().BookingKey; return new ReserveCommand { BookingKey = bookingKey, ... }; }) .And(() => new ConfirmCommand { BookingKey = bookingKey, ... }) .Then(db => db.Set<Booking>().FirstOrDefaultAsync(b => b.BookingKey == bookingKey)); } [TestMethod] public void It_should_book_correctly () { Assert.IsNotNull(_result); Assert.IsTrue(...); } }