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 {
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 }