/// <summary> /// Gets the die roller based on specified type. /// </summary> /// <param name="type">Type string</param> /// <param name="tracker">Die roll tracker to use</param> /// <returns>Instance of die roller, or null if none found.</returns> public IDieRoller GetDieRoller(string type, IDieRollTracker tracker = null) { IDieRoller roller = null; if (type == typeof(ConstantDieRoller).ToString()) { roller = new ConstantDieRoller(); } else if (type == typeof(RandomDieRoller).ToString()) { roller = new RandomDieRoller(tracker); } else if (type == typeof(SecureRandomDieRoller).ToString()) { roller = new SecureRandomDieRoller(tracker); } else if (type == typeof(MathNetDieRoller).ToString()) { roller = new MathNetDieRoller(tracker); } else { throw new ArgumentOutOfRangeException(nameof(type)); } return(roller); }
public void Configure(RollerType rollerType, bool enableTracker = false, int constantValue = 1) { RollTracker = enableTracker ? new DieRollTracker() : null; switch (rollerType) { case RollerType.Random: DieRoller = new RandomDieRoller(RollTracker); break; case RollerType.Crypto: DieRoller = new CryptoDieRoller(RollTracker); break; case RollerType.MathNet: DieRoller = new MathNetDieRoller(RollTracker); break; case RollerType.Constant: DieRoller = new ConstantDieRoller(constantValue); break; default: throw new ArgumentOutOfRangeException(nameof(rollerType)); } }
public void ConstantDieRoller_RollConstantTest() { // setup test IDieRoller die = new ConstantDieRoller(3); // run test int result = die.Roll(6); // validate results Assert.AreEqual(3, result); }
public void ConstantDieRoller_DefaultConstructorTest() { // setup test // run test IDieRoller die = new ConstantDieRoller(); // validate results Assert.IsNotNull(die); Assert.IsInstanceOfType(die, typeof(IDieRoller)); Assert.IsInstanceOfType(die, typeof(ConstantDieRoller)); }