public void DefaultWeatherViewDataSourceGetWeatherDataProvidersTest() { var providerInfo1 = new Mock <IDataProviderInfo>(); var providerInfo2 = new Mock <IDataProviderInfo>(); var providerInfo3 = new Mock <IDataProviderInfo>(); var provider1 = new Mock <IWeatherDataProvider>(); provider1.SetupGet(t => t.Info).Returns(providerInfo1.Object); var provider2 = new Mock <IWeatherDataProvider>(); provider2.SetupGet(t => t.Info).Returns(providerInfo2.Object); var provider3 = new Mock <IWeatherDataProvider>(); provider3.SetupGet(t => t.Info).Returns(providerInfo3.Object); var providerGetter = new Mock <IProviderGetter>(); providerGetter.Setup(t => t.GetWeatherDataProviders()) .Returns(new[] { provider1.Object, provider2.Object, provider3.Object }); var dataSource = new DefaultWeatherViewDataSource(providerGetter.Object); var providerInfo = dataSource.GetWeatherDataProviders(); providerGetter.Verify(t => t.GetWeatherDataProviders(), Times.Once); Assert.AreEqual(3, providerInfo.Count()); Assert.AreEqual(providerInfo1.Object, providerInfo[0]); Assert.AreEqual(providerInfo2.Object, providerInfo[1]); Assert.AreEqual(providerInfo3.Object, providerInfo[2]); }