public void GetByID_OneItem_ReturnsQuestPrerequisite() { // Arrange QuestPrerequisite entity = new QuestPrerequisite { ID = 1 }; // Act MessageHub.Instance.Publish(new OnCacheObjectSet <QuestPrerequisite>(entity)); // Assert Assert.AreNotSame(entity, _cache.GetByID(1)); }
/// <summary> /// Adds prerequisite that has to be met before auto receiving the quest. /// </summary> /// <param name="prerequisite"></param> protected void AddPrerequisite(QuestPrerequisite prerequisite) { this.Prerequisites.Add(prerequisite); if (prerequisite is QuestPrerequisiteQuestCompleted) { ChannelServer.Instance.Events.PlayerCompletesQuest -= this.OnPlayerCompletesQuest; ChannelServer.Instance.Events.PlayerCompletesQuest += this.OnPlayerCompletesQuest; } if (prerequisite is QuestPrerequisiteReachedLevel || prerequisite is QuestPrerequisiteReachedTotalLevel) { ChannelServer.Instance.Events.CreatureLevelUp -= this.OnCreatureLevelUp; ChannelServer.Instance.Events.CreatureLevelUp += this.OnCreatureLevelUp; } }
public void GetByID_TwoItems_ReturnsCorrectObject() { // Arrange QuestPrerequisite entity1 = new QuestPrerequisite { ID = 1 }; QuestPrerequisite entity2 = new QuestPrerequisite { ID = 2 }; // Act MessageHub.Instance.Publish(new OnCacheObjectSet <QuestPrerequisite>(entity1)); MessageHub.Instance.Publish(new OnCacheObjectSet <QuestPrerequisite>(entity2)); // Assert Assert.AreNotSame(entity1, _cache.GetByID(1)); Assert.AreNotSame(entity2, _cache.GetByID(2)); }
public void GetByID_RemovedItem_ReturnsCorrectObject() { // Arrange QuestPrerequisite entity1 = new QuestPrerequisite { ID = 1 }; QuestPrerequisite entity2 = new QuestPrerequisite { ID = 2 }; // Act MessageHub.Instance.Publish(new OnCacheObjectSet <QuestPrerequisite>(entity1)); MessageHub.Instance.Publish(new OnCacheObjectSet <QuestPrerequisite>(entity2)); MessageHub.Instance.Publish(new OnCacheObjectDeleted <QuestPrerequisite>(entity1)); // Assert Assert.Throws <KeyNotFoundException>(() => { _cache.GetByID(1); }); Assert.AreNotSame(entity2, _cache.GetByID(2)); }
public void GetByID_NoItems_ThrowsKeyNotFoundException() { // Arrange QuestPrerequisite entity1 = new QuestPrerequisite { ID = 1 }; QuestPrerequisite entity2 = new QuestPrerequisite { ID = 2 }; // Act MessageHub.Instance.Publish(new OnCacheObjectSet <QuestPrerequisite>(entity1)); MessageHub.Instance.Publish(new OnCacheObjectSet <QuestPrerequisite>(entity2)); MessageHub.Instance.Publish(new OnCacheObjectDeleted <QuestPrerequisite>(entity1)); MessageHub.Instance.Publish(new OnCacheObjectDeleted <QuestPrerequisite>(entity2)); // Assert Assert.Throws <KeyNotFoundException>(() => { _cache.GetByID(1); }); Assert.Throws <KeyNotFoundException>(() => { _cache.GetByID(2); }); }
/// <summary> /// Adds prerequisite that has to be met before auto receiving the quest. /// </summary> /// <param name="prerequisite"></param> protected void AddPrerequisite(QuestPrerequisite prerequisite) { this.Prerequisites.Add(prerequisite); if (prerequisite.Is(typeof(QuestPrerequisiteQuestCompleted))) { ChannelServer.Instance.Events.PlayerCompletesQuest -= this.OnPlayerCompletesQuest; ChannelServer.Instance.Events.PlayerCompletesQuest += this.OnPlayerCompletesQuest; } if (prerequisite.Is(typeof(QuestPrerequisiteReachedLevel)) || prerequisite.Is(typeof(QuestPrerequisiteReachedTotalLevel))) { ChannelServer.Instance.Events.CreatureLevelUp -= this.OnCreatureLevelUp; ChannelServer.Instance.Events.CreatureLevelUp += this.OnCreatureLevelUp; } if (prerequisite.Is(typeof(QuestPrerequisiteReachedRank))) { ChannelServer.Instance.Events.SkillRankChanged -= this.OnSkillRankChanged; ChannelServer.Instance.Events.SkillRankChanged += this.OnSkillRankChanged; } }