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));
        }