public void Hide_NullItemKeyThrowsArgumentNullException()
        {
            //Arrange
            IfCurrentItemNotInInstantPackageHide testObject = new IfCurrentItemNotInInstantPackageHide(new TestCache());

            _testInstantPackageManager.AddItem(_testItemKey1);
            _testInstantPackageManager.AddItem(_testItemKey2);
            _testInstantPackageManager.AddItem(_testItemKey3);

            // Act & Assert
            Assert.Throws <ArgumentNullException>(() => testObject.Hide(null));
        }
        public void Hide_PackageContainsOnlyItemReturnsFalse()
        {
            //Arrange
            IfCurrentItemNotInInstantPackageHide testObject = new IfCurrentItemNotInInstantPackageHide(new TestCache());

            _testInstantPackageManager.AddItem(_testItemKey1);

            //Act
            bool hidden = testObject.Hide(_testItemKey1);

            //Assert
            Assert.IsFalse(hidden);
        }
        public void Hide_PackageDoesNotContainItemReturnsTrue()
        {
            //Arrange
            IfCurrentItemNotInInstantPackageHide testObject = new IfCurrentItemNotInInstantPackageHide(new TestCache());

            _testInstantPackageManager.AddItem(_testItemKey1);
            _testInstantPackageManager.AddItem(_testItemKey2);
            _testInstantPackageManager.AddItem(_testItemKey3);

            //Act
            bool hidden = testObject.Hide(_testItemKey4);

            //Assert
            Assert.IsTrue(hidden);
        }
        public void Hide_PackageContainsSeveralItemsIncludingTargetReturnsFalse()
        {
            //Arrange
            IfCurrentItemNotInInstantPackageHide testObject = new IfCurrentItemNotInInstantPackageHide(new TestCache());

            _testInstantPackageManager.AddItem(_testItemKey1);
            _testInstantPackageManager.AddItem(_testItemKey2);
            _testInstantPackageManager.AddItem(_testItemKey3);
            _testInstantPackageManager.AddItem(_testItemKey4);

            //Act
            bool hidden = testObject.Hide(_testItemKey1);

            //Assert
            Assert.IsFalse(hidden);
        }
        public void Hide_EmptyPackageReturnsTrue()
        {
            //Arrange
            IfCurrentItemNotInInstantPackageHide testObject = new IfCurrentItemNotInInstantPackageHide(new TestCache());

            //Act
            bool hidden1 = testObject.Hide(_testItemKey1);
            bool hidden2 = testObject.Hide(_testItemKey2);
            bool hidden3 = testObject.Hide(_testItemKey3);
            bool hidden4 = testObject.Hide(_testItemKey4);

            //Assert
            Assert.IsTrue(hidden1);
            Assert.IsTrue(hidden2);
            Assert.IsTrue(hidden3);
            Assert.IsTrue(hidden4);
        }