Skip to content

Commit ee02646

Browse files
pszumanskiWMS_BOT
authored andcommitted
Camel to snake case fix (#36)
Fix camelCase to snake_case parsing GitOrigin-RevId: 7096178efefdc7b2639c4d21546fee8b35ca3dbf
1 parent 9ac2d1e commit ee02646

File tree

7 files changed

+43
-15
lines changed

7 files changed

+43
-15
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,11 @@ target/
55
**/.mvn/
66

77
### IntelliJ IDEA ###
8-
../usos4j-alpha/.idea/
8+
../usos4j-internal/.idea/
99
*.iws
1010
*.iml
1111
*.ipr
12+
.idea
1213

1314
### Eclipse ###
1415
.apt_generated
Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package pl.wmsdev.usos4j.model.housing;
22

3-
import com.fasterxml.jackson.annotation.JsonAlias;
43
import pl.wmsdev.usos4j.model.common.UsosLocalizedString;
54
import pl.wmsdev.usos4j.model.common.UsosObject;
65
import pl.wmsdev.usos4j.model.user.UsosUser;
@@ -10,8 +9,7 @@
109
public record UsosAssignment(String id, UsosUser user, UsosDormitory dormitory,
1110
UsosResidentType residentType, UsosDormroomType dormroomType,
1211
UsosAllocationPeriod allocationPeriod, Integer numberOfPlaces,
13-
String assignedFrom, String expiryDate, @JsonAlias("can_i_extend") Boolean canIExtend,
14-
@JsonAlias("why_cant_i_extend") UsosLocalizedString whyCantIExtend,
15-
UsosLocalizedString assignedTo,
12+
String assignedFrom, String expiryDate, Boolean canIExtend,
13+
UsosLocalizedString whyCantIExtend, UsosLocalizedString assignedTo,
1614
UsosLocalizedString trusteeName, List<UsosResidence> residences) implements UsosObject {
1715
}
Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
package pl.wmsdev.usos4j.model.housing;
22

3-
import com.fasterxml.jackson.annotation.JsonAlias;
43
import pl.wmsdev.usos4j.model.common.UsosLocalizedString;
54
import pl.wmsdev.usos4j.model.common.UsosObject;
65

76
import java.util.List;
87

98
public record UsosDormitory(String id, UsosLocalizedString name, UsosLocalizedString shortName,
10-
@JsonAlias("can_i_manage") Boolean canIManage,
11-
List<UsosDormroom> dormrooms) implements UsosObject {}
9+
Boolean canIManage, List<UsosDormroom> dormrooms) implements UsosObject {}

core/src/main/java/pl/wmsdev/usos4j/model/surveys/UsosSurveysSurvey2.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package pl.wmsdev.usos4j.model.surveys;
22

3-
import com.fasterxml.jackson.annotation.JsonAlias;
43
import pl.wmsdev.usos4j.model.common.UsosLocalizedString;
54
import pl.wmsdev.usos4j.model.common.UsosObject;
65
import pl.wmsdev.usos4j.model.fac.UsosFaculty;
@@ -18,17 +17,17 @@ public record UsosSurveysSurvey2(
1817
String headlineHtml,
1918
String startDate,
2019
String endDate,
21-
@JsonAlias("can_i_fill_out") Boolean canIFillOut,
22-
@JsonAlias("did_i_fill_out") Boolean didIFillOut,
20+
Boolean canIFillOut,
21+
Boolean didIFillOut,
2322
UsosGroup group,
2423
List<UsosGroup> groupsConducted,
2524
UsosUser lecturer,
2625
UsosFaculty faculty,
2726
UsosProgramme programme,
2827
Integer filledOutCount,
2928
Integer entitledCount,
30-
@JsonAlias("can_i_view_results") Boolean canIViewResults,
31-
@JsonAlias("why_cant_i_view_results") UsosLocalizedString whyCantIViewResults,
29+
Boolean canIViewResults,
30+
UsosLocalizedString whyCantIViewResults,
3231
List<UsosSurveysQuestion> questions,
3332
Boolean hasFinalComment
3433
) implements UsosObject {

core/src/main/java/pl/wmsdev/usos4j/utils/StringUtils.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,20 @@
22

33
public final class StringUtils {
44

5-
public static String camelToSnakeCase(String text) {
6-
return text.replaceAll("([a-z])([A-Z]+)", "$1_$2").toLowerCase();
5+
private StringUtils() {
6+
}
7+
8+
public static String camelToSnakeCase(String camelCase) {
9+
StringBuilder sb = new StringBuilder();
10+
11+
for (int i = 0; i < camelCase.length(); i++) {
12+
if (Character.isUpperCase(camelCase.charAt(i))) {
13+
sb.append('_');
14+
}
15+
sb.append(Character.toLowerCase(camelCase.charAt(i)));
16+
}
17+
18+
return sb.toString();
719
}
820

921
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package pl.wmsdev.usos4j.unit;
2+
3+
import org.junit.jupiter.api.Test;
4+
import pl.wmsdev.usos4j.utils.StringUtils;
5+
6+
import static org.junit.jupiter.api.Assertions.assertEquals;
7+
8+
public class StringUtilsTest {
9+
10+
@Test
11+
void shouldHandleBasicParsing() {
12+
assertEquals("exam_session_number", StringUtils.camelToSnakeCase("examSessionNumber"));
13+
}
14+
15+
@Test
16+
void shouldHandleSingleLetterWordsParsing() {
17+
assertEquals("why_cant_i_view_results", StringUtils.camelToSnakeCase("whyCantIViewResults"));
18+
}
19+
}

integration-tests/src/test/java/pl/wmsdev/UsosRegistrationsAPITest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ void facultyTokenRegistrations() {
4343
}
4444

4545
@Test
46+
@Disabled("Registration not active")
4647
void registration() {
4748
log(userApi.registrations().registration(UsosRegistrationParams.builder("W04-IST-SI-1-23/24Z").build()));
4849
}

0 commit comments

Comments
 (0)