public void GetParsedValues_AddInvalidValueToHeader_HeaderGetsRemovedAndNullReturned() { MockHeaders headers = new MockHeaders(); headers.TryAddWithoutValidation(knownHeader, invalidHeaderValue + "\r\ninvalid"); Assert.Equal(0, headers.Parser.TryParseValueCallCount); object storeValue = headers.GetParsedValues(knownHeader); Assert.Null(storeValue); Assert.False(headers.Contains(knownHeader)); }
public void GetParsedValues_GetParsedValuesForKnownHeaderWithInvalidNewlineChars_ReturnsNull() { MockHeaders headers = new MockHeaders(); // Add header value with invalid newline chars. headers.TryAddWithoutValidation(knownHeader, invalidHeaderValue + "\r\ninvalid"); Assert.Equal(0, headers.Parser.TryParseValueCallCount); Assert.Null(headers.GetParsedValues(knownHeader)); Assert.Equal(0, headers.Count()); Assert.Equal(1, headers.Parser.TryParseValueCallCount); }
public void GetParsedValues_GetValuesForExistingHeaderWithInvalidValues_ReturnsOnlyParsedValues() { MockHeaders headers = new MockHeaders(); headers.Add(knownHeader, rawPrefix); // Here we add an invalid value. GetValues<T> only returns parsable values. So this value should get // parsed, however it will be added to the 'invalid values' list and thus is not part of the collection // returned by the enumerator. headers.TryAddWithoutValidation(knownHeader, invalidHeaderValue); // Only 1 value should get parsed (call to Add() with known header value). Assert.Equal(1, headers.Parser.TryParseValueCallCount); object storeValue = headers.GetParsedValues(knownHeader); Assert.NotNull(storeValue); // GetValues<T>() should trigger parsing of values added with TryAddWithoutValidation() Assert.Equal(2, headers.Parser.TryParseValueCallCount); // Since we added only one valid value to 'knownHeader', we expect GetValues() to return a that value. Assert.Equal(parsedPrefix, storeValue); }
public void GetParsedValues_GetValuesForExistingHeaderWithOnlyInvalidValues_ReturnsEmptyEnumerator() { MockHeaders headers = new MockHeaders(); // Here we add an invalid value. GetValues<T> only returns parsable values. So this value should get // parsed, however it will be added to the 'invalid values' list and thus is not part of the collection // returned by the enumerator. headers.TryAddWithoutValidation(knownHeader, invalidHeaderValue); Assert.Equal(0, headers.Parser.TryParseValueCallCount); object storeValue = headers.GetParsedValues(knownHeader); Assert.Null(storeValue); // GetValues<T>() should trigger parsing of values added with TryAddWithoutValidation() Assert.Equal(1, headers.Parser.TryParseValueCallCount); }
public void GetParsedValues_GetMultipleValuesForExistingHeader_ReturnsListOfValues() { MockHeaders headers = new MockHeaders(); headers.TryAddWithoutValidation("custom", rawPrefix + "0"); // this must not influence the result. headers.Add(knownHeader, rawPrefix + "1"); headers.TryAddWithoutValidation(knownHeader, rawPrefix + "2"); // Only 1 value should get parsed (call to Add() with known header value). Assert.Equal(1, headers.Parser.TryParseValueCallCount); object storeValue = headers.GetParsedValues(knownHeader); Assert.NotNull(storeValue); // GetValues<T>() should trigger parsing of values added with TryAddWithoutValidation() Assert.Equal(2, headers.Parser.TryParseValueCallCount); // Since we added 2 values to header 'knownHeader', we expect GetValues() to return a List<T> with // two values. List<object> storeValues = storeValue as List<object>; Assert.NotNull(storeValues); Assert.Equal(2, storeValues.Count); Assert.Equal(parsedPrefix + "1", storeValues[0]); Assert.Equal(parsedPrefix + "2", storeValues[1]); }
public void GetParsedValues_HeaderWithEmptyValues_ReturnsEmpty() { MockHeaders headers = new MockHeaders(); headers.Add(knownHeader, string.Empty); object storeValue = headers.GetParsedValues(knownHeader); Assert.Null(storeValue); }
public void GetParsedValues_GetSingleValueForExistingHeader_ReturnsAddedValue() { MockHeaders headers = new MockHeaders(); headers.Add("custom1", "customValue1"); // Get header values for non-existing header (but other headers exist in the store). object storeValue = headers.GetParsedValues("custom1"); Assert.NotNull(storeValue); // If we only have one value, then GetValues() should return just the value and not wrap it in a List<T>. Assert.Equal("customValue1", storeValue); }
public void GetParsedValues_GetValuesForNonExistingHeader_ReturnsNull() { MockHeaders headers = new MockHeaders(); headers.Add("custom1", "customValue1"); // Get header values for non-existing header (but other headers exist in the store). object storeValue = headers.GetParsedValues("doesntexist"); Assert.Null(storeValue); }
public void GetParsedValues_GetValuesFromUninitializedHeaderStore_ReturnsNull() { MockHeaders headers = new MockHeaders(); // Get header values from uninitialized store (store collection is null). object storeValue = headers.GetParsedValues("doesntexist"); Assert.Null(storeValue); }