public Task PostProcessing_ProcessesFormData()
        {
            // Arrange
            int    maxContents    = 16;
            string contentFormat  = "Content {0}";
            string formNameFormat = "FormName_{0}";

            MultipartFormDataContent multipartContent = new MultipartFormDataContent();

            for (int index = 0; index < maxContents; index++)
            {
                string content  = String.Format(contentFormat, index);
                string formName = String.Format(formNameFormat, index);
                multipartContent.Add(new StringContent(content), formName);
            }

            MultipartFormDataStreamProvider provider = new MultipartFormDataStreamProvider(ValidPath);

            foreach (HttpContent content in multipartContent)
            {
                provider.Contents.Add(content);
                provider.GetStream(multipartContent, content.Headers);
            }

            // Act
            return(provider.ExecutePostProcessingAsync().ContinueWith(
                       processingTask =>
            {
                // Assert
                Assert.Equal(TaskStatus.RanToCompletion, processingTask.Status);
                Assert.Equal(maxContents, provider.FormData.Count);

                for (int index = 0; index < maxContents; index++)
                {
                    string content = String.Format(contentFormat, index);
                    string formName = String.Format(formNameFormat, index);
                    Assert.Equal(content, provider.FormData[formName]);
                }
            }));
        }