/// <summary> /// Gets detailed info about an encoder job. /// </summary> /// <param name="flipEncodingCompleteData">Encode complete data to get Ids to find the encoding information.</param> /// <returns>Returns a Telestream Flip Encoding object. Returns null if not found.</returns> public Encoding GetEncodeInfo(FlipEncodingCompleteData flipEncodingCompleteData) { _ = flipEncodingCompleteData ?? throw new ArgumentNullException(nameof(flipEncodingCompleteData)); var encoding = _telestreamCloudClientProvider.FlipApi.GetEncoding(flipEncodingCompleteData.EncodingId, flipEncodingCompleteData.VideoPayload.FactoryId); return(encoding); }
public async Task HandleAsync_ShouldReturnTrueAndNotLog_WhenNoErrorsFailedEncode() { // Arrange var payload = new FlipPayload() { OperationContext = testOpCtx, FactoryId = "424242", OutputContainer = "https://someaccount.blob.core.windows.net/somecontainer" }; var flipEncodeCompleteData = new FlipEncodingCompleteData() { EncodingId = "444", EncodingStatus = "777", OriginalFilename = "bbb.mp4", EventName = "flip", ServiceName = "flip", VideoId = "999", VideoPayload = payload, }; var appInsightsUri = new Uri("https://www.appinsights.com"); var eventToPublish = new EventGridEvent() { Id = Guid.NewGuid().ToString(), Data = JObject.FromObject(flipEncodeCompleteData), EventTime = DateTime.Now, EventType = ExternalEventTypes.FlipEncodingComplete, Subject = $"/EncodeCompleted/sagaid", DataVersion = "1.0", }; var expectedEventToPublishCaptureMatch = new CaptureMatch <EventGridEvent>(x => { // Assert values in the object passed to the publisher: x.EventType.ShouldBe(CustomEventTypes.ResponseFailure); }); // Arrange Mocks Mock.Get(_eventGridPublisher).Setup(x => x.PublishEventToTopic(Capture.With(expectedEventToPublishCaptureMatch))) .ReturnsAsync(true); Mock.Get(_logger) .Setup(x => x.LogEventObject( out appInsightsUri, LogEventIds.EncodeCompleteFailure, It.IsAny <object>())); Mock.Get(_flipService) .Setup(x => x.GetEncodeInfo(It.IsAny <FlipEncodingCompleteData>())) .Returns(new Telestream.Cloud.Flip.Model.Encoding { ErrorClass = "ErrorClass", ErrorMessage = "ErrorMessage" }); // Act var handleAsyncResult = await _handler.HandleAsync(eventToPublish).ConfigureAwait(false); // Assert handleAsyncResult.ShouldBe(true, "handleAsync should always return false"); }