Skip to content

Commit cf474e8

Browse files
committed
Restore newest-first ordering in listEvents
1 parent 5deb6a9 commit cf474e8

2 files changed

Lines changed: 19 additions & 1 deletion

File tree

‎server/src/main/java/com/cloud/event/dao/EventJoinDaoImpl.java‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,9 @@ public List<EventJoinVO> searchByIds(Long... ids) {
137137
}
138138
SearchCriteria<EventJoinVO> sc = vrSearch.create();
139139
sc.setParameters("idIN", ids);
140-
return searchIncludingRemoved(sc, null, null, false);
140+
Filter filter = new Filter(EventJoinVO.class, "createDate", false);
141+
filter.addOrderBy(EventJoinVO.class, "id", false);
142+
return searchIncludingRemoved(sc, filter, null, false);
141143
}
142144

143145
@Override

‎server/src/test/java/com/cloud/event/dao/EventJoinDaoImplTest.java‎

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,20 @@
1919

2020
import com.cloud.api.query.vo.EventJoinVO;
2121
import com.cloud.utils.db.EntityManager;
22+
import com.cloud.utils.db.Filter;
2223
import com.cloud.vm.VirtualMachine;
2324
import org.apache.cloudstack.api.ApiCommandResourceType;
2425
import org.apache.cloudstack.api.response.EventResponse;
2526
import org.junit.Assert;
2627
import org.junit.Test;
2728
import org.junit.runner.RunWith;
29+
import org.mockito.ArgumentCaptor;
2830
import org.mockito.InjectMocks;
2931
import org.mockito.Mock;
3032
import org.mockito.Mockito;
3133
import org.mockito.junit.MockitoJUnitRunner;
3234

35+
import java.util.ArrayList;
3336
import java.util.UUID;
3437

3538
@RunWith(MockitoJUnitRunner.class)
@@ -62,4 +65,17 @@ public void testNewEventViewResource() {
6265
Assert.assertEquals(response.getResourceType(), resourceType);
6366
Assert.assertEquals(response.getResourceName(), resourceName);
6467
}
68+
69+
@Test
70+
public void testSearchByIdsOrdersNewestFirst() {
71+
EventJoinDaoImpl spyDao = Mockito.spy(dao);
72+
ArgumentCaptor<Filter> filterCaptor = ArgumentCaptor.forClass(Filter.class);
73+
Mockito.doReturn(new ArrayList<EventJoinVO>()).when(spyDao)
74+
.searchIncludingRemoved(Mockito.any(), filterCaptor.capture(), Mockito.any(), Mockito.anyBoolean());
75+
76+
spyDao.searchByIds(1L, 2L, 3L);
77+
78+
Assert.assertNotNull("searchByIds must pass an ordering filter", filterCaptor.getValue());
79+
Assert.assertEquals(" ORDER BY event_view.created DESC , event_view.id DESC ", filterCaptor.getValue().getOrderBy());
80+
}
6581
}

0 commit comments

Comments
 (0)