public async Task TestGet_NoWildcards_ReturnsOnlySpecifiedOrgs() { //arrange RepositoryDatabase database = new RepositoryDatabase(Settings); var service = new RepositoryManagementService(database, new Mapper(MappingConfigurationFactory.Create()), TelemetryMock.InitializeMockTelemetryClient()); var parameters = new[] { new RepositoryQueryParameter(this.orgOne_RepoOne), new RepositoryQueryParameter(this.orgTwo_RepoOne), new RepositoryQueryParameter(this.orgThree_RepoOne), }; var repos = (await service.GetRepositories(parameters)).ToList(); //act ManifestQueryResult result = await service.GetCurrentProjects(repos, "FindMe", false); //assert Assert.AreEqual(3, result.Projects.Count); Assert.AreEqual(1, result.Projects.Count(x => x.RepositoryInfo.Id == this.orgOne_RepoOne.Id)); Assert.AreEqual(0, result.Projects.Count(x => x.RepositoryInfo.Id == this.orgOne_RepoTwo.Id)); Assert.AreEqual(1, result.Projects.Count(x => x.RepositoryInfo.Id == this.orgTwo_RepoOne.Id)); Assert.AreEqual(0, result.Projects.Count(x => x.RepositoryInfo.Id == this.orgTwo_RepoTwo.Id)); Assert.AreEqual(1, result.Projects.Count(x => x.RepositoryInfo.Id == this.orgThree_RepoOne.Id)); Assert.AreEqual(0, result.Projects.Count(x => x.RepositoryInfo.Id == this.orgThree_RepoTwo.Id)); Assert.AreEqual(0, result.Projects.Count(x => x.RepositoryInfo.Id == this.orgThree_RepoThree.Id)); }
public async Task DefaultRepo_ShouldReturnTheSameIdButNewProperties() { RepositoryDatabase database = new RepositoryDatabase(Settings); ProjectInfo prj = new ProjectInfo() { ProjectName = "Project1", ProjectUri = "SomeLocation", RepositoryId = this.testRepoOne.Id, TargetExtension = "exe" }; prj.Id.Should().Be(ObjectId.Empty); ProjectInfo returnedPrj = await database.Upsert(prj).ConfigureAwait(false); returnedPrj.Id.Should().NotBe(ObjectId.Empty); ProjectInfo prj2 = new ProjectInfo() { ProjectName = "Project1", ProjectUri = "SomeLocation", RepositoryId = this.testRepoOne.Id, TargetExtension = "dll" }; ProjectInfo returnedPrj2 = await database.Upsert(prj2).ConfigureAwait(false); returnedPrj2.Id.Should().BeEquivalentTo(returnedPrj.Id, "because it's the same project"); ProjectInfo attempt3 = await database.GetById(returnedPrj2.Id.ToString()).ConfigureAwait(false); attempt3.TargetExtension.Should().Be("dll", "because the project was updated"); }
public async Task SnapshotRepoProjects_SettingsChange_AffectsTheNumberOfProjectsLeft() { //arrange RepositoryDatabase database = new RepositoryDatabase(Settings); var service = new RepositoryManagementService(database, new Mapper(MappingConfigurationFactory.Create()), TelemetryMock.InitializeMockTelemetryClient()); await SeedProjects(service, "Project1", this.snapshotRepoOne, "1.0.0", "2.0.0", "3.0.0", "4.0.0"); SnapshotRepoCleaner cleaner = new SnapshotRepoCleaner(database); //assuming... Check.That(database.GetAllProjects().Result.Count()).Equals(4); //act SnapshotRepoCleanupResult result = await cleaner.PerformCleanupAsync(new SnapshotRepoCleanupSettings() { NumberOfSnapshotsToKeep = 3 }); //assert Check.That(result.RepositoryResults.Single().Value).IsEqualTo(1); Check.That(database.GetAllProjects().Result.Count()).Equals(3); //now change settings and run again //act result = await cleaner.PerformCleanupAsync(new SnapshotRepoCleanupSettings() { NumberOfSnapshotsToKeep = 1 }); //assert Check.That(result.RepositoryResults.Single().Value).IsEqualTo(2); Check.That(database.GetAllProjects().Result.Count()).Equals(1); }
public async Task CannotAddSameTwice_ShouldReturnTheSameId() { RepositoryDatabase database = new RepositoryDatabase(Settings); string organizationOne = Guid.NewGuid().ToString(); string repoOne = Guid.NewGuid().ToString(); RepositoryInfo repo = null; RepositoryInfo repo2 = null; Task t1 = Task.Run(async() => { repo = await database.UpsertUpdate(new RepositoryInfo() { OrganizationName = organizationOne, RepositoryName = repoOne } ).ConfigureAwait(false); }); Task t2 = Task.Run(async() => { repo2 = await database.UpsertUpdate(new RepositoryInfo() { OrganizationName = organizationOne, RepositoryName = repoOne } ).ConfigureAwait(false); }); //add both repos pretty much at the same time await Task.WhenAll(t1, t2); repo.Should().NotBeNull("Because it should have been created by the tasks invoke"); repo.Id.Should().NotBe(ObjectId.Empty); repo.Id.Should().Be(repo2.Id, "because the same repository already exists"); }
private IRepository <UserProfile> Create() { var db = DatabaseHelper.GetHelper("test"); var repos = new RepositoryDatabase <UserProfile>(db); return(repos); }
public async Task DefaultRepoProjects_NotCleanedUp() { //arrange RepositoryDatabase database = new RepositoryDatabase(Settings); var service = new RepositoryManagementService(database, new Mapper(MappingConfigurationFactory.Create()), TelemetryMock.InitializeMockTelemetryClient()); await SeedProjects(service, "Project1", this.defaultRepoOne, "1.0.0", "2.0.0", "3.0.0", "4.0.0"); await SeedProjects(service, "Project2", this.defaultRepoOne, "1.0.0", "2.0.0", "3.0.0", "4.0.0"); await SeedProjects(service, "Project3", this.defaultRepoOne, "1.0.0", "2.0.0", "3.0.0", "4.0.0"); await SeedProjects(service, "Project4", this.defaultRepoOne, "1.0.0", "2.0.0", "3.0.0", "4.0.0"); SnapshotRepoCleaner cleaner = new SnapshotRepoCleaner(database); //assuming... Check.That(database.GetAllProjects().Result.Count()).Equals(4); //act SnapshotRepoCleanupResult result = await cleaner.PerformCleanupAsync(new SnapshotRepoCleanupSettings() { }); //assert Check.That(result.RepositoryResults.Count).IsEqualTo(0); Check.That(database.GetAllProjects().Result.Count()).Equals(4); }
private async Task <WeatherModel> GetWeatherOfflineAsync() { try { var database = new RepositoryDatabase(); var currently = await database.GetAllItems <Currently>(); var weather = new WeatherModel(); weather.Daily = new Daily() { Data = new List <DailyData>(await database.GetAllItems <DailyData>()) }; weather.Hourly = new Hourly() { Data = new List <HourlyData>(await database.GetAllItems <HourlyData>()) }; weather.Currently = currently.FirstOrDefault(); return(weather); } catch (Exception e) { Console.WriteLine(e.Message); return(null); } }
private async Task CleanDb() { var database = new RepositoryDatabase(); await database.DeleteAllItens <Currently>(); await database.DeleteAllItens <DailyData>(); await database.DeleteAllItens <HourlyData>(); }
//--------------------------------------------------------------------------------------------------------- /// <summary> /// Обработчик события изменения репозитория /// </summary> /// <param name="sender">Источник события</param> /// <param name="args">Аргументы события</param> //--------------------------------------------------------------------------------------------------------- private static void OnRepositoryChanged(DependencyObject sender, DependencyPropertyChangedEventArgs args) { CubeXRepositoryDatabaseViewer data_viewer = (CubeXRepositoryDatabaseViewer)sender; RepositoryDatabase new_value = (RepositoryDatabase)args.NewValue; if (new_value != null) { data_viewer.SetRepository(); } }
private static async Task SetSnapshotMode(RepositoryDatabase database, RepositoryInfo repository) { repository.RepositoryMode = RepositoryMode.Snapshot; await database.UpsertReplace(repository).ConfigureAwait(false); var repo = await database.GetRepositoryById(repository.Id).ConfigureAwait(false); repo.Should().BeEquivalentTo(repository); repo.RepositoryMode.Should().Be(RepositoryMode.Snapshot); }
public void IsnertOrUpdateTest() { var db = DatabaseHelper.GetHelper("test"); var repos = new RepositoryDatabase <UserProfile>(db); var userprofile = Map.Create <UserProfile>(); userprofile.Id = 1; userprofile.Name = "test"; userprofile.Email = "*****@*****.**"; userprofile.FixPhone = "860108888888"; userprofile.Sex = 1; repos.Save(userprofile); }
public async Task ShouldReturnProperMode() { RepositoryDatabase service = new RepositoryDatabase(Settings); string organizationOne = MethodBase.GetCurrentMethod().Name; string repoOne = Guid.NewGuid().ToString(); //first add a new repository to a new organization RepositoryInfo repo = await service.UpsertUpdate( new RepositoryInfo() { OrganizationName = organizationOne, RepositoryName = repoOne }).ConfigureAwait(false); repo.RepositoryMode.Should().Be(RepositoryMode.Default); //then add it again RepositoryInfo repo2 = await service.UpsertUpdate(new RepositoryInfo() { OrganizationName = organizationOne, RepositoryName = repoOne }).ConfigureAwait(false); repo2.RepositoryMode.Should().Be(RepositoryMode.Default); //then change the repo mode (ensure that change worked OK) repo.RepositoryMode = RepositoryMode.Snapshot; await service.UpsertReplace(repo).ConfigureAwait(false); repo = await service.GetRepository(organizationOne, repoOne); repo.RepositoryMode.Should().Be(RepositoryMode.Snapshot); //now perform upsert again and ensure that mode is not overwritten repo = await service.UpsertUpdate(new RepositoryInfo() { OrganizationName = organizationOne, RepositoryName = repoOne }).ConfigureAwait(false); repo.RepositoryMode.Should().Be(RepositoryMode.Snapshot); //even if added multiple times repo = await service.UpsertUpdate(new RepositoryInfo() { OrganizationName = organizationOne, RepositoryName = repoOne }).ConfigureAwait(false); repo.RepositoryMode.Should().Be(RepositoryMode.Snapshot); }
public void QueryTest3() { var db = DatabaseHelper.GetHelper("test"); var repos = new RepositoryDatabase <UserProfile>(db); var list1 = repos.GetList(x => (object)x.Id == new[] { 1, 2, 3, 4, 5 }); //where Sex=1 and Name like 'test%' var list2 = repos.GetList(x => x.Sex == 1 && x.Name.StartsWith("test"), 1, 10, x => x.Id, true); var list3 = repos.GetList(x => x.Id > 1 && x.Id < 10 && (x.Sex == 1 || x.Sex == 2), 1, 10, x => x.Id, true, x => x.Id, true, x => x.Id, true); Assert.IsNotNull(list1); Assert.Greater(list1.Count, 0); Assert.IsNotNull(list1); Assert.Greater(list2.Count, 0); }
public void SetUp() { this.telemetryClient = TelemetryMock.InitializeMockTelemetryClient(); MongoClient client = new MongoClient(Settings.ConnectionString); client.DropDatabase(Settings.DatabaseName); RepositoryDatabase database = new RepositoryDatabase(Settings); RepositoryInfo result = database.Create(this.testRepoOne); Assert.IsNotNull(result); RepositoryInfo result2 = database.Create(this.testRepoTwo); Assert.IsNotNull(result2); }
public void SetUp() { MongoClient client = new MongoClient(Settings.ConnectionString); client.DropDatabase(Settings.DatabaseName); RepositoryDatabase database = new RepositoryDatabase(Settings); RepositoryInfo result = database.Create(this.snapshotRepoOne); Assert.IsNotNull(result); RepositoryInfo result2 = database.Create(this.snapshotRepoTwo); Assert.IsNotNull(result2); RepositoryInfo result3 = database.Create(this.defaultRepoOne); Assert.IsNotNull(result3); }
public async Task SnapshotModeSetFromStart() { RepositoryDatabase service = new RepositoryDatabase(Settings); string organizationOne = MethodBase.GetCurrentMethod().Name; string repoOne = Guid.NewGuid().ToString(); //add a new repository with snapshot mode RepositoryInfo repo = await service.UpsertUpdate( new RepositoryInfo() { OrganizationName = organizationOne, RepositoryName = repoOne, RepositoryMode = RepositoryMode.Snapshot }).ConfigureAwait(false); repo.RepositoryMode.Should().Be(RepositoryMode.Snapshot); }
public void UpdateTest() { var db = DatabaseHelper.GetHelper("test"); var repos = new RepositoryDatabase <UserProfile>(db); var userprofile = Map.Create <UserProfile>(); /* * 修改一行数据时,Map.Create<UserProfile>()与new UserProfile()对象完全会达到不一样的效果。 * 以下场景是所有表操作经常出现的一种, * Map.Create<UserProfile>()创建的对象,Repository会知道对象哪些属性被赋值过,只生成有过赋值的属性。 * 如:UPDATE UserProfile SET Email=@email WHERE Id=@id * 如果使用new UserProfile() * 如:UPDATE UserProfile SET Name=@name,Email=@email,FixPhone=@fixphone....... WHERE Id=@id */ userprofile.Id = 1; userprofile.Email = "*****@*****.**"; repos.Update(userprofile); }
public void QueryTest2() { var db = DatabaseHelper.GetHelper("test"); var repos = new RepositoryDatabase <UserProfile>(db); var obj1 = repos.Get(1); var obj2 = repos.Get(x => x.Email == "*****@*****.**" && x.Sex == 1); var list1 = repos.GroupbyCount <int>(x => x.Sex, x => x.Id > 1 && x.Id < 1000); var list2 = repos.GroupbyMax <int, int>(x => x.Sex, x => x.Id, x => x.Id > 1 && x.Id < 1000); var list3 = repos.GroupbySum <int, int>(x => x.Sex, x => x.Id, x => x.Id > 1 && x.Id < 1000); var sumValue = repos.Sum <int>(x => x.Id, x => x.Id > 1 && x.Id < 1000 && x.Sex == 1); var maxValue = repos.Max <int>(x => x.Id, x => x.Id > 1 && x.Id < 1000 && x.Sex == 1); }
private async Task SeedProjects(RepositoryDatabase database, RepositoryInfo repo) { ProjectInfo prj = new ProjectInfo() { ProjectName = $"{repo.OrganizationName}_{repo.RepositoryName}_Prj", RepositoryId = repo.Id, Components = { new ComponentManifest() { Tags = new List <string>() { "FindMe" } } } }; await database.Upsert(prj).ConfigureAwait(false); }
private async Task SaveWeatherOffline(WeatherModel weather) { try { //Limpo os dados do banco para não ter duplicidade, e garantir que sempre terá os dados mais novos. await CleanDb(); var database = new RepositoryDatabase(); await database.SaveItem(weather.Currently); await database.SaveList(weather.Daily.Data, RepositoryDatabase.ActionDb.Insert); await database.SaveList(weather.Hourly.Data, RepositoryDatabase.ActionDb.Insert); } catch (Exception e) { Console.WriteLine("Não foi possível salvar os dados no SQLITE"); Console.WriteLine(e.Message); } }
public async Task SnapshotRepo_ShouldOnlyReturnLastProjects() { RepositoryDatabase database = new RepositoryDatabase(Settings); var service = new RepositoryManagementService(database, new Mapper(MappingConfigurationFactory.Create()), this.telemetryClient); await SetSnapshotMode(database, this.testRepoOne).ConfigureAwait(false); var allProjects = await service.GetAllCurrentProjects(this.testRepoOne).ConfigureAwait(false); allProjects.Projects.Count.Should().Be(0, "because there are no projects yet"); ProjectInfo returnedPrj2 = await this.AddTwoProjectsWithSameRepoStamp(service).ConfigureAwait(false); //now add just one with new stamp RepoCat.Transmission.Models.ProjectInfo prj2Again = new RepoCat.Transmission.Models.ProjectInfo() { ProjectName = "Project2", ProjectUri = "SomeLocation", RepositoryInfo = new RepoCat.Transmission.Models.RepositoryInfo() { RepositoryName = this.testRepoOne.RepositoryName, OrganizationName = this.testRepoOne.OrganizationName, }, TargetExtension = "exe", RepositoryStamp = "2.0" }; var returnedPrj2Again = await service.Upsert(prj2Again).ConfigureAwait(false); allProjects = await service.GetAllCurrentProjects(this.testRepoOne).ConfigureAwait(false); allProjects.Projects.Count.Should().Be(1, "because recently only added 1 project"); allProjects.Projects.Should().OnlyContain(x => x.ProjectInfo.RepositoryStamp == "2.0"); returnedPrj2Again.Id.Should().NotBe(returnedPrj2.Id); returnedPrj2Again.ProjectUri.Should().Be(returnedPrj2.ProjectUri); returnedPrj2Again.ProjectName.Should().Be(returnedPrj2.ProjectName); returnedPrj2Again.RepositoryId.Should().Be(returnedPrj2.RepositoryId); }
public async Task TestMultipleRepos_RelevantProjectsDeleted() { //arrange RepositoryDatabase database = new RepositoryDatabase(Settings); var service = new RepositoryManagementService(database, new Mapper(MappingConfigurationFactory.Create()), TelemetryMock.InitializeMockTelemetryClient()); await SeedProjects(service, "Project1", this.snapshotRepoOne, "1.0.0", "2.0.0", "3.0.0"); await SeedProjects(service, "Project2", this.snapshotRepoOne, "1.0.0"); await SeedProjects(service, "Project3", this.snapshotRepoTwo, "1.0.0", "2.0.0", "3.0.0", "4.0.0"); await SeedProjects(service, "Project4", this.snapshotRepoTwo, "1.0.0", "4.0.0"); await SeedProjects(service, "Project5", this.defaultRepoOne, "1.0.0", "5.0.0"); SnapshotRepoCleaner cleaner = new SnapshotRepoCleaner(database); //assuming... Check.That(database.GetAllProjects().Result.Count()).Equals(11); //act SnapshotRepoCleanupResult result = await cleaner.PerformCleanupAsync(new SnapshotRepoCleanupSettings()); //assert Check.That(result.RepositoryResults.Keys.Select(x => x.RepositoryName)).ContainsExactly(this.snapshotRepoOne.RepositoryName, this.snapshotRepoTwo.RepositoryName); Check.That(result.RepositoryResults.Single(x => x.Key.Id == this.snapshotRepoOne.Id).Value.Equals(2)); Check.That(result.RepositoryResults.Single(x => x.Key.Id == this.snapshotRepoTwo.Id).Value.Equals(3)); var allProjects = database.GetAllProjects().Result.ToList(); Check.That(allProjects.Count()).Equals(6); Check.That(allProjects.Where(x => x.RepositoryId == this.snapshotRepoOne.Id).Select(x => x.ProjectName)) .ContainsExactly("Project1", "Project1"); Check.That(allProjects.Where(x => x.RepositoryId == this.snapshotRepoTwo.Id).Select(x => x.ProjectName)) .ContainsExactly("Project3", "Project3", "Project4"); Check.That(allProjects.Where(x => x.RepositoryId == this.defaultRepoOne.Id).Select(x => x.ProjectName)) .ContainsExactly("Project5"); }
public void IsnertTest() { var db = DatabaseHelper.GetHelper("test"); var repos = new RepositoryDatabase <UserProfile>(db); var userprofile = Map.Create <UserProfile>(); /* * Map.Create<UserProfile>()创建一个实体对象,与 new UserProfile()类似。 * 但它们不同在于,Map.Create<UserProfile>()创建的对象可以探测到只赋值过的属性 */ userprofile.Name = "test"; userprofile.Email = "*****@*****.**"; userprofile.FixPhone = "860108888888"; userprofile.Sex = 1; repos.Insert(userprofile); var insertedUser = repos.Get(userprofile.Id); Assert.IsNotNull(insertedUser); Assert.AreEqual(userprofile.Id, insertedUser.Id); Assert.AreEqual(userprofile.Name, insertedUser.Name); Assert.AreEqual(userprofile.Email, insertedUser.Email); Assert.AreEqual(userprofile.FixPhone, insertedUser.FixPhone); }
public void SetUp() { MongoClient client = new MongoClient(Settings.ConnectionString); client.DropDatabase(Settings.DatabaseName); RepositoryDatabase database = new RepositoryDatabase(Settings); RepositoryInfo result = database.Create(this.orgOne_RepoOne); Assert.IsNotNull(result); this.SeedProjects(database, result).GetAwaiter().GetResult(); result = database.Create(this.orgOne_RepoTwo); Assert.IsNotNull(result); this.SeedProjects(database, result).GetAwaiter().GetResult(); result = database.Create(this.orgTwo_RepoOne); Assert.IsNotNull(result); this.SeedProjects(database, result).GetAwaiter().GetResult(); result = database.Create(this.orgTwo_RepoTwo); Assert.IsNotNull(result); this.SeedProjects(database, result).GetAwaiter().GetResult(); result = database.Create(this.orgThree_RepoOne); Assert.IsNotNull(result); this.SeedProjects(database, result).GetAwaiter().GetResult(); result = database.Create(this.orgThree_RepoTwo); Assert.IsNotNull(result); this.SeedProjects(database, result).GetAwaiter().GetResult(); result = database.Create(this.orgThree_RepoThree); Assert.IsNotNull(result); this.SeedProjects(database, result).GetAwaiter().GetResult(); }
static async Task <int> getRepositoryDatabaseCount(RepositoryDatabase repositoryDatabase) { var repositories = await repositoryDatabase.GetRepositories().ConfigureAwait(false); return(repositories.Count()); }
public RepositoryManagementService(RepositoryDatabase database, IMapper mapper, TelemetryClient telemetryClient) { this.database = database; this.mapper = mapper; this.telemetryClient = telemetryClient; }
public Repository(RepositoryDatabase database) { _database = database; }
public Store(RepositoryDatabase repository) { this.repository = repository; }
public async Task DefaultRepo_ShouldReturnUpdatedProjects() { RepositoryDatabase database = new RepositoryDatabase(Settings); var service = new RepositoryManagementService(database, new Mapper(MappingConfigurationFactory.Create()), this.telemetryClient); var allProjects = await service.GetAllCurrentProjects(this.testRepoOne).ConfigureAwait(false); allProjects.Projects.Count.Should().Be(0, "because there are no projects yet"); await this.AddTwoProjectsWithSameRepoStamp(service).ConfigureAwait(false); ProjectInfo returnedPrj2 = await this.AddTwoProjectsWithSameRepoStamp(service).ConfigureAwait(false); //now add just one with new stamp and some changed properties (except for name and URI) RepoCat.Transmission.Models.ProjectInfo prj2Again = new RepoCat.Transmission.Models.ProjectInfo() { ProjectName = "Project2", ProjectUri = "SomeLocation", Owner = "An Owner", ProjectDescription = "A description", RepositoryInfo = new RepoCat.Transmission.Models.RepositoryInfo() { RepositoryName = this.testRepoOne.RepositoryName, OrganizationName = this.testRepoOne.OrganizationName, }, TargetExtension = "exe", RepositoryStamp = "2.0", AssemblyName = "Project2AssName_NEW", Components = { new ComponentManifest(new List <string>() { "Three", "Four" }, new PropertiesCollection() { { "KeyTwo", "ValueTwo" } } ) } }; var returnedPrj2Again = await service.Upsert(prj2Again).ConfigureAwait(false); allProjects = await service.GetAllCurrentProjects(this.testRepoOne).ConfigureAwait(false); allProjects.Projects.Count.Should().Be(2, "because we don't return latest stamp only"); allProjects.Projects.Should().Contain(x => x.ProjectInfo.RepositoryStamp == "2.0"); allProjects.Projects.Should().Contain(x => x.ProjectInfo.RepositoryStamp == "1.0"); returnedPrj2Again.Id.Should().Be(returnedPrj2.Id); returnedPrj2Again.ProjectUri.Should().Be(returnedPrj2.ProjectUri); returnedPrj2Again.ProjectName.Should().Be(returnedPrj2.ProjectName); returnedPrj2Again.RepositoryId.Should().Be(returnedPrj2.RepositoryId); var prj2ReturnedFromQuery = allProjects.Projects.Single(x => string.Equals(x.ProjectInfo.ProjectName, "Project2", StringComparison.Ordinal)); prj2ReturnedFromQuery.ProjectInfo.Id.Should().Be(returnedPrj2Again.Id); prj2ReturnedFromQuery.ProjectInfo.RepositoryStamp.Should().Be("2.0"); prj2ReturnedFromQuery.ProjectInfo.AssemblyName.Should().Be("Project2AssName_NEW"); prj2ReturnedFromQuery.ProjectInfo.Components.Single().Tags.Count.Should().Be(2); prj2ReturnedFromQuery.ProjectInfo.Components.Single().Properties.Count.Should().Be(1); prj2ReturnedFromQuery.ProjectInfo.Components.Single().Properties["KeyTwo"].Should().Be("ValueTwo"); prj2ReturnedFromQuery.ProjectInfo.Owner.Should().Be("An Owner"); prj2ReturnedFromQuery.ProjectInfo.ProjectDescription.Should().Be("A description"); }
public SnapshotRepoCleaner(RepositoryDatabase database) => this.database = database;