public void SetAndEscapeValue_ReturnsExpectedValue(string input, string expected)
    {
        var header = new NameValueHeaderValue("test");

        header.SetAndEscapeValue(input);

        var actual = header.Value;

        Assert.Equal(expected, actual);
    }
    public void OverescapingValuesDoNotRoundTrip(string input)
    {
        var header = new NameValueHeaderValue("test");

        header.SetAndEscapeValue(input);
        var valueHeader = header.GetUnescapedValue();

        var actual = header.Value;

        Assert.NotEqual(input, actual);
    }
    public void GetAndSetEncodeValueRoundTrip_ReturnsExpectedValue(string input)
    {
        var header = new NameValueHeaderValue("test");

        header.Value = input;
        var valueHeader = header.GetUnescapedValue();

        header.SetAndEscapeValue(valueHeader);

        var actual = header.Value;

        Assert.Equal(input, actual);
    }
    public void SetAndEscapeValue_ThrowsOnInvalidValues(string input)
    {
        var header = new NameValueHeaderValue("test");

        Assert.Throws <FormatException>(() => header.SetAndEscapeValue(input));
    }