1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.orekit.propagation.events;
18
19 import org.junit.jupiter.api.Test;
20 import org.mockito.Mockito;
21 import org.orekit.propagation.SpacecraftState;
22 import org.orekit.propagation.events.handlers.ContinueOnEvent;
23 import org.orekit.propagation.events.handlers.EventHandler;
24 import org.orekit.time.AbsoluteDate;
25
26 import static org.junit.jupiter.api.Assertions.*;
27
28 class BooleanDetectorTest {
29
30 @Test
31 void testInit() {
32
33 final TestDetector detector = new TestDetector();
34 final BooleanDetector booleanDetector = BooleanDetector.andCombine(detector);
35 final AbsoluteDate date = AbsoluteDate.ARBITRARY_EPOCH;
36 final SpacecraftState mockedState = Mockito.mock(SpacecraftState.class);
37 Mockito.when(mockedState.getDate()).thenReturn(date);
38
39 booleanDetector.init(mockedState, date);
40
41 assertFalse(detector.finished);
42 assertFalse(detector.resetted);
43 assertTrue(detector.initialized);
44 }
45
46 @Test
47 void testReset() {
48
49 final TestDetector detector = new TestDetector();
50 final BooleanDetector booleanDetector = BooleanDetector.orCombine(detector);
51 final AbsoluteDate date = AbsoluteDate.ARBITRARY_EPOCH;
52 final SpacecraftState mockedState = Mockito.mock(SpacecraftState.class);
53 Mockito.when(mockedState.getDate()).thenReturn(date);
54
55 booleanDetector.reset(mockedState, date);
56
57 assertTrue(detector.resetted);
58 assertFalse(detector.finished);
59 assertFalse(detector.initialized);
60 }
61
62 @Test
63 void testFinish() {
64
65 final TestDetector detector = new TestDetector();
66 final BooleanDetector booleanDetector = BooleanDetector.orCombine(detector);
67 final AbsoluteDate date = AbsoluteDate.ARBITRARY_EPOCH;
68 final SpacecraftState mockedState = Mockito.mock(SpacecraftState.class);
69 Mockito.when(mockedState.getDate()).thenReturn(date);
70
71 booleanDetector.finish(mockedState);
72
73 assertTrue(detector.finished);
74 assertFalse(detector.resetted);
75 assertFalse(detector.initialized);
76 }
77
78 private static class TestDetector implements EventDetector {
79
80 boolean initialized = false;
81 boolean resetted = false;
82 boolean finished = false;
83
84 @Override
85 public double g(SpacecraftState s) {
86 return 1;
87 }
88
89 @Override
90 public void init(SpacecraftState s0, AbsoluteDate t) {
91 EventDetector.super.init(s0, t);
92 initialized = true;
93 }
94
95 @Override
96 public void reset(SpacecraftState state, AbsoluteDate target) {
97 EventDetector.super.reset(state, target);
98 resetted = true;
99 }
100
101 @Override
102 public void finish(SpacecraftState state) {
103 EventDetector.super.finish(state);
104 finished = true;
105 }
106
107 @Override
108 public EventHandler getHandler() {
109 return new ContinueOnEvent();
110 }
111 }
112 }