public void GetByID_OneItem_ReturnsQuestRequiredKeyItem()
        {
            // Arrange
            QuestRequiredKeyItem entity = new QuestRequiredKeyItem {
                ID = 1
            };

            // Act
            MessageHub.Instance.Publish(new OnCacheObjectSet <QuestRequiredKeyItem>(entity));

            // Assert
            Assert.AreNotSame(entity, _cache.GetByID(1));
        }
        public void GetByID_TwoItems_ReturnsCorrectObject()
        {
            // Arrange
            QuestRequiredKeyItem entity1 = new QuestRequiredKeyItem {
                ID = 1
            };
            QuestRequiredKeyItem entity2 = new QuestRequiredKeyItem {
                ID = 2
            };

            // Act
            MessageHub.Instance.Publish(new OnCacheObjectSet <QuestRequiredKeyItem>(entity1));
            MessageHub.Instance.Publish(new OnCacheObjectSet <QuestRequiredKeyItem>(entity2));

            // Assert
            Assert.AreNotSame(entity1, _cache.GetByID(1));
            Assert.AreNotSame(entity2, _cache.GetByID(2));
        }
        public void GetByID_RemovedItem_ReturnsCorrectObject()
        {
            // Arrange
            QuestRequiredKeyItem entity1 = new QuestRequiredKeyItem {
                ID = 1
            };
            QuestRequiredKeyItem entity2 = new QuestRequiredKeyItem {
                ID = 2
            };

            // Act
            MessageHub.Instance.Publish(new OnCacheObjectSet <QuestRequiredKeyItem>(entity1));
            MessageHub.Instance.Publish(new OnCacheObjectSet <QuestRequiredKeyItem>(entity2));
            MessageHub.Instance.Publish(new OnCacheObjectDeleted <QuestRequiredKeyItem>(entity1));

            // Assert
            Assert.Throws <KeyNotFoundException>(() => { _cache.GetByID(1); });
            Assert.AreNotSame(entity2, _cache.GetByID(2));
        }
        public void GetByID_NoItems_ThrowsKeyNotFoundException()
        {
            // Arrange
            QuestRequiredKeyItem entity1 = new QuestRequiredKeyItem {
                ID = 1
            };
            QuestRequiredKeyItem entity2 = new QuestRequiredKeyItem {
                ID = 2
            };

            // Act
            MessageHub.Instance.Publish(new OnCacheObjectSet <QuestRequiredKeyItem>(entity1));
            MessageHub.Instance.Publish(new OnCacheObjectSet <QuestRequiredKeyItem>(entity2));
            MessageHub.Instance.Publish(new OnCacheObjectDeleted <QuestRequiredKeyItem>(entity1));
            MessageHub.Instance.Publish(new OnCacheObjectDeleted <QuestRequiredKeyItem>(entity2));

            // Assert
            Assert.Throws <KeyNotFoundException>(() => { _cache.GetByID(1); });
            Assert.Throws <KeyNotFoundException>(() => { _cache.GetByID(2); });
        }