public void AllPublicConfigurationMethodsShouldThrowOnNullInput() { var pipeline = new DataServiceClientResponsePipelineConfiguration("foo"); foreach (var publicMethodWithConfigurationArg in pipeline.GetType().GetMethods().Where(mi => mi.ReturnType == typeof(DataServiceClientResponsePipelineConfiguration))) { MethodInfo methodUnderTest = publicMethodWithConfigurationArg; var parameter = publicMethodWithConfigurationArg.GetParameters()[0]; Action test = () => methodUnderTest.Invoke(pipeline, BindingFlags.Instance | BindingFlags.Public, null, new object[] { null }, CultureInfo.InvariantCulture); var fluentException = test.ShouldThrow<TargetInvocationException>().WithInnerException<ArgumentNullException>(); fluentException.And.As<TargetInvocationException>().InnerException.As<ArgumentNullException>().ParamName.Should().Be(parameter.Name); } }
public void ValidateShortIntegrationFeedReading() { var initialFeed = new ODataFeed() {Id = new Uri("http://services.odata.org/OData/OData.svc/Products")}; var productItem = new ODataEntry() {Id = new Uri("http://services.odata.org/OData/OData.svc/Products(0)")}; productItem.Properties = new ODataProperty[] {new ODataProperty() {Name = "Id", Value = 0}}; var categoryNavigationLink = new ODataNavigationLink() {Name = "Category"}; var categoryItem = new ODataEntry() { Id = new Uri("http://services.odata.org/OData/OData.svc/Categories(0)") }; categoryItem.Properties = new ODataProperty[] { new ODataProperty() { Name = "Id", Value = 0 } }; var productsNavigationLink = new ODataNavigationLink() { Name = "Products" }; var supplierNavigationLink = new ODataNavigationLink() { Name = "Supplier" }; var testODataReader = new TestODataReader() { new TestODataReaderItem(ODataReaderState.FeedStart, initialFeed), new TestODataReaderItem(ODataReaderState.EntryStart, productItem), new TestODataReaderItem(ODataReaderState.NavigationLinkStart, categoryNavigationLink), new TestODataReaderItem(ODataReaderState.EntryStart, categoryItem), new TestODataReaderItem(ODataReaderState.NavigationLinkStart, productsNavigationLink), new TestODataReaderItem(ODataReaderState.NavigationLinkEnd, productsNavigationLink), new TestODataReaderItem(ODataReaderState.EntryEnd, categoryItem), new TestODataReaderItem(ODataReaderState.NavigationLinkEnd, categoryNavigationLink), new TestODataReaderItem(ODataReaderState.NavigationLinkStart, supplierNavigationLink), new TestODataReaderItem(ODataReaderState.NavigationLinkEnd, supplierNavigationLink), new TestODataReaderItem(ODataReaderState.EntryEnd, productItem), new TestODataReaderItem(ODataReaderState.FeedEnd, initialFeed), }; ClientEdmModel clientEdmModel = new ClientEdmModel(ODataProtocolVersion.V4); var responsePipeline = new DataServiceClientResponsePipelineConfiguration(new DataServiceContext()); var odataReaderWrapper = ODataReaderWrapper.CreateForTest(testODataReader, responsePipeline); FeedAndEntryMaterializerAdapter reader = new FeedAndEntryMaterializerAdapter(ODataFormat.Atom, odataReaderWrapper, clientEdmModel, MergeOption.OverwriteChanges); int readCounter = 0; while (reader.Read()) { readCounter++; } readCounter.Should().Be(2); }