public void GetReadableAccessorAsync_GivenUnsupportedObjectProviderName_ShouldThrowException() { var expectedProviderName = "expected-provider"; var actualProviderName = "actual-provider"; var mockServiceProvider = new Mock <IServiceProvider>(); var mockInputObjectAccessorProvider = new Mock <IInputObjectAccessorProvider>(); var accessorProviderFactory = new NamedServiceFactory <IInputObjectAccessorProvider>( new Dictionary <string, Func <IServiceProvider, IInputObjectAccessorProvider> > { [expectedProviderName] = sp => mockInputObjectAccessorProvider.Object }); var accessorRequest = new InputObjectAccessorRequest { ExecutionMetadata = new ExecutionRequest { ExecutionId = Guid.NewGuid().ToString() }, ObjectMetadata = new ExtensionInputObject { Name = "InputObjectA" }, ObjectProviderName = actualProviderName }; var testAccessorProvider = new CompositeInputObjectAccessorProvider( mockServiceProvider.Object, accessorProviderFactory); Func <Task> act = async() => await testAccessorProvider.GetReadableAccessorAsync(accessorRequest); act.Should().Throw <NotSupportedException>(); }
public void GetReadableAccessorAsync_GivenNullInputObjectAccessorRequest_ShouldThrowException() { var mockServiceProvider = new Mock <IServiceProvider>(); var accessorProviderFactory = new NamedServiceFactory <IInputObjectAccessorProvider>(); var testAccessorProvider = new CompositeInputObjectAccessorProvider( mockServiceProvider.Object, accessorProviderFactory); Func <Task> act = async() => await testAccessorProvider.GetReadableAccessorAsync(null); act.Should().Throw <ArgumentNullException>(); }
public async Task GetReadableAccessorAsync_GivenSupportedObjectProviderName_ShouldReturnAccessor() { var providerName = "provider"; var mockServiceProvider = new Mock <IServiceProvider>(); var mockInputObjectAccessorProvider = new Mock <IInputObjectAccessorProvider>(); var objectMetadata = new ExtensionInputObject { Name = "InputObjectA" }; var accessorProviderFactory = new NamedServiceFactory <IInputObjectAccessorProvider>( new Dictionary <string, Func <IServiceProvider, IInputObjectAccessorProvider> > { [providerName] = sp => mockInputObjectAccessorProvider.Object }); var accessorRequest = new InputObjectAccessorRequest { ExecutionMetadata = new ExecutionRequest { ExecutionId = Guid.NewGuid().ToString() }, ObjectMetadata = objectMetadata, ObjectProviderName = providerName }; var expectedAccessor = JObject.FromObject(new InputObjectAccessor { ObjectAccessor = JObject.FromObject(accessorRequest), ObjectMetadata = objectMetadata }); mockInputObjectAccessorProvider.Setup(ap => ap.GetReadableAccessorAsync(accessorRequest)) .Returns(Task.FromResult(expectedAccessor)); var testAccessorProvider = new CompositeInputObjectAccessorProvider( mockServiceProvider.Object, accessorProviderFactory); var actualAccessor = await testAccessorProvider.GetReadableAccessorAsync(accessorRequest); actualAccessor.Should().NotBeNull(); actualAccessor.Should().BeEquivalentTo(expectedAccessor); }