public IEnumerable <Good> GenerateAtLevel(int level) { eventQueue.Enqueue("TreasureGen", $"Beginning level {level} goods generation"); var goods = innerGenerator.GenerateAtLevel(level); eventQueue.Enqueue("TreasureGen", $"Completed generation of {goods.Count()} level {level} goods"); return(goods); }
public Treasure GenerateAtLevel(int level) { var treasure = new Treasure(); treasure.Coin = coinFactory.GenerateAtLevel(level); treasure.Goods = goodsFactory.GenerateAtLevel(level); treasure.Items = itemsFactory.GenerateAtLevel(level); return(treasure); }
private void GenerateAndAssertGoods() { var level = GetNewLevel(); var goods = goodsGenerator.GenerateAtLevel(level); Assert.That(goods, Is.Not.Null); foreach (var good in goods) { Assert.That(good.Description, Is.Not.Empty); Assert.That(good.ValueInGold, Is.Positive); } }
public Treasure GenerateAtLevel(int level) { if (level < LevelLimits.Minimum || level > LevelLimits.Maximum) { throw new ArgumentException($"Level {level} is not a valid level for treasure generation"); } var treasure = new Treasure(); treasure.Coin = coinFactory.GenerateAtLevel(level); treasure.Goods = goodsFactory.GenerateAtLevel(level); treasure.Items = itemsFactory.GenerateRandomAtLevel(level); return(treasure); }
public void LogGenerationEvents() { var innerGoods = new List <Good>(); innerGoods.Add(new Good()); innerGoods.Add(new Good()); mockInnerGenerator.Setup(g => g.GenerateAtLevel(9266)).Returns(innerGoods); var Goods = decorator.GenerateAtLevel(9266); Assert.That(Goods, Is.EqualTo(innerGoods)); mockEventQueue.Verify(q => q.Enqueue(It.IsAny <string>(), It.IsAny <string>()), Times.Exactly(2)); mockEventQueue.Verify(q => q.Enqueue("TreasureGen", "Beginning level 9266 goods generation"), Times.Once); mockEventQueue.Verify(q => q.Enqueue("TreasureGen", "Completed generation of 2 level 9266 goods"), Times.Once); }
public void GoodsAreGenerated() { var goods = generator.GenerateAtLevel(1); Assert.That(goods, Is.Not.Null); }
public void GenerateAtLevel_ThrowsException_LevelTooLow() { Assert.That(() => generator.GenerateAtLevel(LevelLimits.Minimum - 1), Throws.ArgumentException.With.Message.EqualTo($"Level 0 is not a valid level for treasure generation")); }