1
// -----------------------------------------------------------------------
2 // Copyright (c) Microsoft Corporation. All rights reserved.
3 // -----------------------------------------------------------------------
5 using System
.Collections
.Generic
;
6 using System
.ComponentModel
.Composition
.Factories
;
7 using System
.ComponentModel
.Composition
.Primitives
;
10 using System
.Linq
.Expressions
;
11 using System
.Threading
;
12 using System
.UnitTesting
;
13 using Microsoft
.VisualStudio
.TestTools
.UnitTesting
;
14 using System
.ComponentModel
.Composition
.Hosting
;
16 namespace System
.ComponentModel
.Composition
19 public class AggregateExportProviderTests
22 public void Constructor1_NullAsProvidersArgument_ShouldSetProvidersPropertyToEmpty()
24 var provider
= new AggregateExportProvider((ExportProvider
[])null);
26 EnumerableAssert
.IsEmpty(provider
.Providers
);
30 public void Constructor2_NullAsProvidersArgument_ShouldSetProvidersPropertyToEmpty()
32 var provider
= new AggregateExportProvider((IEnumerable
<ExportProvider
>)null);
34 EnumerableAssert
.IsEmpty(provider
.Providers
);
38 public void Constructor1_EmptyArrayAsProvidersArgument_ShouldSetProvidersPropertyToEmpty()
40 var provider
= new AggregateExportProvider(new ExportProvider
[0]);
42 EnumerableAssert
.IsEmpty(provider
.Providers
);
46 public void Constructor2_EmptyArrayAsProvidersArgument_ShouldSetProvidersPropertyToEmpty()
48 var provider
= new AggregateExportProvider((IEnumerable
<ExportProvider
>)new ExportProvider
[0]);
50 EnumerableAssert
.IsEmpty(provider
.Providers
);
54 public void Constructor2_EmptyEnumerableAsProvidersArgument_ShouldSetProvidersPropertyToEmpty()
56 var provider
= new AggregateExportProvider(Enumerable
.Empty
<ExportProvider
>());
58 EnumerableAssert
.IsEmpty(provider
.Providers
);
62 public void Constructor1_ArrayAsProvidersArgument_ShouldNotAllowModificationAfterConstruction()
64 var providers
= new ExportProvider
[] { ExportProviderFactory.Create() }
;
65 var provider
= new AggregateExportProvider(providers
);
69 Assert
.IsNotNull(provider
.Providers
[0]);
73 public void Constructor2_ArrayAsProvidersArgument_ShouldNotAllowModificationAfterConstruction()
75 var providers
= new ExportProvider
[] { ExportProviderFactory.Create() }
;
76 var provider
= new AggregateExportProvider((IEnumerable
<ExportProvider
>)providers
);
80 Assert
.IsNotNull(provider
.Providers
[0]);
84 public void Providers_WhenDisposed_ShouldThrowObjectDisposed()
86 var provider
= CreateAggregateExportProvider();
89 ExceptionAssert
.ThrowsDisposed(provider
, () =>
91 var providers
= provider
.Providers
;
95 private AggregateExportProvider
CreateAggregateExportProvider()
97 return new AggregateExportProvider(Enumerable
.Empty
<ExportProvider
>());