public void MultiplierProperty_ValidBaseValueAndMultiplier_ReturnsValueFromConstructor() { // Arrange SegmentMultiplier expectedMultiplier = SegmentMultiplier.Triple; // Act Dart subject = new Dart(5, expectedMultiplier); // Assert Assert.AreEqual(expectedMultiplier, subject.Multiplier, "Multiplier was not the expected value"); }
public void MultiplierProperty_BaseValue0MultiplierNotMiss_ReturnsMiss() { // Arrange SegmentMultiplier expectedMultiplier = SegmentMultiplier.Miss; // Act Dart subject = new Dart(0, SegmentMultiplier.Single); // Assert Assert.AreEqual(expectedMultiplier, subject.Multiplier, "Multiplier was not the expected value"); }
public void MultiplierProperty_BaseValue25MultiplierTriple_ReturnsDouble() { // Arrange SegmentMultiplier expectedMultiplier = SegmentMultiplier.Double; // Act Dart subject = new Dart(25, SegmentMultiplier.Triple); // Assert Assert.AreEqual(expectedMultiplier, subject.Multiplier, "Multiplier was not the expected value"); }
/// <summary> /// Creates an instance of a Dart. /// </summary> /// <param name="baseValue">The number of the dart board segment. Can be 0-20 or 25. If multiplier is set to Miss, BaseValue will always be set to 0</param> /// <param name="multiplier">The scoring multiplier of the scoring area of the dart board segment. If BaseValue is set to 0, then Multiplier will be set to Miss</param> public Dart(int baseValue, SegmentMultiplier multiplier) { if ((0 <= baseValue && 20 >= baseValue) || 25 == baseValue) { BaseValue = SegmentMultiplier.Miss == multiplier ? 0 : baseValue; Multiplier = (0 == BaseValue && SegmentMultiplier.Miss != multiplier) ? SegmentMultiplier.Miss : (25 == BaseValue && SegmentMultiplier.Triple == multiplier) ? SegmentMultiplier.Double : multiplier; } else { throw new ArgumentOutOfRangeException("baseValue", "baseValue must be 0 - 20 or 25"); } }