11/***************************************************************************************************
22 *
3- * Copyright (c) 2013 - 2025 Universitat Politecnica de Valencia - www.upv.es
4- * Copyright (c) 2018 - 2025 Open Universiteit - www.ou.nl
3+ * Copyright (c) 2013 - 2026 Universitat Politecnica de Valencia - www.upv.es
4+ * Copyright (c) 2018 - 2026 Open Universiteit - www.ou.nl
55 *
66 * Redistribution and use in source and binary forms, with or without
77 * modification, are permitted provided that the following conditions are met:
3232
3333import static org .junit .Assert .*;
3434
35+ import java .util .Arrays ;
36+
3537import org .junit .Test ;
38+ import org .testar .monkey .alayer .visualizers .RegionsVisualizer ;
39+ import org .testar .monkey .alayer .visualizers .ShapeVisualizer ;
3640
3741public class VerdictTest {
3842
@@ -43,10 +47,17 @@ public class VerdictTest {
4347 public void run (State s , Canvas c , Pen pen ) {}
4448 };
4549
46- private final Visualizer failVisualizer = new Visualizer (){
47- private static final long serialVersionUID = -2732461936562344367L ;
48- public void run (State s , Canvas c , Pen pen ) {}
49- };
50+ private final Visualizer failVisualizer = new ShapeVisualizer (
51+ Pen .PEN_RED ,
52+ Rect .from (0 , 0 , 10 , 10 ),
53+ "Fail Visualizer" ,
54+ 0.5 , 0.5 );
55+
56+ private final Visualizer issueVisualizer = new RegionsVisualizer (
57+ Pen .PEN_RED ,
58+ Arrays .asList (Rect .from (0 , 0 , 10 , 10 )),
59+ "Issue Visualizer" ,
60+ 0.5 , 0.5 );
5061
5162 @ Test
5263 public void testToString () {
@@ -60,6 +71,8 @@ public void testJoin() {
6071 Verdict v1 = new Verdict (Verdict .Severity .OK , "Foo Bar" );
6172 Verdict v2 = new Verdict (Verdict .Severity .FAIL , "Bar" , failVisualizer );
6273 Verdict v3 = new Verdict (Verdict .Severity .OK , "Baz" , dummyVisualizer );
74+ Verdict v4 = new Verdict (Verdict .Severity .FAIL , "Exception" , issueVisualizer );
75+ Verdict emptyVisualizerVerdict = new Verdict (Verdict .Severity .FAIL , "Empty" );
6376
6477 assertTrue ("Joining two Verdicts shall create a new Verdict" ,
6578 v1 != v1 .join (v2 ));
@@ -79,11 +92,29 @@ public void testJoin() {
7992 "then both infos shall be included separated by a line break" ,
8093 "Bar\n Baz" , v2 .join (v3 ).info ());
8194
82- assertTrue ("Joining two Verdicts shall use the Visualizer of the Verdict with high severity" ,
95+ assertTrue ("Joining an OK and Fail Verdicts shall use the Visualizer of the Verdict with high severity" ,
8396 v2 .join (v1 ).visualizer () == failVisualizer );
8497
85- assertTrue ("Joining two Verdicts shall use the Visualizer of the Verdict with high severity" ,
98+ assertTrue ("Joining an OK and Fail Verdicts shall use the Visualizer of the Verdict with high severity" ,
8699 v1 .join (v2 ).visualizer () == failVisualizer );
100+
101+ assertTrue ("Joining Fail and Issue Verdicts must contain Fail Shapes" ,
102+ v2 .join (v4 ).visualizer ().getShapes ().containsAll (failVisualizer .getShapes ()));
103+
104+ assertTrue ("Joining Issue and Fail Verdicts must contain Fail Shapes" ,
105+ v4 .join (v2 ).visualizer ().getShapes ().containsAll (failVisualizer .getShapes ()));
106+
107+ assertTrue ("Joining Fail and Issue Verdicts must contain Issue Shapes" ,
108+ v2 .join (v4 ).visualizer ().getShapes ().containsAll (issueVisualizer .getShapes ()));
109+
110+ assertTrue ("Joining Issue and Fail Verdicts must contain Issue Shapes" ,
111+ v4 .join (v2 ).visualizer ().getShapes ().containsAll (issueVisualizer .getShapes ()));
112+
113+ assertTrue ("Joining Fail and emptyVisualizerVerdict Verdicts must equal Fail visualizer" ,
114+ v2 .join (emptyVisualizerVerdict ).visualizer () == failVisualizer );
115+
116+ assertTrue ("Joining emptyVisualizerVerdict and Fail Verdicts must equal Fail visualizer" ,
117+ emptyVisualizerVerdict .join (v2 ).visualizer () == failVisualizer );
87118 }
88119
89120 @ Test
0 commit comments