public void FirstDispositionTypeThrows() { Assert.ThrowsArgumentNull(() => { HttpContentCollectionExtensions.FirstDispositionType(null, "A"); }, "contents"); IEnumerable <HttpContent> content = HttpContentCollectionExtensionsTests.CreateContent(); Assert.ThrowsArgumentNull(() => { HttpContentCollectionExtensions.FirstDispositionType(content, null); }, "dispositionType"); foreach (string empty in TestData.EmptyStrings) { Assert.ThrowsArgumentNull(() => { HttpContentCollectionExtensions.FirstDispositionType(content, empty); }, "dispositionType"); } }
/// <summary> /// Returns the first <see cref="HttpContent"/> in a sequence that has a <see cref="ContentDispositionHeaderValue"/> header field /// with a <see cref="ContentDispositionHeaderValue.DispositionType"/> property equal to <paramref name="dispositionType"/>. /// </summary> /// <param name="contents">The contents to evaluate</param> /// <param name="dispositionType">The disposition type to look for.</param> /// <returns>null if source is empty or if no element matches; otherwise the first <see cref="HttpContent"/> in /// the sequence with a matching disposition type.</returns> public static HttpContent FirstDispositionTypeOrDefault(this IEnumerable <HttpContent> contents, string dispositionType) { if (contents == null) { throw new ArgumentNullException("contents"); } if (String.IsNullOrWhiteSpace(dispositionType)) { throw new ArgumentNullException("dispositionType"); } return(contents.FirstOrDefault((item) => { return HttpContentCollectionExtensions.FirstDispositionType(item, dispositionType); })); }