1 package com.atlassian.marketplace.client.model;
2
3 import org.junit.Test;
4
5 import static com.atlassian.marketplace.client.api.ApplicationKey.CONFLUENCE;
6 import static com.atlassian.marketplace.client.api.ApplicationKey.JIRA;
7 import static com.atlassian.marketplace.client.api.HostingType.CLOUD;
8 import static com.atlassian.marketplace.client.api.HostingType.SERVER;
9 import static com.atlassian.marketplace.client.model.ModelBuilders.versionCompatibilityForCloud;
10 import static com.atlassian.marketplace.client.model.ModelBuilders.versionCompatibilityForServer;
11 import static com.atlassian.marketplace.client.model.ModelBuilders.versionCompatibilityForServerAndCloud;
12 import static com.google.common.base.Predicates.equalTo;
13 import static org.junit.Assert.assertFalse;
14 import static org.junit.Assert.assertTrue;
15
16 public class VersionCompatibilityTest
17 {
18 @Test
19 public void compatibleWithServerInServerWithBuildEqualToMinimum()
20 {
21 assertTrue(versionCompatibilityForServer(JIRA, 100, 200).isCompatibleWith(equalTo(JIRA), SERVER, 100));
22 }
23
24 @Test
25 public void compatibleWithServerInServerWithBuildEqualToMaximum()
26 {
27 assertTrue(versionCompatibilityForServer(JIRA, 100, 200).isCompatibleWith(equalTo(JIRA), SERVER, 200));
28 }
29
30 @Test
31 public void compatibleWithServerInServerWithBuildInsideRange()
32 {
33 assertTrue(versionCompatibilityForServer(JIRA, 100, 200).isCompatibleWith(equalTo(JIRA), SERVER, 150));
34 }
35
36 @Test
37 public void compatibleWithServerAndCloudInServerWithBuildEqualToMinimum()
38 {
39 assertTrue(versionCompatibilityForServerAndCloud(JIRA, 100, 200).
40 isCompatibleWith(equalTo(JIRA), SERVER, 100));
41 }
42
43 @Test
44 public void compatibleWithServerAndCloudInServerWithBuildEqualToMaximum()
45 {
46 assertTrue(versionCompatibilityForServerAndCloud(JIRA, 100, 200).
47 isCompatibleWith(equalTo(JIRA), SERVER, 200));
48 }
49
50 @Test
51 public void compatibleWithServerAndCloudInServerWithBuildInsideRange()
52 {
53 assertTrue(versionCompatibilityForServerAndCloud(JIRA, 100, 200).
54 isCompatibleWith(equalTo(JIRA), SERVER, 150));
55 }
56
57 @Test
58 public void compatibleWithCloudInCloud()
59 {
60 assertTrue(versionCompatibilityForCloud(JIRA).isCompatibleWith(equalTo(JIRA), CLOUD, 150));
61 }
62
63 @Test
64 public void compatibleWithCloudAndServerInCloudRegardlessOfBuild()
65 {
66 assertTrue(versionCompatibilityForServerAndCloud(JIRA, 100, 200).
67 isCompatibleWith(equalTo(JIRA), CLOUD, 450));
68 }
69
70 @Test
71 public void incompatibleWithServerInCloud()
72 {
73 assertFalse(versionCompatibilityForServer(JIRA, 100, 200).isCompatibleWith(equalTo(JIRA), CLOUD, 150));
74 }
75
76 @Test
77 public void incompatibleWithCloudInServer()
78 {
79 assertFalse(versionCompatibilityForCloud(JIRA).isCompatibleWith(equalTo(JIRA), SERVER, 150));
80 }
81
82 @Test
83 public void incompatibleWithServerInServerWithBuildLessThanMinimum()
84 {
85 assertFalse(versionCompatibilityForServer(JIRA, 100, 200).
86 isCompatibleWith(equalTo(JIRA), SERVER, 50));
87 }
88
89 @Test
90 public void incompatibleWithServerInServerWithBuildGreaterThanMaximum()
91 {
92 assertFalse(versionCompatibilityForServer(JIRA, 100, 200).
93 isCompatibleWith(equalTo(JIRA), SERVER, 2550));
94 }
95
96 @Test
97 public void incompatibleWithServerInServerWithWrongApplication()
98 {
99 assertFalse(versionCompatibilityForServer(JIRA, 100, 200).
100 isCompatibleWith(equalTo(CONFLUENCE), SERVER, 150));
101 }
102
103 @Test
104 public void incompatibleWithServerAndCloudInServerWithBuildLessThanMinimum()
105 {
106 assertFalse(versionCompatibilityForServerAndCloud(JIRA, 100, 200).
107 isCompatibleWith(equalTo(JIRA), SERVER, 50));
108 }
109
110 @Test
111 public void incompatibleWithServerAndCloudInServerWithBuildGreaterThanMaximum()
112 {
113 assertFalse(versionCompatibilityForServerAndCloud(JIRA, 100, 200).
114 isCompatibleWith(equalTo(JIRA), SERVER, 2550));
115 }
116
117 @Test
118 public void incompatibleWithServerAndCloudInServerWithWrongApplication()
119 {
120 assertFalse(versionCompatibilityForServerAndCloud(JIRA, 100, 200).
121 isCompatibleWith(equalTo(CONFLUENCE), SERVER, 150));
122 }
123 }