コード例 #1
0
        public IFinalizedCombatStatistics StoreCombatStatistics(IFinalizedCombatStatistics finalizedCombatStatistics)
        {
            Guard.WhenArgument(finalizedCombatStatistics, nameof(IFinalizedCombatStatistics)).IsNull().Throw();

            var combatStatisticsProjection = this.objectMapperProvider.Map <StoredCombatStatisticsViewModel>(finalizedCombatStatistics);

            using (var transaction = this.entityFrameworkTransactionFactory.CreateEntityFrameworkTransaction())
            {
                this.storedCombatStatisticsDataProvider.CreateStoredCombatStatistics(combatStatisticsProjection);

                transaction.SaveChanges();
            }

            return(finalizedCombatStatistics);
        }
コード例 #2
0
        public void ThrowArgumentNullException_WhenIFinalizedCombatStatisticsParameterIsNull()
        {
            // Arrange
            var storedCombatStatisticsDataProvider = new Mock <IStoredCombatStatisticsDataProvider>();
            var businessTransactionFactory         = new Mock <IEntityFrameworkTransactionFactory>();
            var objectMapperProvider = new Mock <IObjectMapperProvider>();

            var combatStatisticsPersistentStorageStrategy = new CombatStatisticsPersistentStorageStrategy(storedCombatStatisticsDataProvider.Object, businessTransactionFactory.Object, objectMapperProvider.Object);

            IFinalizedCombatStatistics finalizedCombatStatistics = null;

            // Act & Assert
            Assert.That(
                () => combatStatisticsPersistentStorageStrategy.StoreCombatStatistics(finalizedCombatStatistics),
                Throws.InstanceOf <ArgumentNullException>().With.Message.Contains(nameof(IFinalizedCombatStatistics)));
        }
コード例 #3
0
        private IFinalizedCombatStatistics GetDamageTakenAndDamageTakenPerSecond(ICombatStatistics combatStatistics, IFinalizedCombatStatistics finalizedCombatStatistics)
        {
            var damageTaken          = combatStatistics.DamageTaken;
            var damageTakenPerSecond = damageTaken / finalizedCombatStatistics.CombatDurationInSeconds;

            finalizedCombatStatistics.DamageTaken          = damageTaken;
            finalizedCombatStatistics.DamageTakenPerSecond = damageTakenPerSecond;

            return(finalizedCombatStatistics);
        }
コード例 #4
0
        private IFinalizedCombatStatistics GetHealingDoneAndHealingDonePerSecond(ICombatStatistics combatStatistics, IFinalizedCombatStatistics finalizedCombatStatistics)
        {
            var healingDone          = combatStatistics.HealingDone;
            var healingDonePerSecond = healingDone / finalizedCombatStatistics.CombatDurationInSeconds;

            finalizedCombatStatistics.HealingDone          = healingDone;
            finalizedCombatStatistics.HealingDonePerSecond = healingDonePerSecond;

            return(finalizedCombatStatistics);
        }
コード例 #5
0
        private IFinalizedCombatStatistics GetDamageDoneAndDamageDonePerSecond(ICombatStatistics combatStatistics, IFinalizedCombatStatistics finalizedCombatStatistics)
        {
            var damageDone          = combatStatistics.DamageDone;
            var damageDonePerSecond = damageDone / finalizedCombatStatistics.CombatDurationInSeconds;

            finalizedCombatStatistics.DamageDone          = damageDone;
            finalizedCombatStatistics.DamageDonePerSecond = damageDonePerSecond;

            return(finalizedCombatStatistics);
        }