public void WhenSettingData_MonstersAreGenerated()
        {
            IDungeonGameSessionData mockData = Substitute.For <IDungeonGameSessionData>();

            mockData.GetMonsters().Returns(new List <string>()
            {
                "a", "b", "c"
            });
            mockData.GetNumWaves().Returns(3);
            MockMonsterData.GetData(Arg.Any <string>()).Returns(Substitute.For <IMonsterData>());

            systemUnderTest.SetData(mockData);

            Assert.AreEqual(3, systemUnderTest.Monsters.Count);
        }
 private void SetMonsters()
 {
     Monsters = new List <IMonsterWaveData>();
     if (Data.GetMonsters() != null)
     {
         for (int i = 0; i < mData.GetNumWaves(); ++i)
         {
             IMonsterWaveData wave = new MonsterWaveData();
             foreach (string monsterId in Data.GetMonsters())
             {
                 IMonsterData monsterData = mMonsterDataManager.GetData(monsterId);
                 IGameMonster monster     = new GameMonster(monsterData);
                 wave.AddMonster(monster);
             }
             Monsters.Add(wave);
         }
     }
 }