public void InitializeTest() { // Arrange. var sourceDefinition1 = new FieldMappingDataSourceDefinition("Source 1", "TestProcess", "Property1", true, false, false); var sourceDefinition2 = new FieldMappingDataSourceDefinition("Source 2", "TestProcess", "Property2", true, false, false); var source1 = Mock.Create<IFieldMappingDataSource>(); var source2 = Mock.Create<IFieldMappingDataSource>(); var newSources = new Queue<IFieldMappingDataSource>(new[] { source1, source2 }); var retriever = new FieldMappingSourceDataRetriever { DataSourceFactory = new ExportFactory<IFieldMappingDataSource>(() => new Tuple<IFieldMappingDataSource, Action>(newSources.Dequeue(), () => { })) }; // Act. retriever.Initialize(new[] { sourceDefinition1, sourceDefinition2 }); // Assert. Assert.AreEqual(2, retriever.DataSources.Count); Assert.IsTrue(retriever.DataSources.Contains(source1)); Assert.IsTrue(retriever.DataSources.Contains(source2)); Mock.Assert(() => source1.Initialize(sourceDefinition1), Occurs.Once()); Mock.Assert(() => source2.Initialize(sourceDefinition2), Occurs.Once()); // Exceptions. TestsHelper.VerifyThrow<ArgumentNullException>(() => retriever.Initialize(null)); }