public void Load_DoesNotThrowException_WhenParametersArePopulated() { var configuration = new MongoConfiguration { ConnectionString = "A", Database = "B" }; var environment = new Mock <IHostingEnvironment>(); environment.Setup(item => item.ApplicationName).Returns("C"); environment.Setup(item => item.EnvironmentName).Returns("D"); var context = new WebHostBuilderContext { HostingEnvironment = environment.Object }; var repository = new Mock <ISettingsRepository>(); var client = new Mock <IMongoClient>(); var database = new Mock <IMongoDatabase>(); var collection = new Mock <IMongoCollection <Setting> >(); client.Setup(item => item.GetDatabase(It.IsAny <string>(), null)).Returns(database.Object); database.Setup(item => item.GetCollection <Setting>(It.IsAny <string>(), null)).Returns(collection.Object); collection.Setup(item => item.FindSync <Setting>(It.IsAny <FilterDefinition <Setting> >(), null, CancellationToken.None)).Returns((IAsyncCursor <Setting>)null); repository.Setup(item => item.CreateClient(It.IsAny <string>())).Returns(client.Object); var source = new MongoConfigurationProvider(context, configuration, new Mock <IParser <string> >().Object, repository.Object); Action sut = () => source.Load(); sut.Should().NotThrow <Exception>(); }
public void Load_PopulatesData_WhenSettingsAreFound() { var configuration = new MongoConfiguration { ConnectionString = "A", Database = "B" }; var environment = new Mock <IHostingEnvironment>(); environment.Setup(item => item.ApplicationName).Returns("C"); environment.Setup(item => item.EnvironmentName).Returns("D"); var context = new WebHostBuilderContext { HostingEnvironment = environment.Object }; var repository = new Mock <ISettingsRepository>(); var client = new Mock <IMongoClient>(); var database = new Mock <IMongoDatabase>(); var collection = new Mock <IMongoCollection <Setting> >(); var parser = new Mock <IParser <string> >(); var result = new Mock <IAsyncCursor <Setting> >(); client.Setup(item => item.GetDatabase(It.IsAny <string>(), null)).Returns(database.Object); database.Setup(item => item.GetCollection <Setting>(It.IsAny <string>(), null)).Returns(collection.Object); collection.Setup(item => item.FindSync <Setting>(It.IsAny <FilterDefinition <Setting> >(), null, CancellationToken.None)).Returns(result.Object); result.Setup(item => item.Current).Returns(new List <Setting> { new Setting { Settings = "{\"E\":\"F\"}" } }); repository.Setup(item => item.CreateClient(It.IsAny <string>())).Returns(client.Object); var sut = new MongoConfigurationProvider(context, configuration, parser.Object, repository.Object); sut.Load(); parser.Verify(item => item.Parse(It.IsAny <string>()), Times.Once); }