package org.springframework.roo.addon.web.mvc.controller.details; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import org.junit.Test; import org.springframework.roo.model.JavaType; /** * Unit test of {@link JavaTypeMetadataDetails} * * @author Andrew Swan * @since 1.2.0 */ public class JavaTypeMetadataDetailsTest { /** * Creates a test instance with the given {@link JavaType} * * @param javaType * @return a non-<code>null</code> instance */ private JavaTypeMetadataDetails getTestInstance(final JavaType javaType) { return new JavaTypeMetadataDetails(javaType, "the-plural", false, false, null, "the-controller-path"); } @Test public void testInstancesWithDifferentJavaTypesAreNotEqual() { // Set up final JavaType mockJavaType1 = mock(JavaType.class); final JavaType mockJavaType2 = mock(JavaType.class); final JavaTypeMetadataDetails javaTypeMetadataDetails = getTestInstance(mockJavaType1); final JavaTypeMetadataDetails otherJavaTypeMetadataDetails = mock(JavaTypeMetadataDetails.class); when(otherJavaTypeMetadataDetails.getJavaType()).thenReturn( mockJavaType2); // Invoke and check assertFalse(javaTypeMetadataDetails .equals(otherJavaTypeMetadataDetails)); } @Test public void testInstancesWithSameJavaTypesAreEqual() { // Set up final JavaType mockJavaType = mock(JavaType.class); final JavaTypeMetadataDetails javaTypeMetadataDetails = getTestInstance(mockJavaType); final JavaTypeMetadataDetails otherJavaTypeMetadataDetails = mock(JavaTypeMetadataDetails.class); when(otherJavaTypeMetadataDetails.getJavaType()).thenReturn( mockJavaType); // Invoke and check assertTrue(javaTypeMetadataDetails.equals(otherJavaTypeMetadataDetails)); } }