public void TestEqualsNull() { var edit = new MergeBlacklistEntry { ProjectId = ProjId }; Assert.IsFalse(edit.Equals(null)); }
public void UpdateMergeBlacklistTest() { var entryA = new MergeBlacklistEntry { Id = "A", ProjectId = ProjId, UserId = UserId, WordIds = new List <string> { "1", "2", "3" } }; var entryB = new MergeBlacklistEntry { Id = "B", ProjectId = ProjId, UserId = UserId, WordIds = new List <string> { "1", "4" } }; _ = _mergeBlacklistRepo.Create(entryA); _ = _mergeBlacklistRepo.Create(entryB); var oldBlacklist = _mergeBlacklistRepo.GetAll(ProjId).Result; Assert.That(oldBlacklist, Has.Count.EqualTo(2)); // Make sure all wordIds are in the frontier EXCEPT 1. var frontier = new List <Word> { new Word { Id = "2", ProjectId = ProjId }, new Word { Id = "3", ProjectId = ProjId }, new Word { Id = "4", ProjectId = ProjId } }; _ = _wordRepo.AddFrontier(frontier).Result; // All entries affected. var updatedEntriesCount = _mergeService.UpdateMergeBlacklist(ProjId).Result; Assert.That(updatedEntriesCount, Is.EqualTo(2)); // The only blacklistEntry with at least two ids in the frontier is A. var newBlacklist = _mergeBlacklistRepo.GetAll(ProjId).Result; Assert.That(newBlacklist, Has.Count.EqualTo(1)); Assert.AreEqual(newBlacklist.First().WordIds, new List <string> { "2", "3" }); }
public Task <ResultOfUpdate> Update(MergeBlacklistEntry entry) { var foundEntry = _mergeBlacklist.Single(e => e.ProjectId == entry.ProjectId && e.Id == entry.Id); var success = _mergeBlacklist.Remove(foundEntry); if (success) { _mergeBlacklist.Add(entry.Clone()); return(Task.FromResult(ResultOfUpdate.Updated)); } return(Task.FromResult(ResultOfUpdate.NotFound)); }
public void TestClone() { var entryA = new MergeBlacklistEntry { Id = EntryId, ProjectId = ProjId, UserId = UserId, WordIds = wordIds }; var entryB = entryA.Clone(); Assert.That(entryA.Equals(entryB)); }
public void AddMergeToBlacklistTest() { _ = _mergeBlacklistRepo.DeleteAll(ProjId).Result; var wordIds = new List <string> { "1", "2" }; _ = _mergeService.AddToMergeBlacklist(ProjId, UserId, wordIds).Result; var blacklist = _mergeBlacklistRepo.GetAll(ProjId).Result; Assert.That(blacklist, Has.Count.EqualTo(1)); var expectedEntry = new MergeBlacklistEntry { ProjectId = ProjId, UserId = UserId, WordIds = wordIds }; Assert.That(expectedEntry.ContentEquals(blacklist.First())); }
public void TestEqualsFalse() { var entryA = new MergeBlacklistEntry(); var entryB = new MergeBlacklistEntry(); entryA.Id = EntryId; Assert.IsFalse(entryA.Equals(entryB)); entryB = entryA.Clone(); entryA.ProjectId = ProjId; Assert.IsFalse(entryA.Equals(entryB)); entryB = entryA.Clone(); entryA.UserId = UserId; Assert.IsFalse(entryA.Equals(entryB)); entryB = entryA.Clone(); entryA.WordIds = wordIds; Assert.IsFalse(entryA.Equals(entryB)); }
/// <summary> Updates specified <see cref="MergeBlacklistEntry"/>. </summary> /// <returns> A <see cref="ResultOfUpdate"/> enum: success of operation. </returns> public async Task <ResultOfUpdate> Update(MergeBlacklistEntry blacklistEntry) { var filter = Builders <MergeBlacklistEntry> .Filter.Eq(x => x.Id, blacklistEntry.Id); var updateDef = Builders <MergeBlacklistEntry> .Update .Set(x => x.ProjectId, blacklistEntry.ProjectId) .Set(x => x.UserId, blacklistEntry.UserId) .Set(x => x.WordIds, blacklistEntry.WordIds); var updateResult = await _mergeBlacklistDatabase.MergeBlacklist.UpdateOneAsync(filter, updateDef); if (!updateResult.IsAcknowledged) { return(ResultOfUpdate.NotFound); } if (updateResult.ModifiedCount > 0) { return(ResultOfUpdate.Updated); } return(ResultOfUpdate.NoChange); }
/// <summary> Adds a List of wordIds to MergeBlacklist of specified <see cref="Project"/>. </summary> /// <exception cref="InvalidBlacklistEntryError"> Throws when wordIds has count less than 2. </exception> /// <returns> The <see cref="MergeBlacklistEntry"/> created. </returns> public async Task <MergeBlacklistEntry> AddToMergeBlacklist( string projectId, string userId, List <string> wordIds) { if (wordIds.Count < 2) { throw new InvalidBlacklistEntryError("Cannot blacklist a list of fewer than 2 wordIds."); } // When we switch from individual to common blacklist, the userId argument here should be removed. var blacklist = await _mergeBlacklistRepo.GetAll(projectId, userId); foreach (var entry in blacklist) { if (entry.WordIds.All(wordIds.Contains)) { await _mergeBlacklistRepo.Delete(projectId, entry.Id); } } var newEntry = new MergeBlacklistEntry { ProjectId = projectId, UserId = userId, WordIds = wordIds }; return(await _mergeBlacklistRepo.Create(newEntry)); }
public Task <MergeBlacklistEntry> Create(MergeBlacklistEntry entry) { entry.Id = Guid.NewGuid().ToString(); _mergeBlacklist.Add(entry.Clone()); return(Task.FromResult(entry.Clone())); }
/// <summary> Adds a <see cref="MergeBlacklistEntry"/>. </summary> /// <returns> The MergeBlacklistEntry created. </returns> public async Task <MergeBlacklistEntry> Create(MergeBlacklistEntry blacklistEntry) { await _mergeBlacklistDatabase.MergeBlacklist.InsertOneAsync(blacklistEntry); return(blacklistEntry); }