1 // -----------------------------------------------------------------------
\r
2 // Copyright (c) Microsoft Corporation. All rights reserved.
\r
3 // -----------------------------------------------------------------------
\r
5 using System.Collections.Generic;
\r
6 using System.ComponentModel.Composition;
\r
7 using System.UnitTesting;
\r
8 using Microsoft.VisualStudio.TestTools.UnitTesting;
\r
9 using System.ComponentModel.Composition.Factories;
\r
11 namespace System.ComponentModel.Composition.Primitives
\r
14 public class ComposablePartCatalogDebuggerProxyTests
\r
17 public void Constructor_NullAsCatalogArgument_ShouldThrowArgumentNull()
\r
19 ExceptionAssert.ThrowsArgument<ArgumentNullException>("catalog", () =>
\r
21 new ComposablePartCatalogDebuggerProxy((ComposablePartCatalog)null);
\r
26 public void Constructor_ValueAsCatalogArgument_ShouldSetPartsProperty()
\r
28 var expectations = Expectations.GetCatalogs();
\r
29 foreach (var e in expectations)
\r
31 var proxy = new ComposablePartCatalogDebuggerProxy(e);
\r
33 EnumerableAssert.AreSequenceEqual(e.Parts, proxy.Parts);
\r
40 public void Parts_ShouldNotCacheUnderlyingParts()
\r
42 var catalog = CatalogFactory.CreateAggregateCatalog();
\r
43 var proxy = CreateComposablePartCatalogDebuggerProxy(catalog);
\r
45 EnumerableAssert.IsEmpty(proxy.Parts);
\r
47 var expectations = Expectations.GetCatalogs();
\r
48 foreach (var e in expectations)
\r
50 catalog.Catalogs.Add(e);
\r
52 EnumerableAssert.AreSequenceEqual(catalog.Parts, proxy.Parts);
\r
54 catalog.Catalogs.Remove(e);
\r
58 private ComposablePartCatalogDebuggerProxy CreateComposablePartCatalogDebuggerProxy(ComposablePartCatalog catalog)
\r
60 return new ComposablePartCatalogDebuggerProxy(catalog);
\r