Пример #1
0
        /// <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);
        }
Пример #2
0
        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");
        }