All developers endpoints

This commit is contained in:
Filip Izydorczyk 2021-01-19 12:47:14 +01:00
parent d1a54a93d6
commit 265315b874
2 changed files with 163 additions and 2 deletions

View File

@ -11,8 +11,12 @@ import org.springframework.web.bind.annotation.RestController;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import java.util.Date;
import com.plannaplan.App; import com.plannaplan.App;
import com.plannaplan.models.TourData;
import com.plannaplan.services.AssignmentService; import com.plannaplan.services.AssignmentService;
import com.plannaplan.services.ConfiguratorService;
import com.plannaplan.services.ExchangeService; import com.plannaplan.services.ExchangeService;
/** /**
@ -25,14 +29,19 @@ import com.plannaplan.services.ExchangeService;
"DeveloperController" }, value = "DeveloperController", description = "All endpoints to use in development time to help app testing") "DeveloperController" }, value = "DeveloperController", description = "All endpoints to use in development time to help app testing")
public class DeveloperController { public class DeveloperController {
private static final long ONE_DAY = 86400000;
@Autowired @Autowired
private AssignmentService assignmentService; private AssignmentService assignmentService;
@Autowired @Autowired
private ExchangeService exchangeService; private ExchangeService exchangeService;
@Autowired
private ConfiguratorService configurationController;
/** /**
* @return if accept algoythm was perfomed * @return if accept algorythm was perfomed
*/ */
@PreAuthorize("hasRole('ROLE_DEVELOPER')") @PreAuthorize("hasRole('ROLE_DEVELOPER')")
@PostMapping(path = "/algorythm/accept") @PostMapping(path = "/algorythm/accept")
@ -42,7 +51,7 @@ public class DeveloperController {
} }
/** /**
* @return if accept algoythm was perfomed * @return if exchange algorythm was perfomed
*/ */
@PreAuthorize("hasRole('ROLE_DEVELOPER')") @PreAuthorize("hasRole('ROLE_DEVELOPER')")
@PostMapping(path = "/algorythm/exchange") @PostMapping(path = "/algorythm/exchange")
@ -50,4 +59,45 @@ public class DeveloperController {
this.exchangeService.performExchange(); this.exchangeService.performExchange();
return new ResponseEntity<>("Success", HttpStatus.OK); return new ResponseEntity<>("Success", HttpStatus.OK);
} }
/**
* @return if tour was set
*/
@PreAuthorize("hasRole('ROLE_DEVELOPER')")
@PostMapping(path = "/tours/first")
public ResponseEntity<String> setFirstTour() {
this.configurationController.saveTours(
new TourData(new Date(System.currentTimeMillis() - ONE_DAY),
new Date(System.currentTimeMillis() + ONE_DAY)),
new TourData(new Date(System.currentTimeMillis() + 2 * ONE_DAY),
new Date(System.currentTimeMillis() + 3 * ONE_DAY)));
return new ResponseEntity<>("Success", HttpStatus.OK);
}
/**
* @return if tour was set
*/
@PreAuthorize("hasRole('ROLE_DEVELOPER')")
@PostMapping(path = "/tours/second")
public ResponseEntity<String> setSecondTour() {
this.configurationController.saveTours(
new TourData(new Date(System.currentTimeMillis() - 3 * ONE_DAY),
new Date(System.currentTimeMillis() - 2 * ONE_DAY)),
new TourData(new Date(System.currentTimeMillis() - ONE_DAY),
new Date(System.currentTimeMillis() + ONE_DAY)));
return new ResponseEntity<>("Success", HttpStatus.OK);
}
/**
* @return if tour was set
*/
@PreAuthorize("hasRole('ROLE_DEVELOPER')")
@PostMapping(path = "/tours/no")
public ResponseEntity<String> setNoTour() {
this.configurationController.saveTours(
new TourData(new Date(System.currentTimeMillis() - ONE_DAY), new Date(System.currentTimeMillis())),
new TourData(new Date(System.currentTimeMillis() + ONE_DAY),
new Date(System.currentTimeMillis() + 2 * ONE_DAY)));
return new ResponseEntity<>("Success", HttpStatus.OK);
}
} }

View File

@ -23,10 +23,15 @@ import com.plannaplan.types.UserRoles;
public class DeveloperControllerTest extends AbstractControllerTest { public class DeveloperControllerTest extends AbstractControllerTest {
private static final String ACCEPT_ENDPOINT = "/api/v1/developer/algorythm/accept"; private static final String ACCEPT_ENDPOINT = "/api/v1/developer/algorythm/accept";
private static final String EXCHANGE_ENDPOINT = "/api/v1/developer/algorythm/exchange"; private static final String EXCHANGE_ENDPOINT = "/api/v1/developer/algorythm/exchange";
private static final String FIRST_TOUR_ENDPOINT = "/api/v1/developer/tours/first";
private static final String NO_TOUR_ENDPOINT = "/api/v1/developer/tours/no";
private static final String SECOND_TOUR_ENDPOINT = "/api/v1/developer/tours/second";
@Autowired @Autowired
private UserService userService; private UserService userService;
/* ACCEPT TESTS */
@Test @Test
public void shouldFailWithWrongAcces() throws Exception { public void shouldFailWithWrongAcces() throws Exception {
final String mail = "shouldFailWithWrongAcces@DeveloperController.test"; final String mail = "shouldFailWithWrongAcces@DeveloperController.test";
@ -59,6 +64,8 @@ public class DeveloperControllerTest extends AbstractControllerTest {
} }
/* EXCHANGE TESTS */
@Test @Test
public void shouldFailExchangeWithWrongAcces() throws Exception { public void shouldFailExchangeWithWrongAcces() throws Exception {
final String mail = "shouldFailExchangeWithWrongAcces@DeveloperController.test"; final String mail = "shouldFailExchangeWithWrongAcces@DeveloperController.test";
@ -91,4 +98,108 @@ public class DeveloperControllerTest extends AbstractControllerTest {
} }
/* FIRST TOUR */
@Test
public void shouldFailFirstTourWithWrongAcces() throws Exception {
final String mail = "shouldFailFirstTourWithWrongAcces@DeveloperController.test";
final User usr = this.userService.save(new User(null, null, mail, UserRoles.TEST_USER));
final String token = this.userService.login(usr).getToken();
MockMvc mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).apply(springSecurity()).build();
mockMvc.perform(post(FIRST_TOUR_ENDPOINT).header("Authorization", "Bearer " + token))
.andExpect(status().is4xxClientError());
}
@Test
public void shouldOkFirstTourAlgotyrhm() throws Exception {
final String mail = "shouldOkFirstTourAlgotyrhm@DeveloperController.test";
final User usr = this.userService.save(new User(null, null, mail, UserRoles.DEVELOPER));
final String token = this.userService.login(usr).getToken();
MockMvc mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).apply(springSecurity()).build();
mockMvc.perform(post(FIRST_TOUR_ENDPOINT).header("Authorization", "Bearer " + token))
.andExpect(status().isOk());
}
@Test
public void shouldFirstTourWithNoToken() throws Exception {
MockMvc mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).apply(springSecurity()).build();
mockMvc.perform(post(FIRST_TOUR_ENDPOINT)).andExpect(status().is4xxClientError());
}
/* SECOND TOUR */
@Test
public void shouldFailSecondTourWithWrongAcces() throws Exception {
final String mail = "shouldFailSecondTourWithWrongAcces@DeveloperController.test";
final User usr = this.userService.save(new User(null, null, mail, UserRoles.TEST_USER));
final String token = this.userService.login(usr).getToken();
MockMvc mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).apply(springSecurity()).build();
mockMvc.perform(post(SECOND_TOUR_ENDPOINT).header("Authorization", "Bearer " + token))
.andExpect(status().is4xxClientError());
}
@Test
public void shouldOkSecondTourAlgotyrhm() throws Exception {
final String mail = "shouldOkSecondTourAlgotyrhm@DeveloperController.test";
final User usr = this.userService.save(new User(null, null, mail, UserRoles.DEVELOPER));
final String token = this.userService.login(usr).getToken();
MockMvc mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).apply(springSecurity()).build();
mockMvc.perform(post(SECOND_TOUR_ENDPOINT).header("Authorization", "Bearer " + token))
.andExpect(status().isOk());
}
@Test
public void shouldFailSecondTourWithNoToken() throws Exception {
MockMvc mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).apply(springSecurity()).build();
mockMvc.perform(post(SECOND_TOUR_ENDPOINT)).andExpect(status().is4xxClientError());
}
/* NO TOUR */
@Test
public void shouldNoTourWithWrongAcces() throws Exception {
final String mail = "shouldNoTourWithWrongAcces@DeveloperController.test";
final User usr = this.userService.save(new User(null, null, mail, UserRoles.TEST_USER));
final String token = this.userService.login(usr).getToken();
MockMvc mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).apply(springSecurity()).build();
mockMvc.perform(post(NO_TOUR_ENDPOINT).header("Authorization", "Bearer " + token))
.andExpect(status().is4xxClientError());
}
@Test
public void shouldOkNoAlgotyrhm() throws Exception {
final String mail = "shouldOkNoAlgotyrhm@DeveloperController.test";
final User usr = this.userService.save(new User(null, null, mail, UserRoles.DEVELOPER));
final String token = this.userService.login(usr).getToken();
MockMvc mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).apply(springSecurity()).build();
mockMvc.perform(post(NO_TOUR_ENDPOINT).header("Authorization", "Bearer " + token)).andExpect(status().isOk());
}
@Test
public void shouldFailNoTourWithNoToken() throws Exception {
MockMvc mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).apply(springSecurity()).build();
mockMvc.perform(post(NO_TOUR_ENDPOINT)).andExpect(status().is4xxClientError());
}
} }