PageRenderTime 46ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 0ms

/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
  1. // Copyright (c) Microsoft Corporation. All rights reserved. See License.txt in the project root for license information.
  2. using System.Collections.Generic;
  3. using System.Collections.Specialized;
  4. using System.Globalization;
  5. using Xunit;
  6. using Assert = Microsoft.TestCommon.AssertEx;
  7. namespace System.Web.Http.ValueProviders.Providers
  8. {
  9. public class NameValueCollectionValueProviderTest
  10. {
  11. private static readonly NameValueCollection _backingStore = new NameValueCollection()
  12. {
  13. { "foo", "fooValue1" },
  14. { "foo", "fooValue2" },
  15. { "bar.baz", "someOtherValue" }
  16. };
  17. [Fact]
  18. public void Constructor_GuardClauses()
  19. {
  20. // Act & assert
  21. Assert.ThrowsArgumentNull(
  22. () => new NameValueCollectionValueProvider(values: null, culture: CultureInfo.InvariantCulture),
  23. "values");
  24. Assert.ThrowsArgumentNull(
  25. () => new NameValueCollectionValueProvider(valuesFactory: null, culture: CultureInfo.InvariantCulture),
  26. "valuesFactory");
  27. }
  28. [Fact]
  29. public void ContainsPrefix_GuardClauses()
  30. {
  31. // Arrange
  32. var valueProvider = new NameValueCollectionValueProvider(_backingStore, null);
  33. // Act & assert
  34. Assert.ThrowsArgumentNull(
  35. () => valueProvider.ContainsPrefix(null),
  36. "prefix");
  37. }
  38. [Fact]
  39. public void ContainsPrefix_WithEmptyCollection_ReturnsFalseForEmptyPrefix()
  40. {
  41. // Arrange
  42. var valueProvider = new NameValueCollectionValueProvider(new NameValueCollection(), null);
  43. // Act
  44. bool result = valueProvider.ContainsPrefix("");
  45. // Assert
  46. Assert.False(result);
  47. }
  48. [Fact]
  49. public void ContainsPrefix_WithNonEmptyCollection_ReturnsTrueForEmptyPrefix()
  50. {
  51. // Arrange
  52. var valueProvider = new NameValueCollectionValueProvider(_backingStore, null);
  53. // Act
  54. bool result = valueProvider.ContainsPrefix("");
  55. // Assert
  56. Assert.True(result);
  57. }
  58. [Fact]
  59. public void ContainsPrefix_WithNonEmptyCollection_ReturnsTrueForKnownPrefixes()
  60. {
  61. // Arrange
  62. var valueProvider = new NameValueCollectionValueProvider(_backingStore, null);
  63. // Act & Assert
  64. Assert.True(valueProvider.ContainsPrefix("foo"));
  65. Assert.True(valueProvider.ContainsPrefix("bar"));
  66. Assert.True(valueProvider.ContainsPrefix("bar.baz"));
  67. }
  68. [Fact]
  69. public void ContainsPrefix_WithNonEmptyCollection_ReturnsFalseForUnknownPrefix()
  70. {
  71. // Arrange
  72. var valueProvider = new NameValueCollectionValueProvider(_backingStore, null);
  73. // Act
  74. bool result = valueProvider.ContainsPrefix("biff");
  75. // Assert
  76. Assert.False(result);
  77. }
  78. [Fact]
  79. public void GetKeysFromPrefix_GuardClauses()
  80. {
  81. // Arrange
  82. var valueProvider = new NameValueCollectionValueProvider(_backingStore, null);
  83. // Act & assert
  84. Assert.ThrowsArgumentNull(
  85. () => valueProvider.GetKeysFromPrefix(null),
  86. "prefix");
  87. }
  88. [Fact]
  89. public void GetKeysFromPrefix_EmptyPrefix_ReturnsAllPrefixes()
  90. {
  91. // Arrange
  92. var valueProvider = new NameValueCollectionValueProvider(_backingStore, null);
  93. // Act
  94. IDictionary<string, string> result = valueProvider.GetKeysFromPrefix("");
  95. // Assert
  96. Assert.Equal(2, result.Count);
  97. Assert.Equal("foo", result["foo"]);
  98. Assert.Equal("bar", result["bar"]);
  99. }
  100. [Fact]
  101. public void GetKeysFromPrefix_UnknownPrefix_ReturnsEmptyDictionary()
  102. {
  103. // Arrange
  104. var valueProvider = new NameValueCollectionValueProvider(_backingStore, null);
  105. // Act
  106. IDictionary<string, string> result = valueProvider.GetKeysFromPrefix("abc");
  107. // Assert
  108. Assert.Empty(result);
  109. }
  110. [Fact]
  111. public void GetKeysFromPrefix_KnownPrefix_ReturnsMatchingItems()
  112. {
  113. // Arrange
  114. var valueProvider = new NameValueCollectionValueProvider(_backingStore, null);
  115. // Act
  116. IDictionary<string, string> result = valueProvider.GetKeysFromPrefix("bar");
  117. // Assert
  118. KeyValuePair<string, string> kvp = Assert.Single(result);
  119. Assert.Equal("baz", kvp.Key);
  120. Assert.Equal("bar.baz", kvp.Value);
  121. }
  122. [Fact]
  123. public void GetValue_GuardClauses()
  124. {
  125. // Arrange
  126. var valueProvider = new NameValueCollectionValueProvider(_backingStore, null);
  127. // Act & assert
  128. Assert.ThrowsArgumentNull(
  129. () => valueProvider.GetValue(null),
  130. "key");
  131. }
  132. [Fact]
  133. public void GetValue_SingleValue()
  134. {
  135. // Arrange
  136. var culture = CultureInfo.GetCultureInfo("fr-FR");
  137. var valueProvider = new NameValueCollectionValueProvider(_backingStore, culture);
  138. // Act
  139. ValueProviderResult vpResult = valueProvider.GetValue("bar.baz");
  140. // Assert
  141. Assert.NotNull(vpResult);
  142. Assert.Equal(new[] { "someOtherValue" }, (string[])vpResult.RawValue);
  143. Assert.Equal("someOtherValue", vpResult.AttemptedValue);
  144. Assert.Equal(culture, vpResult.Culture);
  145. }
  146. [Fact]
  147. public void GetValue_MultiValue()
  148. {
  149. // Arrange
  150. var culture = CultureInfo.GetCultureInfo("fr-FR");
  151. var valueProvider = new NameValueCollectionValueProvider(_backingStore, culture);
  152. // Act
  153. ValueProviderResult vpResult = valueProvider.GetValue("foo");
  154. // Assert
  155. Assert.NotNull(vpResult);
  156. Assert.Equal(new[] { "fooValue1", "fooValue2" }, (string[])vpResult.RawValue);
  157. Assert.Equal("fooValue1,fooValue2", vpResult.AttemptedValue);
  158. Assert.Equal(culture, vpResult.Culture);
  159. }
  160. [Fact]
  161. public void GetValue_ReturnsNullIfKeyNotFound()
  162. {
  163. // Arrange
  164. var valueProvider = new NameValueCollectionValueProvider(_backingStore, null);
  165. // Act
  166. ValueProviderResult vpResult = valueProvider.GetValue("bar");
  167. // Assert
  168. Assert.Null(vpResult);
  169. }
  170. }
  171. }