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