Public Access
35 lines
1.2 KiB
C#
35 lines
1.2 KiB
C#
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<ILogger<AzureSpeechStreamingTranscriptionProvider>>(
|
|
NullLogger<AzureSpeechStreamingTranscriptionProvider>.Instance);
|
|
services.AddTransient<AzureSpeechStreamingTranscriptionProvider>();
|
|
var provider = services.BuildServiceProvider();
|
|
var factory = new ConfiguredSpeechRecognitionPipelineFactory(
|
|
provider,
|
|
provider.GetRequiredService<IOptions<MeetingAssistantOptions>>());
|
|
|
|
await using var pipeline = factory.Create();
|
|
|
|
Assert.IsType<AzureSpeechRecognitionPipeline>(pipeline);
|
|
}
|
|
}
|