package org.springframework.data.mongodb.core.mapping; import static org.hamcrest.CoreMatchers.*; import static org.junit.Assert.*; import java.util.Arrays; import java.util.Collections; import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; import org.springframework.data.mongodb.core.mapping.MongoPersistentProperty; import org.springframework.data.mongodb.core.mapping.BasicMongoPersistentEntity.MongoPersistentPropertyComparator; import static org.mockito.Mockito.*; /** * Unit tests for {@link MongoPersistentPropertyComparator}. * * @author Oliver Gierke */ @RunWith(MockitoJUnitRunner.class) public class MongoPersistentPropertyComparatorUnitTests { @Mock MongoPersistentProperty firstName; @Mock MongoPersistentProperty lastName; @Mock MongoPersistentProperty ssn; @Test public void ordersPropertiesCorrectly() { when(ssn.getFieldOrder()).thenReturn(10); when(firstName.getFieldOrder()).thenReturn(20); when(lastName.getFieldOrder()).thenReturn(Integer.MAX_VALUE); List<MongoPersistentProperty> properties = Arrays.asList(firstName, lastName, ssn); Collections.sort(properties, MongoPersistentPropertyComparator.INSTANCE); assertThat(properties.get(0), is(ssn)); assertThat(properties.get(1), is(firstName)); assertThat(properties.get(2), is(lastName)); } }