elsa-core/test/shared/Elsa.Testing.Shared/AutoFixture/SpecimenBuilders/AutofixtureServiceProviderSpecimenBuilder.cs
Sipke Schoorstra 0c15c94ea7
Telnyx Activities (#768)
* Fix liquid syntax for accessing activity output

* Initial scaffolding of Telnyx module + API changes

* Make Telnyx Notification activity blocking

* Implement Telnyx correlation

* Post workflow suspension tasks improvements

* Add Telnyx activities

* Add HangupCall and TransferCall activities

* Call activity improvements
2021-03-17 13:07:14 +01:00

33 lines
1 KiB
C#

using System;
using AutoFixture.Kernel;
using Moq;
namespace Elsa.Testing.Shared.AutoFixture.SpecimenBuilders
{
/// <summary>
/// Creates a mock <see cref="IServiceProvider"/> which gets services
/// by resolving them from Autofixture.
/// </summary>
public class AutofixtureServiceProviderSpecimenBuilder : ISpecimenBuilder
{
public object Create(object request, ISpecimenContext context)
{
if(request.IsAnAutofixtureRequestForType<IServiceProvider>())
return GetServiceProvider(context);
return new NoSpecimen();
}
static object GetServiceProvider(ISpecimenContext context)
{
var provider = new Mock<IServiceProvider>();
provider.Name = $"Autofixture_{nameof(IServiceProvider)}-{Guid.NewGuid()}";
provider
.Setup(x => x.GetService(It.IsAny<Type>()))
.Returns((Type t) => context.Resolve(t));
return provider.Object;
}
}
}