@@ -26,30 +26,138 @@ public class MessageFilterModelTest {
2626 @ Test
2727 public void testMessageFilterEqualityAndToString () {
2828 var left = new MessageFilter ();
29+ var right = new MessageFilter ();
2930
31+ assertTrue (left .isEmpty ());
32+ assertEquals (left , right );
3033 assertEquals ("(no criteria)" , left .toString ());
34+ assertFalse (left .equals ((Object ) null ));
3135
3236 left .setMaxMessageId (200L );
37+ assertNotEquals (left , right );
38+ assertNotNull (left .toString ());
39+ right .setMaxMessageId (200L );
40+ assertEquals (left , right );
41+
3342 left .setMinMessageId (100L );
43+ assertNotEquals (left , right );
44+ assertNotNull (left .toString ());
45+ right .setMinMessageId (100L );
46+ assertEquals (left , right );
47+
3448 left .setOriginalIdLower (10L );
49+ assertNotEquals (left , right );
50+ assertNotNull (left .toString ());
51+ right .setOriginalIdLower (10L );
52+ assertEquals (left , right );
53+
3554 left .setOriginalIdUpper (20L );
55+ assertNotEquals (left , right );
56+ assertNotNull (left .toString ());
57+ right .setOriginalIdUpper (20L );
58+ assertEquals (left , right );
59+
3660 left .setImportIdLower (25L );
61+ assertNotEquals (left , right );
62+ assertNotNull (left .toString ());
63+ right .setImportIdLower (25L );
64+ assertEquals (left , right );
65+
3766 left .setImportIdUpper (30L );
67+ assertNotEquals (left , right );
68+ assertNotNull (left .toString ());
69+ right .setImportIdUpper (30L );
70+ assertEquals (left , right );
71+
3872 left .setStartDate (calendar (2024 , 1 , 2 , 3 , 4 , 0 ));
73+ assertNotEquals (left , right );
74+ assertNotNull (left .toString ());
75+ right .setStartDate (calendar (2024 , 1 , 2 , 3 , 4 , 0 ));
76+ assertEquals (left , right );
77+
3978 left .setEndDate (calendar (2024 , 2 , 3 , 4 , 5 , 0 ));
79+ assertNotEquals (left , right );
80+ assertNotNull (left .toString ());
81+ right .setEndDate (calendar (2024 , 2 , 3 , 4 , 5 , 0 ));
82+ assertEquals (left , right );
83+
4084 left .setTextSearch ("alpha" );
85+ assertNotEquals (left , right );
86+ assertNotNull (left .toString ());
87+ right .setTextSearch ("alpha" );
88+ assertEquals (left , right );
89+
4190 left .setTextSearchRegex (false );
91+ assertNotEquals (left , right );
92+ assertNotNull (left .toString ());
93+ right .setTextSearchRegex (false );
94+ assertEquals (left , right );
95+
4296 left .setStatuses (EnumSet .of (Status .RECEIVED , Status .ERROR ));
97+ assertNotEquals (left , right );
98+ assertNotNull (left .toString ());
99+ right .setStatuses (EnumSet .of (Status .RECEIVED , Status .ERROR ));
100+ assertEquals (left , right );
101+
43102 left .setIncludedMetaDataIds (List .of (1 , 2 ));
103+ assertNotEquals (left , right );
104+ assertNotNull (left .toString ());
105+ right .setIncludedMetaDataIds (List .of (1 , 2 ));
106+ assertEquals (left , right );
107+
44108 left .setExcludedMetaDataIds (List .of (3 ));
109+ assertNotEquals (left , right );
110+ assertNotNull (left .toString ());
111+ right .setExcludedMetaDataIds (List .of (3 ));
112+ assertEquals (left , right );
113+
45114 left .setServerId ("server-1" );
115+ assertNotEquals (left , right );
116+ assertNotNull (left .toString ());
117+ right .setServerId ("server-1" );
118+ assertEquals (left , right );
119+
46120 left .setContentSearch (List .of (new ContentSearchElement (ContentType .RAW .getContentTypeCode (), List .of ("needle" , "haystack" ))));
121+ assertNotEquals (left , right );
122+ assertNotNull (left .toString ());
123+ right .setContentSearch (List .of (new ContentSearchElement (ContentType .RAW .getContentTypeCode (), List .of ("needle" , "haystack" ))));
124+ assertEquals (left , right );
125+
47126 left .setMetaDataSearch (List .of (new MetaDataSearchElement ("mirth_type" , "EQUAL" , "asdf" , null )));
127+ assertNotEquals (left , right );
128+ assertNotNull (left .toString ());
129+ right .setMetaDataSearch (List .of (new MetaDataSearchElement ("mirth_type" , "EQUAL" , "asdf" , null )));
130+ assertEquals (left , right );
131+
48132 left .setTextSearchMetaDataColumns (List .of ("columnA" , "columnB" ));
133+ assertNotEquals (left , right );
134+ assertNotNull (left .toString ());
135+ right .setTextSearchMetaDataColumns (List .of ("columnA" , "columnB" ));
136+ assertEquals (left , right );
137+
49138 left .setSendAttemptsLower (1 );
139+ assertNotEquals (left , right );
140+ assertNotNull (left .toString ());
141+ right .setSendAttemptsLower (1 );
142+ assertEquals (left , right );
143+
50144 left .setSendAttemptsUpper (5 );
145+ assertNotEquals (left , right );
146+ assertNotNull (left .toString ());
147+ right .setSendAttemptsUpper (5 );
148+ assertEquals (left , right );
149+
51150 left .setAttachment (true );
151+ assertNotEquals (left , right );
152+ assertNotNull (left .toString ());
153+ right .setAttachment (true );
154+ assertEquals (left , right );
155+
52156 left .setError (true );
157+ assertNotEquals (left , right );
158+ assertNotNull (left .toString ());
159+ right .setError (true );
160+ assertEquals (left , right );
53161
54162 var expected = String .join ("\n " ,
55163 "Max Message Id: 200" ,
@@ -70,8 +178,55 @@ public void testMessageFilterEqualityAndToString() {
70178 );
71179
72180 assertEquals (expected , left .toString (Map .of (1 , "Source" , 2 , "Destination" , 3 , "Filtered" ), "\n " , false ));
181+ assertEquals (left , right );
182+ assertFalse (left .isEmpty ());
183+ }
184+
185+ @ Test
186+ public void testMessageFilterEmptyUiSelectionsRemainEmpty () {
187+ var filter = new MessageFilter ();
188+ var empty = new MessageFilter ();
189+
190+ // False is handled the same as null by the server and message browser
191+ filter .setAttachment (false );
192+ filter .setError (false );
193+
194+ assertEquals ("Unchecked advanced checkboxes should compare equal to an empty filter" , empty , filter );
195+ assertTrue ("Unchecked advanced checkboxes should not make the filter non-empty" , filter .isEmpty ());
196+ assertEquals ("(no criteria)" , filter .toString ());
197+
198+ filter .setIncludedMetaDataIds (List .of ());
199+ assertEquals ("An empty included connector list should compare equal to an empty filter" , empty , filter );
200+ assertTrue ("An empty included connector list should not make the filter non-empty" , filter .isEmpty ());
201+
202+ filter .setIncludedMetaDataIds (null );
203+ filter .setExcludedMetaDataIds (List .of ());
204+ assertEquals ("An empty excluded connector list should compare equal to an empty filter" , empty , filter );
205+ assertTrue ("An empty excluded connector list should not make the filter non-empty" , filter .isEmpty ());
73206 }
74-
207+
208+ @ Test
209+ public void testMetaDataSearchElementEqualsHashCodeAndToString () {
210+ var element = new MetaDataSearchElement ("status" , "EQUAL" , "OK" , true );
211+ var same = new MetaDataSearchElement ("status" , "EQUAL" , "OK" , true );
212+ var different = new MetaDataSearchElement ("status" , "EQUAL" , "FAIL" , true );
213+
214+ assertEquals (element , same );
215+ assertEquals (element .hashCode (), same .hashCode ());
216+ assertNotEquals (element , different );
217+ }
218+
219+ @ Test
220+ public void testContentSearchElementEqualsHashCodeAndToString () {
221+ var element = new ContentSearchElement (ContentType .RAW .getContentTypeCode (), List .of ("foo" , "bar" ));
222+ var same = new ContentSearchElement (ContentType .RAW .getContentTypeCode (), List .of ("foo" , "bar" ));
223+ var different = new ContentSearchElement (ContentType .RESPONSE .getContentTypeCode (), List .of ("foo" ));
224+
225+ assertEquals (element , same );
226+ assertEquals (element .hashCode (), same .hashCode ());
227+ assertNotEquals (element , different );
228+ }
229+
75230 @ Test
76231 public void testMessageFilterToStringFallsBackToConnectorIds () {
77232 var filter = new MessageFilter ();
0 commit comments