/// <summary> /// Dependency injection constructor. /// Intended for unit testing. /// </summary> /// <param name="baseBonus">The base armor class bonus.</param> /// <param name="enhancementBonuses">Tracks enhancement bonuses to the base bonus.</param> /// <exception cref="System.ArgumentNullException">Throw when an argument is null.</exception> internal ArmorClassAggregator(byte baseBonus, IModifierTracker enhancementBonuses) { this.BaseBonus = baseBonus; this.EnhancementBonuses = enhancementBonuses ?? throw new ArgumentNullException(nameof(enhancementBonuses), "Argument may not be null."); }
/// <summary> /// Dependency injection constructor. /// Intended for unit testing. /// </summary> /// <param name="baseHitPoints">The base hit points.</param> /// <param name="enhancementBonuses">Tracks enhancement bonuses to the base bonus.</param> /// <exception cref="System.ArgumentNullException">Thrown when an argument is null.</exception> internal HitPointsAggregator(Func <ushort> baseHitPoints, IModifierTracker enhancementBonuses) { this.BaseHitPoints = baseHitPoints ?? throw new ArgumentNullException(nameof(baseHitPoints), "Argument may not be null."); this.EnhancementBonuses = enhancementBonuses ?? throw new ArgumentNullException(nameof(enhancementBonuses), "Argument may not be null."); }
/// <summary> /// Dependency injection constructor. /// Intended for unit testing. /// </summary> /// <param name="materialHardness">The material's base hardness.</param> /// <param name="enhancementBonuses">Tracks enhancement bonuses to the base bonus.</param> /// <exception cref="System.ArgumentNullException">Thrown when an argument is null.</exception> internal HardnessAggregator(byte materialHardness, IModifierTracker enhancementBonuses) { this.MaterialHardness = materialHardness; this.EnhancementBonuses = enhancementBonuses ?? throw new ArgumentNullException(nameof(enhancementBonuses), "Argument may not be null."); }