@@ -79,4 +79,56 @@ public void testUpdatePhase_GivenUnknownPhase() {
7979 assertThat (phases .stream ().map (PhaseProgress ::getPhase ).collect (Collectors .toList ()),
8080 contains ("reindexing" , "loading_data" , "foo" , "writing_results" ));
8181 }
82+
83+ public void testUpdateReindexingProgress_GivenLowerValueThanCurrentProgress () {
84+ ProgressTracker progressTracker = ProgressTracker .fromZeroes (Collections .singletonList ("foo" ));
85+
86+ progressTracker .updateReindexingProgress (10 );
87+
88+ progressTracker .updateReindexingProgress (11 );
89+ assertThat (progressTracker .getReindexingProgressPercent (), equalTo (11 ));
90+
91+ progressTracker .updateReindexingProgress (10 );
92+ assertThat (progressTracker .getReindexingProgressPercent (), equalTo (11 ));
93+ }
94+
95+ public void testUpdateLoadingDataProgress_GivenLowerValueThanCurrentProgress () {
96+ ProgressTracker progressTracker = ProgressTracker .fromZeroes (Collections .singletonList ("foo" ));
97+
98+ progressTracker .updateLoadingDataProgress (20 );
99+
100+ progressTracker .updateLoadingDataProgress (21 );
101+ assertThat (progressTracker .getLoadingDataProgressPercent (), equalTo (21 ));
102+
103+ progressTracker .updateLoadingDataProgress (20 );
104+ assertThat (progressTracker .getLoadingDataProgressPercent (), equalTo (21 ));
105+ }
106+
107+ public void testUpdateWritingResultsProgress_GivenLowerValueThanCurrentProgress () {
108+ ProgressTracker progressTracker = ProgressTracker .fromZeroes (Collections .singletonList ("foo" ));
109+
110+ progressTracker .updateWritingResultsProgress (30 );
111+
112+ progressTracker .updateWritingResultsProgress (31 );
113+ assertThat (progressTracker .getWritingResultsProgressPercent (), equalTo (31 ));
114+
115+ progressTracker .updateWritingResultsProgress (30 );
116+ assertThat (progressTracker .getWritingResultsProgressPercent (), equalTo (31 ));
117+ }
118+
119+ public void testUpdatePhase_GivenLowerValueThanCurrentProgress () {
120+ ProgressTracker progressTracker = ProgressTracker .fromZeroes (Collections .singletonList ("foo" ));
121+
122+ progressTracker .updatePhase (new PhaseProgress ("foo" , 40 ));
123+
124+ progressTracker .updatePhase (new PhaseProgress ("foo" , 41 ));
125+ assertThat (getProgressForPhase (progressTracker , "foo" ), equalTo (41 ));
126+
127+ progressTracker .updatePhase (new PhaseProgress ("foo" , 40 ));
128+ assertThat (getProgressForPhase (progressTracker , "foo" ), equalTo (41 ));
129+ }
130+
131+ private static int getProgressForPhase (ProgressTracker progressTracker , String phase ) {
132+ return progressTracker .report ().stream ().filter (p -> p .getPhase ().equals (phase )).findFirst ().get ().getProgressPercent ();
133+ }
82134}
0 commit comments