public BatchWriterTestDescriptor(Settings settings, InvocationAndOperationDescriptor[] invocationsAndOperationDescriptors, int? maxPartsPerBatch, int? maxOperationsPerChangeset)
 {
     this.TestDescriptorSettings = settings;
     this.invocationsAndOperationDescriptors = invocationsAndOperationDescriptors;
     this.expectedResultCallback = CreateExpectedResultCallback(invocationsAndOperationDescriptors, null, this.TestDescriptorSettings.ExpectedResultSettings);
     this.maxPartsPerBatch = maxPartsPerBatch;
     this.maxOperationsPerChangeset = maxOperationsPerChangeset;
 }
 public BatchWriterTestDescriptor(Settings settings, InvocationAndOperationDescriptor[] invocationsAndOperationDescriptors, Dictionary<string, string> expectedHeaders = null, Uri baseUri = null, IODataUrlResolver urlResolver = null)
 {
     this.TestDescriptorSettings = settings;
     this.invocationsAndOperationDescriptors = invocationsAndOperationDescriptors;
     this.expectedResultCallback = CreateExpectedResultCallback(invocationsAndOperationDescriptors, expectedHeaders, this.TestDescriptorSettings.ExpectedResultSettings);
     this.baseUri = baseUri;
     this.urlResolver = urlResolver;
 }
        public BatchWriterTestDescriptor(Settings settings, InvocationAndOperationDescriptor[] invocationsAndOperationDescriptors, ExpectedException expectedException, Uri baseUri = null)
        {
            ExceptionUtilities.CheckArgumentNotNull(expectedException, "expectedException");

            this.TestDescriptorSettings = settings;
            this.invocationsAndOperationDescriptors = invocationsAndOperationDescriptors;
            this.expectedResultCallback = CreateExpectedErrorResultCallback(null, null, expectedException, this.TestDescriptorSettings.ExpectedResultSettings);
            this.baseUri = baseUri;
        }
        public BatchWriterTestDescriptor(Settings settings, InvocationAndOperationDescriptor[] invocationsAndOperationDescriptors, int? maxPartsPerBatch, int? maxOperationsPerChangeset, ExpectedException expectedException)
        {
            ExceptionUtilities.CheckArgumentNotNull(expectedException, "expectedExceptionMessage");

            this.TestDescriptorSettings = settings;
            this.invocationsAndOperationDescriptors = invocationsAndOperationDescriptors;
            this.expectedResultCallback = CreateExpectedErrorResultCallback(null, null, expectedException, this.TestDescriptorSettings.ExpectedResultSettings);
            this.maxPartsPerBatch = maxPartsPerBatch;
            this.maxOperationsPerChangeset = maxOperationsPerChangeset;
        }
        private static PayloadWriterTestDescriptor.WriterTestExpectedResultCallback CreateExpectedResultCallback(
            InvocationAndOperationDescriptor[] invocationsAndOperationDescriptors, 
            Dictionary<string, string> expectedHeaders,
            WriterTestExpectedResults.Settings settings)
        {
            return (testConfiguration) =>
            {
                if (testConfiguration.Format != null && testConfiguration.Format != ODataFormat.Batch)
                {
                    throw new NotSupportedException("Unsupported format " + testConfiguration.Format.ToString() + " for writing batch messages found.");
                }

                return new BatchWriterTestExpectedResults(settings)
                {
                    ExpectedContentType = "multipart/mixed",
                    InvocationsAndOperationDescriptors = invocationsAndOperationDescriptors,
                    ExpectedHeaders = expectedHeaders,
                };
            };
        }