public void ImportCompletedCalledAfterAllImportsAreFullyComposed() { int importSatisfationCount = 0; var importer1 = new MyEventDrivenFullComposedNotifyImporter1(); var importer2 = new MyEventDrivenFullComposedNotifyImporter2(); Action <object, EventArgs> verificationAction = (object sender, EventArgs e) => { Assert.True(importer1.AreAllImportsFullyComposed); Assert.True(importer2.AreAllImportsFullyComposed); ++importSatisfationCount; }; importer1.ImportsSatisfied += new EventHandler(verificationAction); importer2.ImportsSatisfied += new EventHandler(verificationAction); // importer1 added first var batch = new CompositionBatch(); batch.AddParts(importer1, importer2); var container = ContainerFactory.Create(); container.ComposeExportedValue <ICompositionService>(container); container.Compose(batch); Assert.Equal(2, importSatisfationCount); // importer2 added first importSatisfationCount = 0; batch = new CompositionBatch(); batch.AddParts(importer2, importer1); container = ContainerFactory.Create(); container.ComposeExportedValue <ICompositionService>(container); container.Compose(batch); Assert.Equal(2, importSatisfationCount); }
public void ImportCompletedCalledAfterAllImportsAreFullyComposed() { int importSatisfationCount = 0; var importer1 = new MyEventDrivenFullComposedNotifyImporter1(); var importer2 = new MyEventDrivenFullComposedNotifyImporter2(); Action<object, EventArgs> verificationAction = (object sender, EventArgs e) => { Assert.IsTrue(importer1.AreAllImportsFullyComposed); Assert.IsTrue(importer2.AreAllImportsFullyComposed); ++importSatisfationCount; }; importer1.ImportsSatisfied += new EventHandler(verificationAction); importer2.ImportsSatisfied += new EventHandler(verificationAction); // importer1 added first var batch = new CompositionBatch(); batch.AddParts(importer1, importer2); var container = ContainerFactory.Create(); container.ComposeExportedValue<ICompositionService>(container); container.Compose(batch); Assert.AreEqual(2, importSatisfationCount); // importer2 added first importSatisfationCount = 0; batch = new CompositionBatch(); batch.AddParts(importer2, importer1); container = ContainerFactory.Create(); container.ComposeExportedValue<ICompositionService>(container); container.Compose(batch); Assert.AreEqual(2, importSatisfationCount); }