public void ThrowArgumentNullException_WhenICombatStatisticsContainerParameterIsNull() { // Arrange var commandResolutionHandler = new OverriddenCanHandleCommandMethodMockCommandResolutionHandler(); var command = new Mock <ICommand>(); ICombatStatisticsContainer combatStatisticsContainer = null; // Act & Assert Assert.That( () => commandResolutionHandler.ResolveCommand(command.Object, combatStatisticsContainer), Throws.InstanceOf <ArgumentNullException>().With.Message.Contains(nameof(ICombatStatisticsContainer))); }
public void ThrowArgumentNullException_WhenICombatStatisticsContainerParameterIsNull() { // Arrange var commandResolutionHandler = new Mock <ICommandResolutionHandler>(); ICombatStatisticsContainer combatStatisticsContainer = null; var combatStatisticsFinalizationStrategy = new Mock <ICombatStatisticsFinalizationStrategy>(); var combatStatisticsPersistentStorageStrategy = new Mock <ICombatStatisticsPersistentStorageStrategy>(); var liveCombatStatisticsCreationStrategy = new Mock <ILiveCombatStatisticsCreationStrategy>(); // Act & Assert Assert.That( () => new LogFileParserEngine(commandResolutionHandler.Object, combatStatisticsContainer, combatStatisticsFinalizationStrategy.Object, combatStatisticsPersistentStorageStrategy.Object, liveCombatStatisticsCreationStrategy.Object), Throws.InstanceOf <ArgumentNullException>().With.Message.Contains(nameof(ICombatStatisticsContainer))); }
public LogFileParserEngine(ICommandResolutionHandler commandResolutionHandler, ICombatStatisticsContainer combatStatisticsContainer, ICombatStatisticsFinalizationStrategy combatStatisticsFinalizationStrategy, ICombatStatisticsPersistentStorageStrategy combatStatisticsPersistentStorageStrategy, ILiveCombatStatisticsCreationStrategy liveCombatStatisticsCreationStrategy) { Guard.WhenArgument(commandResolutionHandler, nameof(ICommandResolutionHandler)).IsNull().Throw(); Guard.WhenArgument(combatStatisticsContainer, nameof(ICombatStatisticsContainer)).IsNull().Throw(); Guard.WhenArgument(combatStatisticsFinalizationStrategy, nameof(ICombatStatisticsFinalizationStrategy)).IsNull().Throw(); Guard.WhenArgument(combatStatisticsPersistentStorageStrategy, nameof(ICombatStatisticsPersistentStorageStrategy)).IsNull().Throw(); Guard.WhenArgument(liveCombatStatisticsCreationStrategy, nameof(ILiveCombatStatisticsCreationStrategy)).IsNull().Throw(); this.commandResolutionHandler = commandResolutionHandler; this.combatStatisticsContainer = combatStatisticsContainer; this.combatStatisticsFinalizationStrategy = combatStatisticsFinalizationStrategy; this.combatStatisticsPersistentStorageStrategy = combatStatisticsPersistentStorageStrategy; this.liveCombatStatisticsCreationStrategy = liveCombatStatisticsCreationStrategy; this.combatStatisticsContainer.OnCurrentCombatChanged += this.OnCurrentCombatStatisticsChanged; }
protected virtual void AssignExitCombatTimestamp(ICommand command, ICombatStatisticsContainer combatStatisticsContainer) { if (combatStatisticsContainer.CurrentCombatStatistics == null) { return; } if (command.TimeStamp != default(DateTime)) { combatStatisticsContainer.CurrentCombatStatistics.ExitCombatTime = command.TimeStamp; if (combatStatisticsContainer.CurrentCombatStatistics.EnterCombatTime == default(DateTime)) { combatStatisticsContainer.CurrentCombatStatistics.EnterCombatTime = command.TimeStamp; } } }
public ICombatStatisticsContainer ResolveCommand(ICommand command, ICombatStatisticsContainer combatStatisticsContainer) { Guard.WhenArgument(command, nameof(ICommand)).IsNull().Throw(); Guard.WhenArgument(combatStatisticsContainer, nameof(ICombatStatisticsContainer)).IsNull().Throw(); if (this.CanHandleCommand(command)) { return(this.HandleCommand(command, combatStatisticsContainer)); } else if (this.NextCommandResolutionHandler != null) { return(this.NextCommandResolutionHandler.ResolveCommand(command, combatStatisticsContainer)); } else { return(combatStatisticsContainer); } }
internal new ICombatStatisticsContainer HandleCommand(ICommand command, ICombatStatisticsContainer combatStatisticsContainer) { return(base.HandleCommand(command, combatStatisticsContainer)); }
protected override ICombatStatisticsContainer HandleCommand(ICommand command, ICombatStatisticsContainer combatStatisticsContainer) { if (combatStatisticsContainer.CurrentCombatStatistics != null) { combatStatisticsContainer.CurrentCombatStatistics.DamageDone += command.EffectEffectiveAmount; base.AssignExitCombatTimestamp(command, combatStatisticsContainer); } return(combatStatisticsContainer); }
protected override ICombatStatisticsContainer HandleCommand(ICommand command, ICombatStatisticsContainer combatStatisticsContainer) { this.HandleCommandMethodICommandParameter = command; this.HandleCommandMethodICombatStatisticsContainerParameter = combatStatisticsContainer; this.HandleCommandMethodIsCalled = true; return(this.HandleCommandMethodReturnValue); }
protected override ICombatStatisticsContainer HandleCommand(ICommand command, ICombatStatisticsContainer combatStatisticsContainer) { base.AssignExitCombatTimestamp(command, combatStatisticsContainer); combatStatisticsContainer.CurrentCombatStatistics = this.combatStatisticsFactory.CreateCombatStatistics(); combatStatisticsContainer.AllCombatStatistics.Add(combatStatisticsContainer.CurrentCombatStatistics); combatStatisticsContainer.CurrentCombatStatistics.CharacterName = command.AbilityActivatorName; combatStatisticsContainer.CurrentCombatStatistics.EnterCombatTime = command.TimeStamp; return(combatStatisticsContainer); }
internal MockLogFileParserEngine(ICommandResolutionHandler commandResolutionHandler, ICombatStatisticsContainer combatStatisticsContainer, ICombatStatisticsFinalizationStrategy combatStatisticsFinalizationStrategy, ICombatStatisticsPersistentStorageStrategy combatStatisticsPersistentStorageStrategy, ILiveCombatStatisticsCreationStrategy liveCombatStatisticsCreationStrategy) : base(commandResolutionHandler, combatStatisticsContainer, combatStatisticsFinalizationStrategy, combatStatisticsPersistentStorageStrategy, liveCombatStatisticsCreationStrategy) { }
protected override ICombatStatisticsContainer HandleCommand(ICommand command, ICombatStatisticsContainer combatStatisticsContainer) { throw new NotImplementedException(); }
public void EnqueueCommand(ICommand command) { Guard.WhenArgument(command, nameof(ICommand)).IsNull().Throw(); this.combatStatisticsContainer = this.commandResolutionHandler.ResolveCommand(command, this.combatStatisticsContainer); }
protected override ICombatStatisticsContainer HandleCommand(ICommand command, ICombatStatisticsContainer combatStatisticsContainer) { combatStatisticsContainer.CurrentCombatStatistics.ExitCombatTime = command.TimeStamp; combatStatisticsContainer.CurrentCombatStatistics.IsCompleted = true; combatStatisticsContainer.CurrentCombatStatistics = null; base.AssignExitCombatTimestamp(command, combatStatisticsContainer); return(combatStatisticsContainer); }
protected abstract ICombatStatisticsContainer HandleCommand(ICommand command, ICombatStatisticsContainer combatStatisticsContainer);