View Javadoc

1   package com.atlassian.plugin.descriptors;
2   
3   import com.atlassian.plugin.ModuleDescriptor;
4   import junit.framework.TestCase;
5   
6   import static org.mockito.Mockito.mock;
7   import static org.mockito.Mockito.when;
8   
9   /**
10   * Responsible for testing that the <tt>equals</tt> contract defined by
11   * {@link com.atlassian.plugin.ModuleDescriptor#equals(Object)} is fulfilled by the
12   * {@link ModuleDescriptors.EqualsBuilder} class.
13   *
14   * @since 2.8.0
15   */
16  public class TestModuleDescriptorsEqualsBuilder extends TestCase
17  {
18      public void testAModuleDescriptorMustNotBeEqualToNull()
19      {
20          final ModuleDescriptor descriptor = mock(ModuleDescriptor.class);
21  
22          assertFalse(new ModuleDescriptors.EqualsBuilder().descriptor(descriptor).isEqualTo(null));
23      }
24  
25      public void testModuleDescriptorsShouldBeEqualIfTheyHaveTheSameCompleteKey()
26      {
27          final ModuleDescriptor descriptor1 = mock(ModuleDescriptor.class);
28          final ModuleDescriptor descriptor2 = mock(ModuleDescriptor.class);
29  
30          when(descriptor1.getCompleteKey()).thenReturn("abc:xyz");
31          when(descriptor2.getCompleteKey()).thenReturn("abc:xyz");
32  
33          assertTrue(new ModuleDescriptors.EqualsBuilder().descriptor(descriptor1).isEqualTo(descriptor2));
34      }
35  
36      public void testModuleDescriptorsShouldBeUnEqualIfTheyDoNotHaveTheSameCompleteKey()
37      {
38          final ModuleDescriptor descriptor1 = mock(ModuleDescriptor.class);
39          final ModuleDescriptor descriptor2 = mock(ModuleDescriptor.class);
40  
41          when(descriptor1.getCompleteKey()).thenReturn("abc:xyz");
42          when(descriptor2.getCompleteKey()).thenReturn("def:xyz");
43  
44          assertFalse(new ModuleDescriptors.EqualsBuilder().descriptor(descriptor1).isEqualTo(descriptor2));
45      }
46  
47      public void testAModuleDescriptorMustNotBeEqualToAnObjectThatIsNotAModuleDescriptor()
48      {
49          final ModuleDescriptor descriptor = mock(ModuleDescriptor.class);
50          final Object anObjectThatIsNotAModuleDescriptor = new Object();
51  
52          assertFalse(new ModuleDescriptors.EqualsBuilder().descriptor(descriptor).isEqualTo(anObjectThatIsNotAModuleDescriptor));
53      }
54  
55      public void testAModuleDescriptorShouldBeEqualToItSelf()
56      {
57          final ModuleDescriptor descriptor = mock(ModuleDescriptor.class);
58  
59          assertTrue(new ModuleDescriptors.EqualsBuilder().descriptor(descriptor).isEqualTo(descriptor));
60      }
61  
62      public void testEqualsImplementationIsReflexiveForTwoModuleDescriptorsWithTheSameCompleteKey()
63      {
64          final ModuleDescriptor descriptor1 = mock(ModuleDescriptor.class);
65          final ModuleDescriptor descriptor2 = mock(ModuleDescriptor.class);
66  
67          when(descriptor1.getCompleteKey()).thenReturn("abc:xyz");
68          when(descriptor2.getCompleteKey()).thenReturn("abc:xyz");
69  
70          assertTrue(new ModuleDescriptors.EqualsBuilder().descriptor(descriptor1).isEqualTo(descriptor2));
71          assertTrue(new ModuleDescriptors.EqualsBuilder().descriptor(descriptor2).isEqualTo(descriptor1));
72      }
73  
74      public void testEqualsImplementationIsTransitiveForThreeDescriptorsWithTheSameCompleteKey()
75      {
76          final ModuleDescriptor descriptor1 = mock(ModuleDescriptor.class);
77          final ModuleDescriptor descriptor2 = mock(ModuleDescriptor.class);
78          final ModuleDescriptor descriptor3 = mock(ModuleDescriptor.class);
79  
80  
81          when(descriptor1.getCompleteKey()).thenReturn("abc:xyz");
82          when(descriptor2.getCompleteKey()).thenReturn("abc:xyz");
83          when(descriptor3.getCompleteKey()).thenReturn("abc:xyz");
84  
85          assertTrue(new ModuleDescriptors.EqualsBuilder().descriptor(descriptor1).isEqualTo(descriptor2));
86          assertTrue(new ModuleDescriptors.EqualsBuilder().descriptor(descriptor2).isEqualTo(descriptor3));
87          assertTrue(new ModuleDescriptors.EqualsBuilder().descriptor(descriptor1).isEqualTo(descriptor3));
88      }
89  }