public void CanIterateAfterCastedToIEnumerable() { // Arrange var dict = new Dictionary <string, string>() { { "Mem:KeyInMem", "MemVal" } }; var memConfigSrc1 = new MemoryConfigurationSource(dict); var memConfigSrc2 = new MemoryConfigurationSource(dict); var memConfigSrc3 = new MemoryConfigurationSource(dict); var srcSet = new HashSet <IConfigurationSource>() { memConfigSrc1, memConfigSrc2, memConfigSrc3 }; var config = new Configuration(); // Act config.AddLoadedSource(memConfigSrc1); config.AddLoadedSource(memConfigSrc2); config.AddLoadedSource(memConfigSrc3); var enumerable = config as IEnumerable; // Assert var enumerator = config.GetEnumerator(); int srcCount = 0; while (enumerator.MoveNext()) { Assert.Contains(enumerator.Current, srcSet); ++srcCount; } Assert.Equal(3, srcCount); }