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);
            }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
 private HijackIndexChange(NuGetVersion version, HijackIndexChangeType type)
 {
     Version = version ?? throw new ArgumentNullException(nameof(version));
     Type    = type;
 }