/wine-mono-0.0.4/mono/external/aspnetwebstack/test/System.Web.Http.Test/ValueProviders/Providers/NameValueCollectionValueProviderTest.cs
C# | 210 lines | 134 code | 39 blank | 37 comment | 0 complexity | 7b3afa721a03d3391da05d3e5254d59c MD5 | raw file
Possible License(s): LGPL-2.1, GPL-2.0, Unlicense, BSD-3-Clause, MPL-2.0-no-copyleft-exception, CC-BY-SA-3.0, ISC, Apache-2.0, LGPL-2.0
- // Copyright (c) Microsoft Corporation. All rights reserved. See License.txt in the project root for license information.
- using System.Collections.Generic;
- using System.Collections.Specialized;
- using System.Globalization;
- using Xunit;
- using Assert = Microsoft.TestCommon.AssertEx;
- namespace System.Web.Http.ValueProviders.Providers
- {
- public class NameValueCollectionValueProviderTest
- {
- private static readonly NameValueCollection _backingStore = new NameValueCollection()
- {
- { "foo", "fooValue1" },
- { "foo", "fooValue2" },
- { "bar.baz", "someOtherValue" }
- };
- [Fact]
- public void Constructor_GuardClauses()
- {
- // Act & assert
- Assert.ThrowsArgumentNull(
- () => new NameValueCollectionValueProvider(values: null, culture: CultureInfo.InvariantCulture),
- "values");
- Assert.ThrowsArgumentNull(
- () => new NameValueCollectionValueProvider(valuesFactory: null, culture: CultureInfo.InvariantCulture),
- "valuesFactory");
- }
- [Fact]
- public void ContainsPrefix_GuardClauses()
- {
- // Arrange
- var valueProvider = new NameValueCollectionValueProvider(_backingStore, null);
- // Act & assert
- Assert.ThrowsArgumentNull(
- () => valueProvider.ContainsPrefix(null),
- "prefix");
- }
- [Fact]
- public void ContainsPrefix_WithEmptyCollection_ReturnsFalseForEmptyPrefix()
- {
- // Arrange
- var valueProvider = new NameValueCollectionValueProvider(new NameValueCollection(), null);
- // Act
- bool result = valueProvider.ContainsPrefix("");
- // Assert
- Assert.False(result);
- }
- [Fact]
- public void ContainsPrefix_WithNonEmptyCollection_ReturnsTrueForEmptyPrefix()
- {
- // Arrange
- var valueProvider = new NameValueCollectionValueProvider(_backingStore, null);
- // Act
- bool result = valueProvider.ContainsPrefix("");
- // Assert
- Assert.True(result);
- }
- [Fact]
- public void ContainsPrefix_WithNonEmptyCollection_ReturnsTrueForKnownPrefixes()
- {
- // Arrange
- var valueProvider = new NameValueCollectionValueProvider(_backingStore, null);
- // Act & Assert
- Assert.True(valueProvider.ContainsPrefix("foo"));
- Assert.True(valueProvider.ContainsPrefix("bar"));
- Assert.True(valueProvider.ContainsPrefix("bar.baz"));
- }
- [Fact]
- public void ContainsPrefix_WithNonEmptyCollection_ReturnsFalseForUnknownPrefix()
- {
- // Arrange
- var valueProvider = new NameValueCollectionValueProvider(_backingStore, null);
- // Act
- bool result = valueProvider.ContainsPrefix("biff");
- // Assert
- Assert.False(result);
- }
- [Fact]
- public void GetKeysFromPrefix_GuardClauses()
- {
- // Arrange
- var valueProvider = new NameValueCollectionValueProvider(_backingStore, null);
- // Act & assert
- Assert.ThrowsArgumentNull(
- () => valueProvider.GetKeysFromPrefix(null),
- "prefix");
- }
- [Fact]
- public void GetKeysFromPrefix_EmptyPrefix_ReturnsAllPrefixes()
- {
- // Arrange
- var valueProvider = new NameValueCollectionValueProvider(_backingStore, null);
- // Act
- IDictionary<string, string> result = valueProvider.GetKeysFromPrefix("");
- // Assert
- Assert.Equal(2, result.Count);
- Assert.Equal("foo", result["foo"]);
- Assert.Equal("bar", result["bar"]);
- }
- [Fact]
- public void GetKeysFromPrefix_UnknownPrefix_ReturnsEmptyDictionary()
- {
- // Arrange
- var valueProvider = new NameValueCollectionValueProvider(_backingStore, null);
- // Act
- IDictionary<string, string> result = valueProvider.GetKeysFromPrefix("abc");
- // Assert
- Assert.Empty(result);
- }
- [Fact]
- public void GetKeysFromPrefix_KnownPrefix_ReturnsMatchingItems()
- {
- // Arrange
- var valueProvider = new NameValueCollectionValueProvider(_backingStore, null);
- // Act
- IDictionary<string, string> result = valueProvider.GetKeysFromPrefix("bar");
- // Assert
- KeyValuePair<string, string> kvp = Assert.Single(result);
- Assert.Equal("baz", kvp.Key);
- Assert.Equal("bar.baz", kvp.Value);
- }
- [Fact]
- public void GetValue_GuardClauses()
- {
- // Arrange
- var valueProvider = new NameValueCollectionValueProvider(_backingStore, null);
- // Act & assert
- Assert.ThrowsArgumentNull(
- () => valueProvider.GetValue(null),
- "key");
- }
- [Fact]
- public void GetValue_SingleValue()
- {
- // Arrange
- var culture = CultureInfo.GetCultureInfo("fr-FR");
- var valueProvider = new NameValueCollectionValueProvider(_backingStore, culture);
- // Act
- ValueProviderResult vpResult = valueProvider.GetValue("bar.baz");
- // Assert
- Assert.NotNull(vpResult);
- Assert.Equal(new[] { "someOtherValue" }, (string[])vpResult.RawValue);
- Assert.Equal("someOtherValue", vpResult.AttemptedValue);
- Assert.Equal(culture, vpResult.Culture);
- }
- [Fact]
- public void GetValue_MultiValue()
- {
- // Arrange
- var culture = CultureInfo.GetCultureInfo("fr-FR");
- var valueProvider = new NameValueCollectionValueProvider(_backingStore, culture);
- // Act
- ValueProviderResult vpResult = valueProvider.GetValue("foo");
- // Assert
- Assert.NotNull(vpResult);
- Assert.Equal(new[] { "fooValue1", "fooValue2" }, (string[])vpResult.RawValue);
- Assert.Equal("fooValue1,fooValue2", vpResult.AttemptedValue);
- Assert.Equal(culture, vpResult.Culture);
- }
- [Fact]
- public void GetValue_ReturnsNullIfKeyNotFound()
- {
- // Arrange
- var valueProvider = new NameValueCollectionValueProvider(_backingStore, null);
- // Act
- ValueProviderResult vpResult = valueProvider.GetValue("bar");
- // Assert
- Assert.Null(vpResult);
- }
- }
- }