Skip to content

Commit 97b507e

Browse files
committed
initial path changes
1 parent aa669ef commit 97b507e

File tree

3 files changed

+136
-2
lines changed

3 files changed

+136
-2
lines changed

src/main/java/com/redhat/labs/omp/service/EngagementService.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import com.redhat.labs.omp.models.gitlab.Group;
2323
import com.redhat.labs.omp.models.gitlab.Project;
2424
import com.redhat.labs.omp.models.gitlab.ProjectSearchResults;
25+
import com.redhat.labs.omp.utils.GitLabPathUtils;
2526

2627
@ApplicationScoped
2728
public class EngagementService {
@@ -119,12 +120,14 @@ private Project createProjectStucture(Engagement engagement) {
119120

120121
// create group for customer name
121122
Group customerGroup = getOrCreateGroup(engagement.getCustomerName(),
122-
Group.builder().name(engagement.getCustomerName()).path(engagement.getCustomerName())
123+
Group.builder().name(engagement.getCustomerName())
124+
.path(GitLabPathUtils.generateValidPath(engagement.getCustomerName()))
123125
.parentId(engagementRepositoryId).build());
124126

125127
// create group for project name
126128
Group projectGroup = getOrCreateGroup(engagement.getProjectName(),
127-
Group.builder().name(engagement.getProjectName()).path(engagement.getProjectName())
129+
Group.builder().name(engagement.getProjectName())
130+
.path(GitLabPathUtils.generateValidPath(engagement.getProjectName()))
128131
.parentId(customerGroup.getId()).build());
129132

130133
// create project under project name group
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package com.redhat.labs.omp.utils;
2+
3+
public class GitLabPathUtils {
4+
5+
public static String generateValidPath(String input) {
6+
7+
if (null == input || input.trim().length() == 0) {
8+
throw new IllegalArgumentException("input string cannot be blank.");
9+
}
10+
11+
// trim
12+
String path = input.trim();
13+
14+
// remove leading or trailing hyphens
15+
path = path.replaceFirst("^-*", "").replaceFirst("-*$", "");
16+
17+
// turn to lowercase
18+
path = path.toLowerCase();
19+
20+
// replace whitespace with a '-'
21+
path = path.replaceAll("\\s", "-");
22+
23+
// remove any characters other than A-Z, a-z, 0-9, ., -
24+
path = path.replaceAll("[^A-Za-z0-9-\\.]", "");
25+
26+
return path;
27+
28+
}
29+
30+
}
Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
package com.redhat.labs.utils;
2+
import org.junit.jupiter.api.Assertions;
3+
import org.junit.jupiter.api.Test;
4+
5+
import com.redhat.labs.omp.utils.GitLabPathUtils;
6+
7+
public class GitLabPathUtilsTest {
8+
9+
@Test
10+
public void testGenerateValidInputNull() {
11+
12+
Assertions.assertThrows(IllegalArgumentException.class, () -> {
13+
GitLabPathUtils.generateValidPath(null);
14+
});
15+
16+
}
17+
18+
@Test
19+
public void testGenerateValidInputEmptyString() {
20+
21+
Assertions.assertThrows(IllegalArgumentException.class, () -> {
22+
GitLabPathUtils.generateValidPath("");
23+
});
24+
25+
}
26+
27+
@Test
28+
public void testGenerateValidInputEmptyBlank() {
29+
30+
Assertions.assertThrows(IllegalArgumentException.class, () -> {
31+
GitLabPathUtils.generateValidPath(" ");
32+
});
33+
34+
}
35+
36+
@Test
37+
public void testGenerateValidPathDoNothing() {
38+
39+
// given
40+
String input = "something";
41+
42+
// when
43+
String output = GitLabPathUtils.generateValidPath(input);
44+
45+
Assertions.assertEquals("something", output);
46+
47+
}
48+
49+
@Test
50+
public void testGenerateValidPathReplaceSpaces() {
51+
52+
// given
53+
String input = "Some Name Here";
54+
55+
// when
56+
String output = GitLabPathUtils.generateValidPath(input);
57+
58+
Assertions.assertEquals("some-name-here", output);
59+
60+
}
61+
62+
@Test
63+
public void testGenerateValidPathRemoveLeadingOrTrailingHyphens() {
64+
65+
// given
66+
String input = "----Some Name Here--";
67+
68+
// when
69+
String output = GitLabPathUtils.generateValidPath(input);
70+
71+
Assertions.assertEquals("some-name-here", output);
72+
73+
}
74+
75+
@Test
76+
public void testGenerateValidPathReplaceSpacesAndRemoveSpecialCharacters() {
77+
78+
// given
79+
String input = "Some$1 Nameø 9-.Here!";
80+
81+
// when
82+
String output = GitLabPathUtils.generateValidPath(input);
83+
84+
Assertions.assertEquals("some1-name-9-.here", output);
85+
86+
}
87+
88+
@Test
89+
public void testGenerateValidPathFullReplace() {
90+
91+
// given
92+
String input = "-Some$1 Nameø 9-Here!---";
93+
94+
// when
95+
String output = GitLabPathUtils.generateValidPath(input);
96+
97+
Assertions.assertEquals("some1-name-9-here", output);
98+
99+
}
100+
101+
}

0 commit comments

Comments
 (0)