Skip to content

Commit 59a9d40

Browse files
committed
Added tests for sequence abort self and lower
1 parent 3a82904 commit 59a9d40

File tree

2 files changed

+56
-2
lines changed

2 files changed

+56
-2
lines changed

Assets/FluidBehaviorTree/Editor/Testing/ParentTasks/TaskSequenceTest.cs

Lines changed: 52 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,6 @@ public void It_should_not_update_previous_nodes_when_a_continue_node_is_rerun ()
8585
}
8686

8787
// @TODO Break up these tests into better subsections
88-
// @TODO Builder API for tasks
8988
public class WhenAbortLowerPriority : UpdateMethod {
9089
private Sequence _seqChild;
9190
private ITask _taskCondition;
@@ -361,6 +360,58 @@ public void Should_be_continue_if_a_child_returns_continue () {
361360
Assert.AreEqual(TaskStatus.Continue, _sequence.Update());
362361
}
363362
}
363+
364+
public class WhenAbortSelfAndLowerPriority {
365+
[Test]
366+
public void Triggers_self_abort_when_valid () {
367+
var sequence = new Sequence();
368+
sequence.AbortType |= AbortType.Self;
369+
sequence.AbortType |= AbortType.LowerPriority;
370+
371+
var condition = A.TaskStub()
372+
.WithAbortConditionSelf(true)
373+
.Build();
374+
sequence.AddChild(condition);
375+
376+
var action = A.TaskStub()
377+
.WithUpdateStatus(TaskStatus.Continue)
378+
.Build();
379+
sequence.AddChild(action);
380+
381+
Assert.AreEqual(TaskStatus.Continue, sequence.Update());
382+
383+
condition.Update().Returns(TaskStatus.Failure);
384+
385+
Assert.AreEqual(TaskStatus.Failure, sequence.Update());
386+
}
387+
388+
[Test]
389+
public void Triggers_lower_priority_when_valid () {
390+
var sequence = new Sequence();
391+
sequence.AbortType |= AbortType.Self;
392+
sequence.AbortType |= AbortType.LowerPriority;
393+
394+
var sequenceSub = new Sequence();
395+
sequenceSub.AbortType = AbortType.LowerPriority;
396+
sequence.AddChild(sequenceSub);
397+
398+
var condition = A.TaskStub()
399+
.WithAbortConditionSelf(true)
400+
.Build();
401+
sequenceSub.AddChild(condition);
402+
403+
var action = A.TaskStub()
404+
.WithUpdateStatus(TaskStatus.Continue)
405+
.Build();
406+
sequence.AddChild(action);
407+
408+
Assert.AreEqual(TaskStatus.Continue, sequence.Update());
409+
410+
condition.Update().Returns(TaskStatus.Failure);
411+
412+
Assert.AreEqual(TaskStatus.Failure, sequence.Update());
413+
}
414+
}
364415
}
365416

366417
public class ResetMethod : TaskSequenceTest {

Assets/FluidBehaviorTree/Scripts/TaskParents/Composites/Sequence/AbortType.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
namespace Adnc.FluidBT.TaskParents {
1+
using System;
2+
3+
namespace Adnc.FluidBT.TaskParents {
4+
[Flags]
25
public enum AbortType {
36
None = 0,
47
Self = 1,

0 commit comments

Comments
 (0)