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
11
12
13
14
15
16 public class TestModuleDescriptorsEqualsBuilder extends TestCase {
17 public void testAModuleDescriptorMustNotBeEqualToNull() {
18 final ModuleDescriptor descriptor = mock(ModuleDescriptor.class);
19
20 assertFalse(new ModuleDescriptors.EqualsBuilder().descriptor(descriptor).isEqualTo(null));
21 }
22
23 public void testModuleDescriptorsShouldBeEqualIfTheyHaveTheSameCompleteKey() {
24 final ModuleDescriptor descriptor1 = mock(ModuleDescriptor.class);
25 final ModuleDescriptor descriptor2 = mock(ModuleDescriptor.class);
26
27 when(descriptor1.getCompleteKey()).thenReturn("abc:xyz");
28 when(descriptor2.getCompleteKey()).thenReturn("abc:xyz");
29
30 assertTrue(new ModuleDescriptors.EqualsBuilder().descriptor(descriptor1).isEqualTo(descriptor2));
31 }
32
33 public void testModuleDescriptorsShouldBeUnEqualIfTheyDoNotHaveTheSameCompleteKey() {
34 final ModuleDescriptor descriptor1 = mock(ModuleDescriptor.class);
35 final ModuleDescriptor descriptor2 = mock(ModuleDescriptor.class);
36
37 when(descriptor1.getCompleteKey()).thenReturn("abc:xyz");
38 when(descriptor2.getCompleteKey()).thenReturn("def:xyz");
39
40 assertFalse(new ModuleDescriptors.EqualsBuilder().descriptor(descriptor1).isEqualTo(descriptor2));
41 }
42
43 public void testAModuleDescriptorMustNotBeEqualToAnObjectThatIsNotAModuleDescriptor() {
44 final ModuleDescriptor descriptor = mock(ModuleDescriptor.class);
45 final Object anObjectThatIsNotAModuleDescriptor = new Object();
46
47 assertFalse(new ModuleDescriptors.EqualsBuilder().descriptor(descriptor).isEqualTo(anObjectThatIsNotAModuleDescriptor));
48 }
49
50 public void testAModuleDescriptorShouldBeEqualToItSelf() {
51 final ModuleDescriptor descriptor = mock(ModuleDescriptor.class);
52
53 assertTrue(new ModuleDescriptors.EqualsBuilder().descriptor(descriptor).isEqualTo(descriptor));
54 }
55
56 public void testEqualsImplementationIsReflexiveForTwoModuleDescriptorsWithTheSameCompleteKey() {
57 final ModuleDescriptor descriptor1 = mock(ModuleDescriptor.class);
58 final ModuleDescriptor descriptor2 = mock(ModuleDescriptor.class);
59
60 when(descriptor1.getCompleteKey()).thenReturn("abc:xyz");
61 when(descriptor2.getCompleteKey()).thenReturn("abc:xyz");
62
63 assertTrue(new ModuleDescriptors.EqualsBuilder().descriptor(descriptor1).isEqualTo(descriptor2));
64 assertTrue(new ModuleDescriptors.EqualsBuilder().descriptor(descriptor2).isEqualTo(descriptor1));
65 }
66
67 public void testEqualsImplementationIsTransitiveForThreeDescriptorsWithTheSameCompleteKey() {
68 final ModuleDescriptor descriptor1 = mock(ModuleDescriptor.class);
69 final ModuleDescriptor descriptor2 = mock(ModuleDescriptor.class);
70 final ModuleDescriptor descriptor3 = mock(ModuleDescriptor.class);
71
72
73 when(descriptor1.getCompleteKey()).thenReturn("abc:xyz");
74 when(descriptor2.getCompleteKey()).thenReturn("abc:xyz");
75 when(descriptor3.getCompleteKey()).thenReturn("abc:xyz");
76
77 assertTrue(new ModuleDescriptors.EqualsBuilder().descriptor(descriptor1).isEqualTo(descriptor2));
78 assertTrue(new ModuleDescriptors.EqualsBuilder().descriptor(descriptor2).isEqualTo(descriptor3));
79 assertTrue(new ModuleDescriptors.EqualsBuilder().descriptor(descriptor1).isEqualTo(descriptor3));
80 }
81 }