public void GetTableControllerConfigProvider_ReturnsDefaultInstance() { // Arrange HttpConfiguration config = new HttpConfiguration(); // Act ITableControllerConfigProvider actual = config.GetTableControllerConfigProvider(); // Assert Assert.NotNull(actual); Assert.IsType<TableControllerConfigProvider>(actual); }
public void SetMobileAppControllerConfigProvider_ReturnsDefault_IfSetToNull() { // Arrange HttpConfiguration config = new HttpConfiguration(); // Act config.SetMobileAppControllerConfigProvider(null); ITableControllerConfigProvider actual = config.GetTableControllerConfigProvider(); // Assert Assert.NotNull(actual); Assert.IsType<TableControllerConfigProvider>(actual); }
public void SetMobileAppControllerConfigProvider_Roundtrips() { // Arrange TableControllerConfigProvider provider = new TableControllerConfigProvider(); HttpConfiguration config = new HttpConfiguration(); // Act config.SetTableControllerConfigProvider(provider); ITableControllerConfigProvider actual = config.GetTableControllerConfigProvider(); // Assert Assert.Same(provider, actual); }
public void WithTableControllerConfigProvider_AddsProvider() { // Arrange HttpConfiguration config = new HttpConfiguration(); var provider = new Mock<ITableControllerConfigProvider>(); // Act new MobileAppConfiguration() .WithTableControllerConfigProvider(provider.Object) .ApplyTo(config); // Assert Assert.Same(provider.Object, config.GetTableControllerConfigProvider()); }
public async Task WithTableControllerConfigProvider_RegistersProviderCorrectly() { // Arrange string output = string.Empty; var providerMock = new Mock<IMobileAppControllerConfigProvider>(); providerMock.Setup(p => p.Configure(It.IsAny<HttpControllerSettings>(), It.IsAny<HttpControllerDescriptor>())) .Callback(() => output += "1"); var tableProviderMock = new Mock<ITableControllerConfigProvider>(); tableProviderMock.Setup(p => p.Configure(It.IsAny<HttpControllerSettings>(), It.IsAny<HttpControllerDescriptor>())) .Callback(() => output += "2"); HttpConfiguration config = new HttpConfiguration(); var server = TestServer.Create(app => { // mock out the controller discovery to only find these var controllerTypesToReturn = new[] { typeof(MyTable1Controller), typeof(MyTable2Controller) }; SetupMockControllerResolver(config, controllerTypesToReturn); new MobileAppConfiguration() .WithTableControllerConfigProvider(tableProviderMock.Object) .WithMobileAppControllerConfigProvider(providerMock.Object) .AddTables() .ApplyTo(config); app.UseWebApi(config); }); var client = server.HttpClient; client.DefaultRequestHeaders.Add("ZUMO-API-VERSION", "2.0.0"); // Act // issue a request to initialize the config var result = await client.GetAsync("tables/mytable1"); // Assert Assert.Same(providerMock.Object, config.GetMobileAppControllerConfigProvider()); Assert.Same(tableProviderMock.Object, config.GetTableControllerConfigProvider()); // each provider should be called once for each TableController, in order. Assert.Equal("1212", output); }