public async Task EventRoutes_Lifecycle() { // arrange DigitalTwinsClient client = GetClient(); // Ensure unique eventRouteId and endpointName string eventRouteId = $"someEventRouteId-{GetRandom()}"; string filter = "$eventType = 'DigitalTwinTelemetryMessages' or $eventType = 'DigitalTwinLifecycleNotification'"; var eventRoute = new EventRoute(EndpointName) { Filter = filter }; // Test CreateEventRoute Response createEventRouteResponse = await client.CreateEventRouteAsync(eventRouteId, eventRoute).ConfigureAwait(false); createEventRouteResponse.Status.Should().Be((int)HttpStatusCode.NoContent); // Test GetEventRoute EventRoute getEventRouteResult = await client.GetEventRouteAsync(eventRouteId); eventRoute.EndpointName.Should().Be(getEventRouteResult.EndpointName); eventRoute.Filter.Should().Be(getEventRouteResult.Filter); eventRouteId.Should().Be(getEventRouteResult.Id); // Test GetEventRoutes var eventRoutesListOptions = new EventRoutesListOptions(); AsyncPageable <EventRoute> eventRouteList = client.GetEventRoutesAsync(eventRoutesListOptions); bool eventRouteFoundInList = false; await foreach (EventRoute eventRouteListEntry in eventRouteList) { if (StringComparer.Ordinal.Equals(eventRouteListEntry.Id, eventRouteId)) { eventRouteFoundInList = true; eventRoute.EndpointName.Should().Be(getEventRouteResult.EndpointName); eventRoute.Filter.Should().Be(getEventRouteResult.Filter); break; } } eventRouteFoundInList.Should().BeTrue("Newly created event route should have been present when listing all event routes"); // Test DeleteEventRoute Response deleteEventRouteResponse = await client.DeleteEventRouteAsync(eventRouteId).ConfigureAwait(false); deleteEventRouteResponse.Status.Should().Be((int)HttpStatusCode.NoContent); // Verify event route was deleted by trying to get it again // act Func <Task> act = async() => await client.GetEventRouteAsync(eventRouteId).ConfigureAwait(false); // assert act.Should().Throw <RequestFailedException>() .And.Status.Should().Be((int)HttpStatusCode.NotFound); }
private async Task <DigitalTwinsEventRoute> CreateEventRoute(DigitalTwinsClient client, string eventRouteId) { string filter = "type = 'Microsoft.DigitalTwins.Twin.Create' OR type = 'microsoft.iot.telemetry'"; var eventRoute = new DigitalTwinsEventRoute(EndpointName, filter); // Create an event route. Response createEventRouteResponse = await client.CreateEventRouteAsync(eventRouteId, eventRoute).ConfigureAwait(false); createEventRouteResponse.Status.Should().Be((int)HttpStatusCode.NoContent); return(eventRoute); }
public void EventRoutes_MalformedEventRouteFilter_ThrowsBadRequestException() { // arrange DigitalTwinsClient client = GetClient(); // Ensure unique eventRouteId and endpointName string eventRouteId = $"someEventRouteId-{GetRandom()}"; string filter = "this is not a valid filter string"; var eventRoute = new EventRoute(EndpointName, filter); // Test CreateEventRoute Func <Task> act = async() => await client.CreateEventRouteAsync(eventRouteId, eventRoute).ConfigureAwait(false); act.Should().Throw <RequestFailedException>() .And.Status.Should().Be((int)HttpStatusCode.BadRequest); }
public async Task CreateRouteAsync(RequestContext context) { var client = new DigitalTwinsClient(new Uri($"https://{context.Host}"), new DefaultAzureCredential()); EventRoute route = null; try { route = await client.GetEventRouteAsync(RouteId); } catch (RequestFailedException e) when(e.Status == 404) { } if (route == null) { _log.LogInformation($"Creating route for {context.InstanceName}"); await client.CreateEventRouteAsync(RouteId, new EventRoute(EndpointId) { Filter = "true" }); } }
/// <summary> /// Creates event route for digital Twin /// </summary> public async Task CreateEventRoute() { PrintHeader("CREATE EVENT ROUTE"); try { #region Snippet:DigitalTwinsSampleCreateEventRoute string eventFilter = "$eventType = 'DigitalTwinTelemetryMessages' or $eventType = 'DigitalTwinLifecycleNotification'"; var eventRoute = new EventRoute(eventhubEndpointName, eventFilter); await client.CreateEventRouteAsync(_eventRouteId, eventRoute); Console.WriteLine($"Created event route '{_eventRouteId}'."); #endregion Snippet:DigitalTwinsSampleCreateEventRoute } catch (Exception ex) { FatalError($"CreateEventRoute: Failed to create event route due to: {ex.Message}"); } }