public void DelegatingExportProviderDisposalDoesNotDisposeInner(IContainer container)
        {
            var innerExportProvider      = container.GetExportedValue <ExportProvider>();
            var delegatingExportProvider = new FilteringExportProvider(innerExportProvider);

            delegatingExportProvider.Dispose();

            // Verify that the inner is still functional.
            var unfilteredResults = innerExportProvider.GetExportedValues <int>();

            Assert.Equal(2, unfilteredResults.Count());
        }
        public void DelegatingExportProviderForwardsQueries(IContainer container)
        {
            var innerExportProvider      = container.GetExportedValue <ExportProvider>();
            var delegatingExportProvider = new FilteringExportProvider(innerExportProvider);

            var unfilteredResults = innerExportProvider.GetExportedValues <int>();

            Assert.Equal(2, unfilteredResults.Count());
            Assert.Contains(1, unfilteredResults);
            Assert.Contains(2, unfilteredResults);

            var filteredResults = delegatingExportProvider.GetExportedValues <int>();

            Assert.Equal(2, filteredResults.Single());
        }