void Compare(MimeFieldParameters mfp, StringDictionary pd) { foreach (string key in pd.Keys) { Assert.Equal(pd[key], mfp[key]); } }
/// <summary> /// Serialize to a string /// </summary> /// <returns></returns> public string Serialize() { StringBuilder sb = new StringBuilder(); MimeFieldParameters.Write(sb, this, true); return(sb.ToString()); }
/// <summary> /// Deserialize the field value of a Document-Source field /// </summary> /// <param name="text"></param> /// <returns></returns> public static DocumentSource Deserialize(string text) { if (string.IsNullOrEmpty(text)) { throw new ArgumentException("text"); } string name = null; string value = null; foreach (KeyValuePair <string, string> fieldParam in MimeFieldParameters.Read(text)) { if (MimeStandard.Equals(fieldParam.Key, ParameterNames.Name)) { name = fieldParam.Value; } else if (MimeStandard.Equals(fieldParam.Key, ParameterNames.Source)) { value = fieldParam.Value; } } if (string.IsNullOrEmpty(name)) { throw new ArgumentException("Invalid Document Source"); } return(new DocumentSource(name, value)); }
public void TestDisposition(ContentDisposition disposition, int paramCount) { string fieldText = disposition.ToString(); MimeFieldParameters fieldParams = new MimeFieldParameters(); Assert.DoesNotThrow(() => fieldParams.Deserialize(fieldText)); Assert.True(fieldParams.Count == paramCount); Assert.Equal(disposition.DispositionType, fieldParams[0].Value); Assert.Equal(disposition.FileName, fieldParams["filename"]); Assert.DoesNotThrow(() => Compare(fieldParams, disposition.Parameters)); string fieldTextSerialized = null; Assert.DoesNotThrow(() => fieldTextSerialized = fieldParams.Serialize()); fieldParams.Clear(); Assert.DoesNotThrow(() => fieldParams.Deserialize(fieldTextSerialized)); Assert.True(fieldParams.Count == paramCount); Console.WriteLine(fieldTextSerialized); string alwaysfails = "attachment;size=123456789;xyz=\"pqr/?.<\";read-date=\"Thu, 10 Apr 2014 11:27:31 +0000\";filename=\"goobar.txt\";modification-date=\"Tue, 08 Apr 2014 11:27:31 +0000\";creation-date=\"Sat, 05 Apr 2014 11:27:31 +0000"; Assert.DoesNotThrow(() => new ContentDisposition(alwaysfails)); Assert.DoesNotThrow(() => new ContentDisposition(fieldTextSerialized)); }
public void TestContentType(ContentType contentType, int paramCount) { string fieldText = contentType.ToString(); MimeFieldParameters fieldParams = new MimeFieldParameters(); Assert.DoesNotThrow(() => fieldParams.Deserialize(fieldText)); Assert.True(fieldParams.Count == paramCount); Assert.Equal(contentType.MediaType, fieldParams[0].Value); Assert.Equal <string>(contentType.Name, fieldParams["name"]); Assert.DoesNotThrow(() => Compare(fieldParams, contentType.Parameters)); string fieldTextSerialized = null; Assert.DoesNotThrow(() => fieldTextSerialized = fieldParams.Serialize()); fieldParams.Clear(); Assert.DoesNotThrow(() => fieldParams.Deserialize(fieldTextSerialized)); Assert.True(fieldParams.Count == paramCount); Assert.DoesNotThrow(() => new ContentType(fieldTextSerialized)); }
public void TestDisposition(ContentDisposition disposition, int paramCount) { string fieldText = disposition.ToString(); MimeFieldParameters fieldParams = new MimeFieldParameters(); Assert.DoesNotThrow(() => fieldParams.Deserialize(fieldText)); Assert.True(fieldParams.Count == paramCount); Assert.Equal(disposition.DispositionType, fieldParams[0].Value); Assert.Equal(disposition.FileName, fieldParams["filename"]); Assert.DoesNotThrow(() => Compare(fieldParams, disposition.Parameters)); string fieldTextSerialized = null; Assert.DoesNotThrow(() => fieldTextSerialized = fieldParams.Serialize()); fieldParams.Clear(); Assert.DoesNotThrow(() => fieldParams.Deserialize(fieldTextSerialized)); Assert.True(fieldParams.Count == paramCount); Assert.DoesNotThrow(() => new ContentDisposition(fieldTextSerialized)); }
public void TestContentType(ContentType contentType, int paramCount) { string fieldText = contentType.ToString(); MimeFieldParameters fieldParams = new MimeFieldParameters(); Assert.DoesNotThrow(() => fieldParams.Deserialize(fieldText)); Assert.True(fieldParams.Count == paramCount); Assert.Equal(contentType.MediaType, fieldParams[0].Value); Assert.Equal<string>(contentType.Name, fieldParams["name"]); Assert.DoesNotThrow(() => Compare(fieldParams, contentType.Parameters)); string fieldTextSerialized = null; Assert.DoesNotThrow(() => fieldTextSerialized = fieldParams.Serialize()); fieldParams.Clear(); Assert.DoesNotThrow(() => fieldParams.Deserialize(fieldTextSerialized)); Assert.True(fieldParams.Count == paramCount); Assert.DoesNotThrow(() => new ContentType(fieldTextSerialized)); }
void Compare(MimeFieldParameters mfp, StringDictionary pd) { foreach(string key in pd.Keys) { Assert.Equal(pd[key], mfp[key]); } }