public async Task BindModelAsync_ReturnsNonEmptyResult_ForAllTypes_WithHeaderBindingSource(Type type) { // Arrange var binder = new HeaderModelBinder(); var bindingContext = GetBindingContext(type); // Act await binder.BindModelAsync(bindingContext); // Assert Assert.False(bindingContext.Result.IsModelSet); }
public async Task HeaderBinder_ReturnsFailedResult_ForCollectionsItCannotCreate() { // Arrange var header = "Accept"; var headerValue = "application/json,text/json"; var binder = new HeaderModelBinder(); var bindingContext = GetBindingContext(typeof(ISet <string>)); bindingContext.FieldName = header; bindingContext.HttpContext.Request.Headers.Add(header, new[] { headerValue }); // Act await binder.BindModelAsync(bindingContext); // Assert Assert.False(bindingContext.Result.IsModelSet); Assert.Null(bindingContext.Result.Model); }
public async Task HeaderBinder_ReturnsFailedResult_ForReadOnlyDestination() { // Arrange var header = "Accept"; var headerValue = "application/json,text/json"; var binder = new HeaderModelBinder(); var bindingContext = GetBindingContextForReadOnlyArray(); bindingContext.FieldName = header; bindingContext.HttpContext.Request.Headers.Add(header, new[] { headerValue }); // Act await binder.BindModelAsync(bindingContext); // Assert Assert.False(bindingContext.Result.IsModelSet); Assert.Null(bindingContext.Result.Model); }
public async Task HeaderBinder_BindsHeaders_ToStringType_WithoutInnerModelBinder(HeaderModelBinder binder) { // Arrange var type = typeof(string); var header = "User-Agent"; var headerValue = "UnitTest"; var bindingContext = CreateContext(type); bindingContext.FieldName = header; bindingContext.HttpContext.Request.Headers.Add(header, new[] { headerValue }); // Act await binder.BindModelAsync(bindingContext); // Assert Assert.True(bindingContext.Result.IsModelSet); Assert.Equal(headerValue, bindingContext.Result.Model); }
public async Task HeaderBinder_BindsHeaders_ForCollectionsItCanCreate(Type destinationType) { // Arrange var header = "Accept"; var headerValue = "application/json,text/json"; var binder = new HeaderModelBinder(); var bindingContext = GetBindingContext(destinationType); bindingContext.FieldName = header; bindingContext.HttpContext.Request.Headers.Add(header, new[] { headerValue }); // Act await binder.BindModelAsync(bindingContext); // Assert Assert.True(bindingContext.Result.IsModelSet); Assert.IsAssignableFrom(destinationType, bindingContext.Result.Model); Assert.Equal(headerValue.Split(','), bindingContext.Result.Model as IEnumerable <string>); }
public async Task HeaderBinder_BindsHeaders_ToStringCollection() { // Arrange var type = typeof(string[]); var header = "Accept"; var headerValue = "application/json,text/json"; var binder = new HeaderModelBinder(); var bindingContext = GetBindingContext(type); bindingContext.FieldName = header; bindingContext.HttpContext.Request.Headers.Add(header, new[] { headerValue }); // Act await binder.BindModelAsync(bindingContext); // Assert Assert.True(bindingContext.Result.IsModelSet); Assert.Equal(headerValue.Split(','), bindingContext.Result.Model); }
public async Task HeaderBinder_BindsHeaders_ToStringType() { // Arrange var type = typeof(string); var header = "User-Agent"; var headerValue = "UnitTest"; var binder = new HeaderModelBinder(NullLoggerFactory.Instance); var bindingContext = GetBindingContext(type); bindingContext.FieldName = header; bindingContext.HttpContext.Request.Headers.Add(header, new[] { headerValue }); // Act await binder.BindModelAsync(bindingContext); // Assert Assert.True(bindingContext.Result.IsModelSet); Assert.Equal(headerValue, bindingContext.Result.Model); }