From 6a4ea4590055e1e1a9ed2c556d1a7f5609065640 Mon Sep 17 00:00:00 2001 From: Filip Izydorczyk Date: Tue, 19 Jan 2021 10:44:35 +0100 Subject: [PATCH] brigning down group tpes --- .../java/com/plannaplan/types/GroupType.java | 22 +++++- .../com/plannaplan/types/GroupTypeTest.java | 68 +++++++++++++++++++ .../controllers/CoursesController.java | 2 +- .../mappers/AssignmentResponseMappers.java | 8 +-- .../responses/mappers/GroupsMappers.java | 4 +- .../responses/models/AssignmentResponse.java | 8 +-- .../models/CoursesWithGroupsResponse.java | 2 +- 7 files changed, 99 insertions(+), 15 deletions(-) create mode 100755 buisnesslogic/src/test/java/com/plannaplan/types/GroupTypeTest.java diff --git a/buisnesslogic/src/main/java/com/plannaplan/types/GroupType.java b/buisnesslogic/src/main/java/com/plannaplan/types/GroupType.java index 3b57aa8..0945095 100755 --- a/buisnesslogic/src/main/java/com/plannaplan/types/GroupType.java +++ b/buisnesslogic/src/main/java/com/plannaplan/types/GroupType.java @@ -1,23 +1,39 @@ package com.plannaplan.types; /** - * GroupType contains types: LECTURE, CLASS, LAB, SEMINAR, CONSERVATORY, PRATICE + * GroupType contains types: LECTURE, CLASS, LAB, SEMINAR, CONSERVATORY, PRATICE */ public enum GroupType { - LECTURE("Wykład"), CLASS("Ćwiczenia"), LAB("Laboratorium"), SEMINAR("Seminarium"),CONSERVATORY("Konwersatorium"), PRATICE("Praktyka"); + LECTURE("Wykład"), CLASS("Ćwiczenia"), LAB("Laboratorium"), SEMINAR("Seminarium"), CONSERVATORY("Konwersatorium"), + PRATICE("Praktyka"); public final String type; + private GroupType(String type) { this.type = type; } + /** + * @param type as string + * @return Enum converted from provided string + */ public final static GroupType getType(String type) { for (GroupType d : values()) { if (d.type.equals(type)) { return d; } } - return null; + return null; + } + + /** + * @param type group type to check + * @return general convertion to bring down tours to two generals LECTURE and + * CLASS. To class are included: CLASS, LAB, SEMINAR, CONSERVATORY, + * PRATICE. + */ + public final static GroupType isLectureOrClass(GroupType type) { + return type == GroupType.LECTURE ? GroupType.LECTURE : GroupType.CLASS; } } \ No newline at end of file diff --git a/buisnesslogic/src/test/java/com/plannaplan/types/GroupTypeTest.java b/buisnesslogic/src/test/java/com/plannaplan/types/GroupTypeTest.java new file mode 100755 index 0000000..7d9a14c --- /dev/null +++ b/buisnesslogic/src/test/java/com/plannaplan/types/GroupTypeTest.java @@ -0,0 +1,68 @@ +package com.plannaplan.types; + +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +public class GroupTypeTest { + @Test + public void shouldBeLecture() { + assertTrue(GroupType.isLectureOrClass(GroupType.LECTURE) == GroupType.LECTURE); + } + + @Test + public void shouldBeClass1() { + assertTrue(GroupType.isLectureOrClass(GroupType.CLASS) == GroupType.CLASS); + } + + @Test + public void shouldBeClass2() { + assertTrue(GroupType.isLectureOrClass(GroupType.CONSERVATORY) == GroupType.CLASS); + } + + @Test + public void shouldBeClass3() { + assertTrue(GroupType.isLectureOrClass(GroupType.LAB) == GroupType.CLASS); + } + + @Test + public void shouldBeClass4() { + assertTrue(GroupType.isLectureOrClass(GroupType.PRATICE) == GroupType.CLASS); + } + + @Test + public void shouldBeClass5() { + assertTrue(GroupType.isLectureOrClass(GroupType.SEMINAR) == GroupType.CLASS); + } + + @Test + public void shouldCastFromString1() { + assertTrue(GroupType.getType("Ćwiczenia") == GroupType.CLASS); + } + + @Test + public void shouldCastFromString2() { + assertTrue(GroupType.getType("Wykład") == GroupType.LECTURE); + } + + @Test + public void shouldCastFromString3() { + assertTrue(GroupType.getType("Laboratorium") == GroupType.LAB); + } + + @Test + public void shouldCastFromString4() { + assertTrue(GroupType.getType("Seminarium") == GroupType.SEMINAR); + } + + @Test + public void shouldCastFromString5() { + assertTrue(GroupType.getType("Konwersatorium") == GroupType.CONSERVATORY); + } + + @Test + public void shouldCastFromString6() { + assertTrue(GroupType.getType("Praktyka") == GroupType.PRATICE); + } + +} diff --git a/restservice/src/main/java/com/plannaplan/controllers/CoursesController.java b/restservice/src/main/java/com/plannaplan/controllers/CoursesController.java index e20a9cc..17a0056 100755 --- a/restservice/src/main/java/com/plannaplan/controllers/CoursesController.java +++ b/restservice/src/main/java/com/plannaplan/controllers/CoursesController.java @@ -68,7 +68,7 @@ public class CoursesController { final HashMap ammounts = this.groupService.getTakenPlaces(course.getGroups()); course.getGroups().stream().forEach(group -> { - if (group.getType() == GroupType.CLASS) { + if (GroupType.isLectureOrClass(group.getType()) == GroupType.CLASS) { classes.add(new GroupWithCapacityResponse(group, ammounts.get(group.getId()))); } else { lectures.add(new GroupWithCapacityResponse(group, ammounts.get(group.getId()))); diff --git a/restservice/src/main/java/com/plannaplan/responses/mappers/AssignmentResponseMappers.java b/restservice/src/main/java/com/plannaplan/responses/mappers/AssignmentResponseMappers.java index 5302068..1434b65 100755 --- a/restservice/src/main/java/com/plannaplan/responses/mappers/AssignmentResponseMappers.java +++ b/restservice/src/main/java/com/plannaplan/responses/mappers/AssignmentResponseMappers.java @@ -57,10 +57,10 @@ public class AssignmentResponseMappers { } } if (courseGroups.size() == 2) { - final Groups lecture = courseGroups.stream().filter(o -> o.getType() == GroupType.LECTURE).findFirst() - .get(); - final Groups classes = courseGroups.stream().filter(o -> o.getType() == GroupType.CLASS).findFirst() - .get(); + final Groups lecture = courseGroups.stream() + .filter(o -> GroupType.isLectureOrClass(o.getType()) == GroupType.LECTURE).findFirst().get(); + final Groups classes = courseGroups.stream() + .filter(o -> GroupType.isLectureOrClass(o.getType()) == GroupType.CLASS).findFirst().get(); if (ammounts != null) { response.add(new AssignmentResponse(course, lecture, classes, ammounts)); diff --git a/restservice/src/main/java/com/plannaplan/responses/mappers/GroupsMappers.java b/restservice/src/main/java/com/plannaplan/responses/mappers/GroupsMappers.java index ddabacd..aa225e1 100755 --- a/restservice/src/main/java/com/plannaplan/responses/mappers/GroupsMappers.java +++ b/restservice/src/main/java/com/plannaplan/responses/mappers/GroupsMappers.java @@ -83,7 +83,7 @@ public class GroupsMappers { List classes = new ArrayList<>(); groups.stream().forEach(group -> { - if (group.getType() == GroupType.CLASS) { + if (GroupType.isLectureOrClass(group.getType()) == GroupType.CLASS) { if (taken != null) { classes.add(new GroupDefaultResponse(group, taken.get(group.getId()))); } else { @@ -122,7 +122,7 @@ public class GroupsMappers { List classes = new ArrayList<>(); groups.stream().forEach(group -> { - if (group.getType() == GroupType.CLASS) { + if (GroupType.isLectureOrClass(group.getType()) == GroupType.CLASS) { if (taken != null) { classes.add(new GroupWithCapacityResponse(group, taken.get(group.getId()))); } else { diff --git a/restservice/src/main/java/com/plannaplan/responses/models/AssignmentResponse.java b/restservice/src/main/java/com/plannaplan/responses/models/AssignmentResponse.java index 75a4269..04078da 100755 --- a/restservice/src/main/java/com/plannaplan/responses/models/AssignmentResponse.java +++ b/restservice/src/main/java/com/plannaplan/responses/models/AssignmentResponse.java @@ -50,8 +50,8 @@ public class AssignmentResponse { * @param group class/lecture entity */ public AssignmentResponse(Course course, Groups group) { - this(course, group.getType() == GroupType.LECTURE ? group : null, - group.getType() == GroupType.CLASS ? group : null); + this(course, GroupType.isLectureOrClass(group.getType()) == GroupType.LECTURE ? group : null, + GroupType.isLectureOrClass(group.getType()) == GroupType.CLASS ? group : null); } /** @@ -61,8 +61,8 @@ public class AssignmentResponse { * places */ public AssignmentResponse(Course course, Groups group, HashMap ammounts) { - this(course, group.getType() == GroupType.LECTURE ? group : null, - group.getType() == GroupType.CLASS ? group : null, ammounts); + this(course, GroupType.isLectureOrClass(group.getType()) == GroupType.LECTURE ? group : null, + GroupType.isLectureOrClass(group.getType()) == GroupType.CLASS ? group : null, ammounts); } /** diff --git a/restservice/src/main/java/com/plannaplan/responses/models/CoursesWithGroupsResponse.java b/restservice/src/main/java/com/plannaplan/responses/models/CoursesWithGroupsResponse.java index cf5eb17..8ef8c7e 100755 --- a/restservice/src/main/java/com/plannaplan/responses/models/CoursesWithGroupsResponse.java +++ b/restservice/src/main/java/com/plannaplan/responses/models/CoursesWithGroupsResponse.java @@ -30,7 +30,7 @@ public class CoursesWithGroupsResponse extends CoursesResponse { public CoursesWithGroupsResponse(Course course) { super(course); course.getGroups().stream().forEach(group -> { - if (group.getType() == GroupType.CLASS) { + if (GroupType.isLectureOrClass(group.getType()) == GroupType.CLASS) { this.classes.add(new GroupWithCapacityResponse(group)); } else { this.lectures.add(new GroupWithCapacityResponse(group));