/// <summary> /// Returns a move with the given actions. /// </summary> public static Move CreateMove( string name = "yeti", string description = "amon", int maxUses = 5, MoveSuccessCalculatorFactory successCalculatorFactory = null, params IAction[] moveActions) { if (successCalculatorFactory is null) { successCalculatorFactory = () => new AlwaysMoveSuccessCalculator(); } var builder = new MoveBuilder() .Name(name) .Describe(description) .WithMaxUses(maxUses) .WithSuccessCalculatorFactory(successCalculatorFactory); foreach (var action in moveActions) { builder = builder.WithAction(action); } return(builder.Build()); }
public void Build_MissingMaxUses_Throws() { // Arrange var builder = new MoveBuilder() .Name("caribou") .Describe("andorra") .AlwaysSucceeds(); // Act and Assert Assert.Throws <InvalidOperationException>(() => _ = builder.Build()); }
public void Build_MissingSuccessCalculator_Throws() { // Arrange var builder = new MoveBuilder() .Name("caribou") .Describe("andorra") .WithMaxUses(9); // Act and Assert Assert.Throws <InvalidOperationException>(() => _ = builder.Build()); }
public void Build_CallsPresent_Succeeds() { // Arrange var builder = new MoveBuilder() .Name("caribou") .Describe("andorra") .WithMaxUses(9) .WithPriority(1) .WithAccuracy(100, Mock.Of <Random>()); // Act var move = builder.Build(); // Assert Assert.That(move, Is.Not.Null); }
/// <summary> /// Returns a move with the given actions. /// </summary> public static Move CreateMove( string name = "yeti", string description = "amon", int maxUses = 5, ISuccessCalculator successCalculator = null, params IAction[] moveActions) { var builder = new MoveBuilder() .Name(name) .Describe(description) .WithMaxUses(maxUses) .WithSuccessCalculator(successCalculator ?? new AlwaysSuccessCalculator()); foreach (var action in moveActions) { builder = builder.WithAction(action); } return(builder.Build()); }
private static void AppendMoveAsIs(MoveBuilder moveBuilder, List <Move> moves) { moves.Add(moveBuilder.Build()); }