public void TechTypes_WhenReadingFromDatabase_Expects_SomeSpecificValuesToBePresent()
        {
            var gameManip     = new ExtraGameManipulator();
            var techTypesList = gameManip.GetAllTechTypes();

            var powerPlantTechType = techTypesList.FirstOrDefault(ttype => ttype.Description == ExtraGameManipulationConstants.TechType_PowerPlantTechnology);

            Assert.IsNotNull(powerPlantTechType);
            Assert.AreEqual(41, powerPlantTechType.TechTypeID);
            Assert.AreEqual(1, powerPlantTechType.FieldID);
            Assert.AreEqual(1, powerPlantTechType.DistributeLowerTech);

            var shieldRegenRateTechType = techTypesList.FirstOrDefault(ttype => ttype.Description == ExtraGameManipulationConstants.TechType_ShieldRegenRate);

            Assert.IsNotNull(shieldRegenRateTechType);
            Assert.AreEqual(14, shieldRegenRateTechType.TechTypeID);
            Assert.AreEqual(7, shieldRegenRateTechType.FieldID);
            Assert.AreEqual(1, shieldRegenRateTechType.DistributeLowerTech);
        }
        public void TechTypes_WhenGettingAllTechTypesMultipleTimes_Should_OnlyGetFromStorageOnce()
        {
            var mockPersistor = new Mock <IGameManipPersistentStorage>();
            var mockTechs     = new Mock <ITechsManipulation>();
            var gameManip     = new ExtraGameManipulator(mockPersistor.Object, mockTechs.Object);

            mockPersistor.Setup(
                m => m.GetAllTechTypesFromStorage()
                ).Returns(new List <TechType>()
            {
                new TechType()
                {
                    TechTypeID = 1, Description = "test"
                }
            });

            gameManip.GetAllTechTypes();
            gameManip.GetAllTechTypes();
            gameManip.GetAllTechTypes();

            mockPersistor.Verify(m => m.GetAllTechTypesFromStorage(), Times.Once);
        }