public async Task ReadModelCatchup_queries_event_subtypes_correctly() { var subclassedEventsWritten = 0; Events.Write(100, _ => { var @event = Any.Bool() ? Events.Any() : new CustomerAccount.OrderShipConfirmationEmailSent(); if (@event is EmailSent) { subclassedEventsWritten++; } return(@event); }); var projector = Projector.Create <EmailSent>(e => { }).Named(MethodBase.GetCurrentMethod().Name); var eventsQueried = 0; using (var catchup = CreateReadModelCatchup(projector)) { catchup.Progress .Where(s => !s.IsStartOfBatch) .ForEachAsync(s => { eventsQueried++; }); await catchup.Run() .ContinueWith(r => catchup.Dispose()); Console.WriteLine(new { eventsQueried }); } eventsQueried.Should().Be(subclassedEventsWritten); }
public async Task ReadModelCatchup_queries_scheduled_commands_if_CommandScheduled_is_subscribed() { var scheduledCommandsWritten = 0; var scheduledCommandsQueried = 0; Events.Write(50, _ => { if (Any.Bool()) { return(Events.Any()); } scheduledCommandsWritten++; return(new CommandScheduled <Order> { Command = new Ship(), DueTime = DateTimeOffset.UtcNow }); }); var projector = Projector.Create <CommandScheduled <Order> >(e => { }).Named(MethodBase.GetCurrentMethod().Name); var eventsQueried = 0; using (var catchup = CreateReadModelCatchup(projector)) using (var eventStore = EventStoreDbContext()) { catchup.Progress .Where(s => !s.IsStartOfBatch) .ForEachAsync(s => { var eventId = s.CurrentEventId; var @event = eventStore.Events.Single(e => e.Id == eventId); if (@event.Type.StartsWith("Scheduled:")) { scheduledCommandsQueried++; } eventsQueried++; }); await catchup.Run() .ContinueWith(r => catchup.Dispose()); Console.WriteLine(new { eventsQueried }); } scheduledCommandsQueried.Should().Be(scheduledCommandsWritten); }
public static OdcmProjection AnyOdcmProjection(this OdcmType odcmType) { var projection = new OdcmProjection { Type = odcmType, Capabilities = new List <OdcmCapability>() }; var capabilityTerms = OdcmProjection .WellKnowCapabilityTerms .Distinct(); foreach (var term in capabilityTerms) { projection.Capabilities.Add(new OdcmBooleanCapability(Any.Bool(), term)); } return(projection); }
public void When_multiple_trigger_callbacks_are_registered_and_one_fails_Then_the_remaining_callbacks_are_notified_the_request_succeeds() { ConfigurationManagerExtensions.AddFakeAppServiceRuntimeSettings(); var packageUri = Any.Uri(); var callbackPaths = Any.Sequence(x => Any.UriPath(1)).ToList(); using (var mockService = new MockService()) { using (var server = Microsoft.Owin.Testing.TestServer.Create <Startup>()) { foreach (var callbackPath in callbackPaths) { var closurePath = "/" + callbackPath; if (Any.Bool()) { mockService .OnRequest(r => r.Path.ToString() == closurePath) .RespondWith(r => r.StatusCode = 200); } var callbackUri = mockService.GetBaseAddress() + callbackPath; server.HttpClient.PutAsync(String.Format("/api/Trigger?triggerId={0}", Any.Guid()), Any.Azure.AppServiceTrigger.MyGetConnectorTriggerBody(callbackUri) .ToJsonStringContent()) .Wait(); } server .HttpClient .AsMyGetTriggerSource() .PostAsync("/api/MyGetWebhook/", Any.MyGet.WebHooks.PackageAddedPayload(packageUri).ToJsonStringContent("application/vnd.myget.webhooks.v1+json")) .Result .ShouldSucceed(); } } }