@@ -56,8 +56,8 @@ public void setup() {
5656 this .dummyTime = DateTime .parse ("2023-06-21T14:43:25Z" );
5757 }
5858
59- private EventDto .Builder dummyEventBuilder () {
60- return EventDto .builder ()
59+ private EventDto .Builder dummyEventBuilder (boolean withGroupByField ) {
60+ EventDto . Builder builder = EventDto .builder ()
6161 .alert (true )
6262 .eventDefinitionId ("EventDefinitionTestId" )
6363 .eventDefinitionType ("notification-test-v1" )
@@ -72,6 +72,12 @@ private EventDto.Builder dummyEventBuilder() {
7272 .originContext (EventOriginContext .elasticsearchMessage ("testIndex_42" , "b5e53442-12bb-4374-90ed-0deadbeefbaz" ))
7373 .priority (2 )
7474 .fields (ImmutableMap .of ("field1" , "value1" , "field2" , "value2" ));
75+
76+ if (withGroupByField ) {
77+ builder .groupByFields (ImmutableMap .of ("user" , "x" ));
78+ }
79+
80+ return builder ;
7581 }
7682
7783 EventDefinitionDto buildDummyEventDefinition (boolean isFallback ) {
@@ -106,7 +112,7 @@ public Builder toBuilder() {
106112 private EventNotificationContext .Builder dummyContextBuilder (boolean isFallback ) {
107113 EventNotificationConfig notificationConfig = new EventNotificationConfig .FallbackNotificationConfig ();
108114 EventDefinitionDto eventDefinitionDto = buildDummyEventDefinition (isFallback );
109- EventDto event = dummyEventBuilder ()
115+ EventDto event = dummyEventBuilder (false )
110116 .timerangeStart (this .dummyTime )
111117 .timerangeEnd (this .dummyTime .plusMinutes (1 ))
112118 .build ();
@@ -164,23 +170,42 @@ public void getStreamSearchUrlShouldNotFailWhenThereIsNoJobTrigger() {
164170
165171 @ Test
166172 public void getStreamSearchUrlShouldNotFailWhenThereIsNoTimerangeStart () {
167- EventDto event = dummyEventBuilder ().timerangeEnd (this .dummyTime .plusMinutes (1 )).build ();
173+ EventDto event = dummyEventBuilder (false ).timerangeEnd (this .dummyTime .plusMinutes (1 )).build ();
168174 EventNotificationContext context = dummyContextBuilder (true ).event (event ).build ();
169175 this .subject .buildMessagesUrl (context , this .dummyTime );
170176 }
171177
172178 @ Test
173179 public void getStreamSearchUrlShouldNotFailWhenThereIsNoTimerangeEnd () {
174- EventDto event = dummyEventBuilder ().timerangeStart (this .dummyTime ).build ();
180+ EventDto event = dummyEventBuilder (false ).timerangeStart (this .dummyTime ).build ();
175181 EventNotificationContext context = dummyContextBuilder (true ).event (event ).build ();
176182 this .subject .buildMessagesUrl (context , this .dummyTime );
177183 }
178184
185+ @ Test
186+ public void getStreamSearchUrlShouldNotContainsSearchQuery () {
187+ EventDto event = dummyEventBuilder (false ).timerangeStart (this .dummyTime ).build ();
188+ EventNotificationContext context = dummyContextBuilder (true ).event (event ).build ();
189+ String messageUrl = this .subject .buildMessagesUrl (context , this .dummyTime );
190+
191+ Assert .assertFalse (messageUrl .contains ("&q=" ));
192+ }
193+
179194 @ Test
180195 public void getStreamSearchUrlShouldContainsSearchQuery () {
181- EventDto event = dummyEventBuilder ().timerangeStart (this .dummyTime ).build ();
196+ EventDto event = dummyEventBuilder (false ).timerangeStart (this .dummyTime ).build ();
182197 EventNotificationContext context = dummyContextBuilder (false ).event (event ).build ();
183198 String messageUrl = this .subject .buildMessagesUrl (context , this .dummyTime );
184199 Assert .assertTrue (messageUrl .contains (TEST_SEARCH_QUERY ));
185200 }
201+
202+ @ Test
203+ public void getStreamSearchUrlShouldContainsSearchQueryAndGroupByFields () {
204+ String expectedValue = "(" + TEST_SEARCH_QUERY + ") AND (user: x)" ;
205+
206+ EventDto event = dummyEventBuilder (true ).timerangeStart (this .dummyTime ).build ();
207+ EventNotificationContext context = dummyContextBuilder (false ).event (event ).build ();
208+ String messageUrl = this .subject .buildMessagesUrl (context , this .dummyTime );
209+ Assert .assertTrue (messageUrl .contains (expectedValue ));
210+ }
186211}
0 commit comments