public void VerifyMultipleChangesWithTheSameKeyAddedSuccessfully()
        {
            var today           = DateTime.Today;
            var expectedChanges = new List <IChange>
            {
                new DefaultChange("0.1.0", "Added", "This is a change", today, "REL-1234"),
                new DefaultChange("0.1.0", "Added", "This is another change", today, "REL-1235")
            };
            var expectedChangeKey = new ChangeCache.ChangeKey(expectedChanges.First());

            var changeCache = new ChangeCache();

            changeCache.Add(expectedChanges);

            changeCache.ChangeKeyToChanges.TryGetValue(expectedChangeKey, out var actualChanges);

            Assert.That(actualChanges, Is.EquivalentTo(expectedChanges));
        }
        public void VerifyMultipleChangesWithDifferentKeysAddedSuccessfully()
        {
            var today              = DateTime.Today;
            var expectedChange1    = new DefaultChange("0.1.0", "Added", "This is a change", today, "REL-1234");
            var expectedChange2    = new DefaultChange("0.1.0", "Removed", "This is a change", today, "REL-1235");
            var expectedChangeKey1 = new ChangeCache.ChangeKey(expectedChange1);
            var expectedChangeKey2 = new ChangeCache.ChangeKey(expectedChange2);

            var changeCache = new ChangeCache();

            changeCache.Add(new List <IChange> {
                expectedChange1, expectedChange2
            });

            changeCache.ChangeKeyToChanges.TryGetValue(expectedChangeKey1, out var actualChanges1);

            CollectionAssert.Contains(actualChanges1, expectedChange1);
            CollectionAssert.DoesNotContain(actualChanges1, expectedChange2);

            changeCache.ChangeKeyToChanges.TryGetValue(expectedChangeKey2, out var actualChanges2);

            CollectionAssert.Contains(actualChanges2, expectedChange2);
            CollectionAssert.DoesNotContain(actualChanges2, expectedChange1);
        }