diff --git a/restservice/src/main/java/com/plannaplan/controllers/ExchangeController.java b/restservice/src/main/java/com/plannaplan/controllers/ExchangeController.java index 6c9634e..7b90d64 100644 --- a/restservice/src/main/java/com/plannaplan/controllers/ExchangeController.java +++ b/restservice/src/main/java/com/plannaplan/controllers/ExchangeController.java @@ -3,6 +3,8 @@ package com.plannaplan.controllers; import java.util.List; import java.util.Map; import java.util.Optional; +import java.util.stream.Collector; +import java.util.stream.Collectors; import com.plannaplan.App; import com.plannaplan.entities.Assignment; @@ -36,12 +38,6 @@ import io.swagger.annotations.ApiOperation; @RequestMapping("/api/" + App.API_VERSION + "/exchanges") @Api(tags = { "Exchange" }, value = "Exchange", description = "Endpoint to exchange with accepted assignments.") public class ExchangeController extends TokenBasedController{ - - - /* - * Endpoint do wylistowania exchangow użytkownika - * Endpoint do usuwania exchanga - */ @Autowired private GroupService groupService; @@ -61,6 +57,11 @@ public class ExchangeController extends TokenBasedController{ .orElseThrow(() -> new UserNotFoundException("Invalid token")); final Long assignmentId = exchangeRequest.get("assignment"); final Long groupId = exchangeRequest.get("group"); + final List ownedGroups = asker.getStudentRegisteredGrups().stream().map(Groups::getId).collect(Collectors.toList()); + + if(ownedGroups.contains(groupId)){ + return new ResponseEntity<>("User has already got this group.", HttpStatus.BAD_REQUEST); + } if(assignmentId == null || groupId == null ){ return new ResponseEntity<>("Some of values are missing", HttpStatus.BAD_REQUEST); diff --git a/restservice/src/test/java/com/plannaplan/controllers/ExchangeControllerTest.java b/restservice/src/test/java/com/plannaplan/controllers/ExchangeControllerTest.java new file mode 100644 index 0000000..613dd8a --- /dev/null +++ b/restservice/src/test/java/com/plannaplan/controllers/ExchangeControllerTest.java @@ -0,0 +1,65 @@ +package com.plannaplan.controllers; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.setup.MockMvcBuilders; + +import static org.junit.Assert.assertTrue; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +import javax.validation.constraints.AssertTrue; + +@RunWith(SpringRunner.class) +@SpringBootTest +@ContextConfiguration +public class ExchangeControllerTest extends AbstractControllerTest{ + + @Test + public void shouldGetAllUsersExchanges(){ + assertTrue(false); + } + + @Test + public void shouldFailGettingExchange(){ + assertTrue(false); + } + + @Test + public void shouldFailPostDueToExchangeNoFound(){ + assertTrue(false); + } + + @Test + public void shouldInsertExchange(){ + assertTrue(false); + } + + @Test + public void shouldDenyExchangeDueToAssigmentOverlapping(){ + assertTrue(false); + } + + @Test + public void shouldDenyPostDueToAssignmentNotAccepted(){ + assertTrue(false); + } + + @Test + public void shouldFailDeleteDueToWrongPermissions(){ + assertTrue(false); + } + + @Test + public void shouldFailDeleteDueToExchangeNoFound(){ + assertTrue(false); + } + @Test + public void shouldFailPostDueToGroupAlreadyAccepted(){ + assertTrue(false); + } +}