public void SetLatestWithDefaultSearchFilters(HijackIndexChangeType change, bool latest) { var doc = new MutableHijackDocumentChanges(); doc.ApplyChange(SearchFilters.Default, change); Assert.Equal(latest, doc.LatestStableSemVer1); Assert.Null(doc.LatestSemVer1); Assert.Null(doc.LatestStableSemVer2); Assert.Null(doc.LatestSemVer2); }
public void ApplyChange(SearchFilters searchFilters, HijackIndexChangeType changeType) { bool latest; switch (changeType) { case HijackIndexChangeType.Delete: Guard.Assert( Delete != false, "The hijack document has already been set to not delete."); Guard.Assert( UpdateMetadata != true, "The hijack document has already been set to update metadata."); Delete = true; foreach (var eachSearchFilters in DocumentUtilities.AllSearchFilters) { SetLatest(eachSearchFilters, latest: null); } return; case HijackIndexChangeType.UpdateMetadata: Guard.Assert( UpdateMetadata != false, "The hijack document has already been set to not update metadata."); Guard.Assert( Delete != true, "The hijack document has already been set to delete so metadata can't be updated."); UpdateMetadata = true; return; case HijackIndexChangeType.SetLatestToFalse: latest = false; break; case HijackIndexChangeType.SetLatestToTrue: latest = true; break; default: throw new NotImplementedException($"The hijack index change type '{changeType}' is not supported."); } Guard.Assert( Delete != true, "The hijack document has already been set to delete so the latest value can't be updated."); SetLatest(searchFilters, latest); }
private HijackIndexChange(NuGetVersion version, HijackIndexChangeType type) { Version = version ?? throw new ArgumentNullException(nameof(version)); Type = type; }