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.hipparchus.CalculusFieldElement;
20 import org.hipparchus.util.Binary64;
21 import org.hipparchus.util.Binary64Field;
22 import org.junit.jupiter.api.Assertions;
23 import org.junit.jupiter.api.Test;
24 import org.mockito.Mockito;
25 import org.orekit.propagation.FieldSpacecraftState;
26 import org.orekit.propagation.events.handlers.FieldEventHandler;
27 import org.orekit.propagation.events.handlers.FieldStopOnEvent;
28 import org.orekit.time.FieldAbsoluteDate;
29
30 class FieldDetectorModifierTest {
31
32 @Test
33 @SuppressWarnings("unchecked")
34 void testGetDetectionSettings() {
35
36 final FieldEventDetector<?> detector = Mockito.mock(FieldEventDetector.class);
37 final FieldEventDetectionSettings detectionSettings = Mockito.mock(FieldEventDetectionSettings.class);
38 Mockito.when(detector.getDetectionSettings()).thenReturn(detectionSettings);
39 final TestFieldDetector<?> modifierDetector = new TestFieldDetector<>(detector);
40
41 final FieldEventDetectionSettings<?> actualSettings = modifierDetector.getDetectionSettings();
42
43 Assertions.assertEquals(detectionSettings, actualSettings);
44 }
45
46 @Test
47 @SuppressWarnings("unchecked")
48
49 void testGetHandler() {
50
51 final FieldEventDetector<?> detector = Mockito.mock(FieldEventDetector.class);
52 final FieldEventHandler handler = Mockito.mock(FieldEventHandler.class);
53 Mockito.when(detector.getHandler()).thenReturn(handler);
54 final TestFieldDetector<?> modifierDetector = new TestFieldDetector<>(detector);
55
56 final FieldEventHandler<?> actualHandler = modifierDetector.getHandler();
57
58 Assertions.assertEquals(handler, actualHandler);
59 }
60
61 @Test
62 @SuppressWarnings("unchecked")
63 void testInit() {
64
65 final FieldEventDetector<?> detector = Mockito.mock(FieldEventDetector.class);
66 Mockito.when(detector.getHandler()).thenReturn(new FieldStopOnEvent<>());
67 final FieldSpacecraftState mockedState = Mockito.mock(FieldSpacecraftState.class);
68 final FieldAbsoluteDate mockedDate = Mockito.mock(FieldAbsoluteDate.class);
69 final TestFieldDetector<?> modifierDetector = new TestFieldDetector<>(detector);
70
71 modifierDetector.init(mockedState, mockedDate);
72
73 Mockito.verify(detector).init(mockedState, mockedDate);
74 }
75
76 @Test
77 @SuppressWarnings("unchecked")
78 void testReset() {
79
80 final FieldEventDetector<?> detector = Mockito.mock(FieldEventDetector.class);
81 Mockito.when(detector.getHandler()).thenReturn(new FieldStopOnEvent<>());
82 final FieldSpacecraftState mockedState = Mockito.mock(FieldSpacecraftState.class);
83 final FieldAbsoluteDate mockedDate = Mockito.mock(FieldAbsoluteDate.class);
84 final TestFieldDetector<?> modifierDetector = new TestFieldDetector<>(detector);
85
86 modifierDetector.reset(mockedState, mockedDate);
87
88 Mockito.verify(detector).reset(mockedState, mockedDate);
89 }
90
91 @Test
92 @SuppressWarnings("unchecked")
93 void testG() {
94
95 final Binary64Field field = Binary64Field.getInstance();
96 final FieldAbsoluteDate<Binary64> date = FieldAbsoluteDate.getArbitraryEpoch(field);
97 final FieldEventDetector<Binary64> detector = new FieldDateDetector<>(date);
98 final FieldSpacecraftState<Binary64> mockedState = Mockito.mock(FieldSpacecraftState.class);
99 Mockito.when(mockedState.getDate()).thenReturn(date);
100 final TestFieldDetector<Binary64> modifierDetector = new TestFieldDetector<>(detector);
101
102 final double actualG = modifierDetector.g(mockedState).getReal();
103
104 Assertions.assertEquals(detector.g(mockedState).getReal(), actualG);
105 }
106
107 @Test
108 @SuppressWarnings("unchecked")
109 void testFinish() {
110
111 final FieldEventDetector<?> detector = Mockito.mock(FieldEventDetector.class);
112 Mockito.when(detector.getHandler()).thenReturn(new FieldStopOnEvent<>());
113 final FieldSpacecraftState mockedState = Mockito.mock(FieldSpacecraftState.class);
114 final TestFieldDetector<?> modifierDetector = new TestFieldDetector<>(detector);
115
116 modifierDetector.finish(mockedState);
117
118 Mockito.verify(detector).finish(mockedState);
119 }
120
121 @Deprecated
122 @Test
123 void testAdapterDetector() {
124
125 final FieldDateDetector<Binary64> detector = new FieldDateDetector<>(Binary64Field.getInstance());
126
127 final FieldAdapterDetector<Binary64> adapterDetector = new FieldAdapterDetector<>(detector);
128
129 final TestFieldDetector<Binary64> detectorModifier = new TestFieldDetector<>(detector);
130 Assertions.assertEquals(detectorModifier.getDetector(), adapterDetector.getDetector());
131 }
132
133 private static class TestFieldDetector<T extends CalculusFieldElement<T>> implements FieldDetectorModifier<T> {
134
135 private final FieldEventDetector<T> detector;
136
137 TestFieldDetector(final FieldEventDetector<T> detector) {
138 this.detector = detector;
139 }
140
141 @Override
142 public FieldEventDetector<T> getDetector() {
143 return detector;
144 }
145 }
146 }