using MeetingAssistant.Transcription; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; using Microsoft.Extensions.Options; namespace MeetingAssistant.Tests; public sealed class ConfiguredSpeechRecognitionPipelineFactoryTests { [Fact] public async Task FactoryCreatesAzureSpeechPipelineWhenConfigured() { var services = new ServiceCollection(); services.AddSingleton(Options.Create(new MeetingAssistantOptions { Recording = new RecordingOptions { TranscriptionProvider = "azure-speech" } })); services.AddSingleton>( NullLogger.Instance); services.AddTransient(); var provider = services.BuildServiceProvider(); var factory = new ConfiguredSpeechRecognitionPipelineFactory( provider, provider.GetRequiredService>()); await using var pipeline = factory.Create(); Assert.IsType(pipeline); } }