Merge branch 'sonar-fix' into 'dev'
Sonarqube fixes to tests See merge request sa4-2020/the-sanmarinoes/backend!129
This commit is contained in:
commit
5cbbbfed31
12 changed files with 61 additions and 115 deletions
|
@ -58,13 +58,11 @@ public class ButtonDimmerController
|
||||||
.findByIdAndUsername(bd.getId(), principal.getName())
|
.findByIdAndUsername(bd.getId(), principal.getName())
|
||||||
.orElseThrow(NotFoundException::new);
|
.orElseThrow(NotFoundException::new);
|
||||||
|
|
||||||
switch (bd.getDimType()) {
|
if (bd.getDimType() == ButtonDimmerDimRequest.DimType.UP) {
|
||||||
case UP:
|
|
||||||
buttonDimmer.increaseIntensity();
|
buttonDimmer.increaseIntensity();
|
||||||
break;
|
} else {
|
||||||
case DOWN:
|
buttonDimmer.decreaseIntensity();
|
||||||
buttonDimmer.decreaseIntensity();
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
deviceService.saveAllAsOwner(buttonDimmer.getOutputs(), principal.getName());
|
deviceService.saveAllAsOwner(buttonDimmer.getOutputs(), principal.getName());
|
||||||
|
|
|
@ -97,8 +97,6 @@ public class RegularLightController extends GuestEnabledController<RegularLight>
|
||||||
deviceService.deleteByIdAsOwner(id, principal.getName());
|
deviceService.deleteByIdAsOwner(id, principal.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
// the full url should be: "/regularLight/{id}/state?sceneId={sceneId}
|
|
||||||
// however it is not necessary to specify the query in the mapping
|
|
||||||
@PostMapping("/{id}/state")
|
@PostMapping("/{id}/state")
|
||||||
public State<? extends Switchable> sceneBinding(
|
public State<? extends Switchable> sceneBinding(
|
||||||
@PathVariable("id") long deviceId,
|
@PathVariable("id") long deviceId,
|
||||||
|
|
|
@ -25,8 +25,7 @@ public class ScenePriorityController {
|
||||||
@Autowired ScenePriorityRepository scenePriorityRepository;
|
@Autowired ScenePriorityRepository scenePriorityRepository;
|
||||||
|
|
||||||
@GetMapping("/{automationId}")
|
@GetMapping("/{automationId}")
|
||||||
public List<ScenePriority> getByAutomationId(@PathVariable long automationId)
|
public List<ScenePriority> getByAutomationId(@PathVariable long automationId) {
|
||||||
throws NotFoundException {
|
|
||||||
return scenePriorityRepository.findAllByAutomationId(automationId);
|
return scenePriorityRepository.findAllByAutomationId(automationId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,6 @@ public class ThermostatController {
|
||||||
newT.setRoomId(t.getRoomId());
|
newT.setRoomId(t.getRoomId());
|
||||||
newT.setUseExternalSensors(t.isUseExternalSensors());
|
newT.setUseExternalSensors(t.isUseExternalSensors());
|
||||||
newT.setOn(false);
|
newT.setOn(false);
|
||||||
System.out.println(newT);
|
|
||||||
|
|
||||||
thermostatService.populateMeasuredTemperature(newT);
|
thermostatService.populateMeasuredTemperature(newT);
|
||||||
newT = thermostatRepository.save(newT);
|
newT = thermostatRepository.save(newT);
|
||||||
|
|
|
@ -155,10 +155,8 @@ public class UserAccountController {
|
||||||
* @throws EmailTokenNotFoundException if given token is not a valid token for password reset
|
* @throws EmailTokenNotFoundException if given token is not a valid token for password reset
|
||||||
*/
|
*/
|
||||||
@PutMapping("/reset-password")
|
@PutMapping("/reset-password")
|
||||||
public void resetPassword(
|
public void resetPassword(@Valid @RequestBody PasswordResetRequest resetRequest)
|
||||||
@Valid @RequestBody PasswordResetRequest resetRequest,
|
throws EmailTokenNotFoundException {
|
||||||
final HttpServletResponse response)
|
|
||||||
throws EmailTokenNotFoundException, IOException {
|
|
||||||
final ConfirmationToken token =
|
final ConfirmationToken token =
|
||||||
confirmationTokenRepository.findByConfirmationToken(
|
confirmationTokenRepository.findByConfirmationToken(
|
||||||
resetRequest.getConfirmationToken());
|
resetRequest.getConfirmationToken());
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
package ch.usi.inf.sa4.sanmarinoes.smarthut.dto;
|
package ch.usi.inf.sa4.sanmarinoes.smarthut.dto;
|
||||||
|
|
||||||
import ch.usi.inf.sa4.sanmarinoes.smarthut.models.Icon;
|
import ch.usi.inf.sa4.sanmarinoes.smarthut.models.Icon;
|
||||||
import com.sun.istack.NotNull;
|
|
||||||
import javax.persistence.Column;
|
import javax.persistence.Column;
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
|
||||||
public class SceneSaveRequest {
|
public class SceneSaveRequest {
|
||||||
|
|
||||||
|
|
|
@ -43,10 +43,6 @@ public class Automation {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Set<Trigger<?>> getStates() {
|
|
||||||
return triggers;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Set<ScenePriority> getScenes() {
|
public Set<ScenePriority> getScenes() {
|
||||||
return scenes;
|
return scenes;
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,7 +28,6 @@ public class ScenePriority {
|
||||||
private Automation automation;
|
private Automation automation;
|
||||||
|
|
||||||
@Column(name = "automation_id", nullable = false)
|
@Column(name = "automation_id", nullable = false)
|
||||||
@NotNull
|
|
||||||
private Long automationId;
|
private Long automationId;
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
|
@ -42,7 +41,6 @@ public class ScenePriority {
|
||||||
private Scene scene;
|
private Scene scene;
|
||||||
|
|
||||||
@Column(name = "scene_id", nullable = false, updatable = false)
|
@Column(name = "scene_id", nullable = false, updatable = false)
|
||||||
@NotNull
|
|
||||||
private Long sceneId;
|
private Long sceneId;
|
||||||
|
|
||||||
public long getId() {
|
public long getId() {
|
||||||
|
|
|
@ -60,6 +60,7 @@ public class Switch extends InputDevice implements BooleanTriggerable, Connectab
|
||||||
return on;
|
return on;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public Set<Switchable> getOutputs() {
|
public Set<Switchable> getOutputs() {
|
||||||
return switchables;
|
return switchables;
|
||||||
}
|
}
|
||||||
|
|
|
@ -132,8 +132,8 @@ public class SensorSocketEndpoint extends Endpoint {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
username = jwtTokenUtils.getUsernameFromToken(protocolString);
|
username = jwtTokenUtils.getUsernameFromToken(protocolString);
|
||||||
} catch (Throwable ignored) {
|
} catch (Exception ignored) {
|
||||||
System.out.println("Token format not valid");
|
logger.info("Token format not valid");
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,6 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||||
import ch.usi.inf.sa4.sanmarinoes.smarthut.dto.JWTRequest;
|
import ch.usi.inf.sa4.sanmarinoes.smarthut.dto.JWTRequest;
|
||||||
import ch.usi.inf.sa4.sanmarinoes.smarthut.dto.JWTResponse;
|
import ch.usi.inf.sa4.sanmarinoes.smarthut.dto.JWTResponse;
|
||||||
import ch.usi.inf.sa4.sanmarinoes.smarthut.dto.UserRegistrationRequest;
|
import ch.usi.inf.sa4.sanmarinoes.smarthut.dto.UserRegistrationRequest;
|
||||||
import ch.usi.inf.sa4.sanmarinoes.smarthut.error.DuplicateRegistrationException;
|
|
||||||
import ch.usi.inf.sa4.sanmarinoes.smarthut.error.UnauthorizedException;
|
import ch.usi.inf.sa4.sanmarinoes.smarthut.error.UnauthorizedException;
|
||||||
import ch.usi.inf.sa4.sanmarinoes.smarthut.models.ConfirmationTokenRepository;
|
import ch.usi.inf.sa4.sanmarinoes.smarthut.models.ConfirmationTokenRepository;
|
||||||
import ch.usi.inf.sa4.sanmarinoes.smarthut.models.UserRepository;
|
import ch.usi.inf.sa4.sanmarinoes.smarthut.models.UserRepository;
|
||||||
|
@ -44,7 +43,7 @@ public class AuthenticationTests extends SmartHutTest {
|
||||||
final ResponseEntity<Object> res =
|
final ResponseEntity<Object> res =
|
||||||
this.restTemplate.postForEntity(
|
this.restTemplate.postForEntity(
|
||||||
this.url("/register"), getDisabledUser(), Object.class);
|
this.url("/register"), getDisabledUser(), Object.class);
|
||||||
assertThat(res.getStatusCode().equals(HttpStatus.OK));
|
assertThat(res.getStatusCode()).isEqualTo(HttpStatus.OK);
|
||||||
|
|
||||||
registerTestUser(restTemplate, userRepository, tokenRepository);
|
registerTestUser(restTemplate, userRepository, tokenRepository);
|
||||||
}
|
}
|
||||||
|
@ -54,10 +53,11 @@ public class AuthenticationTests extends SmartHutTest {
|
||||||
final Map<String, Object> badJSON = Map.of("luciano", "goretti", "danilo", "malusa");
|
final Map<String, Object> badJSON = Map.of("luciano", "goretti", "danilo", "malusa");
|
||||||
|
|
||||||
assertThat(
|
assertThat(
|
||||||
this.restTemplate
|
this.restTemplate
|
||||||
.postForEntity(url("/register"), badJSON, JWTResponse.class)
|
.postForEntity(url("/register"), badJSON, JWTResponse.class)
|
||||||
.getStatusCode()
|
.getStatusCode()
|
||||||
.equals(HttpStatus.BAD_REQUEST));
|
.equals(HttpStatus.BAD_REQUEST))
|
||||||
|
.isTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -70,12 +70,15 @@ public class AuthenticationTests extends SmartHutTest {
|
||||||
|
|
||||||
final ResponseEntity<JsonObject> res =
|
final ResponseEntity<JsonObject> res =
|
||||||
this.restTemplate.postForEntity(url("/register"), request, JsonObject.class);
|
this.restTemplate.postForEntity(url("/register"), request, JsonObject.class);
|
||||||
assertThat(res.getStatusCode().equals(HttpStatus.BAD_REQUEST));
|
assertThat(res.getStatusCode().equals(HttpStatus.BAD_REQUEST)).isTrue();
|
||||||
assertThat(res.getBody() != null);
|
assertThat(res.getBody()).isNotNull();
|
||||||
|
|
||||||
final JsonArray errors = res.getBody().getAsJsonArray("errors");
|
final JsonArray errors = res.getBody().getAsJsonArray("errors");
|
||||||
assertThat(errors.size() == 1);
|
assertThat(errors)
|
||||||
assertThat(errors.get(0).getAsJsonObject().get("field").getAsString().equals("password"));
|
.allSatisfy(
|
||||||
|
e ->
|
||||||
|
assertThat(e.getAsJsonObject().get("field").getAsString())
|
||||||
|
.isEqualTo("password"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -88,12 +91,15 @@ public class AuthenticationTests extends SmartHutTest {
|
||||||
|
|
||||||
final ResponseEntity<JsonObject> res =
|
final ResponseEntity<JsonObject> res =
|
||||||
this.restTemplate.postForEntity(url("/register"), request, JsonObject.class);
|
this.restTemplate.postForEntity(url("/register"), request, JsonObject.class);
|
||||||
assertThat(res.getStatusCode().equals(HttpStatus.BAD_REQUEST));
|
assertThat(res.getStatusCode().equals(HttpStatus.BAD_REQUEST)).isTrue();
|
||||||
assertThat(res.getBody() != null);
|
assertThat(res.getBody()).isNotNull();
|
||||||
|
|
||||||
final JsonArray errors = res.getBody().getAsJsonArray("errors");
|
final JsonArray errors = res.getBody().getAsJsonArray("errors");
|
||||||
assertThat(errors.size() == 1);
|
assertThat(errors)
|
||||||
assertThat(errors.get(0).getAsJsonObject().get("field").getAsString().equals("email"));
|
.allSatisfy(
|
||||||
|
e ->
|
||||||
|
assertThat(e.getAsJsonObject().get("field").getAsString())
|
||||||
|
.isEqualTo("email"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -105,12 +111,15 @@ public class AuthenticationTests extends SmartHutTest {
|
||||||
|
|
||||||
final ResponseEntity<JsonObject> res =
|
final ResponseEntity<JsonObject> res =
|
||||||
this.restTemplate.postForEntity(url("/register"), request, JsonObject.class);
|
this.restTemplate.postForEntity(url("/register"), request, JsonObject.class);
|
||||||
assertThat(res.getStatusCode().equals(HttpStatus.BAD_REQUEST));
|
assertThat(res.getStatusCode().equals(HttpStatus.BAD_REQUEST)).isTrue();
|
||||||
assertThat(res.getBody() != null);
|
assertThat(res.getBody() != null).isTrue();
|
||||||
|
|
||||||
final JsonArray errors = res.getBody().getAsJsonArray("errors");
|
final JsonArray errors = res.getBody().getAsJsonArray("errors");
|
||||||
assertThat(errors.size() == 1);
|
assertThat(errors)
|
||||||
assertThat(errors.get(0).getAsJsonObject().get("field").getAsString().equals("name"));
|
.allSatisfy(
|
||||||
|
e ->
|
||||||
|
assertThat(e.getAsJsonObject().get("field").getAsString())
|
||||||
|
.isEqualTo("name"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -122,51 +131,15 @@ public class AuthenticationTests extends SmartHutTest {
|
||||||
|
|
||||||
final ResponseEntity<JsonObject> res =
|
final ResponseEntity<JsonObject> res =
|
||||||
this.restTemplate.postForEntity(url("/register"), request, JsonObject.class);
|
this.restTemplate.postForEntity(url("/register"), request, JsonObject.class);
|
||||||
assertThat(res.getStatusCode().equals(HttpStatus.BAD_REQUEST));
|
assertThat(res.getStatusCode().equals(HttpStatus.BAD_REQUEST)).isTrue();
|
||||||
assertThat(res.getBody() != null);
|
assertThat(res.getBody() != null).isTrue();
|
||||||
|
|
||||||
final JsonArray errors = res.getBody().getAsJsonArray("errors");
|
final JsonArray errors = res.getBody().getAsJsonArray("errors");
|
||||||
assertThat(errors.size() == 1);
|
assertThat(errors)
|
||||||
assertThat(errors.get(0).getAsJsonObject().get("field").getAsString().equals("username"));
|
.allSatisfy(
|
||||||
}
|
j ->
|
||||||
|
assertThat(j.getAsJsonObject().get("field").getAsString())
|
||||||
@Test
|
.isEqualTo("username"));
|
||||||
public void registrationShouldReturnBadRequestWithDuplicateData() {
|
|
||||||
{
|
|
||||||
final ResponseEntity<DuplicateRegistrationException> res =
|
|
||||||
this.restTemplate.postForEntity(
|
|
||||||
url("/register"),
|
|
||||||
getDisabledUser(),
|
|
||||||
DuplicateRegistrationException.class);
|
|
||||||
assertThat(res.getStatusCode().equals(HttpStatus.BAD_REQUEST));
|
|
||||||
assertThat(res.getBody() != null);
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
final UserRegistrationRequest disabledUserDifferentMail = getDisabledUser();
|
|
||||||
enabledUser.setEmail("another@example.com");
|
|
||||||
|
|
||||||
final ResponseEntity<DuplicateRegistrationException> res =
|
|
||||||
this.restTemplate.postForEntity(
|
|
||||||
url("/register"),
|
|
||||||
disabledUserDifferentMail,
|
|
||||||
DuplicateRegistrationException.class);
|
|
||||||
assertThat(res.getStatusCode().equals(HttpStatus.BAD_REQUEST));
|
|
||||||
assertThat(res.getBody() != null);
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
final UserRegistrationRequest disabledUserDifferentUsername = getDisabledUser();
|
|
||||||
enabledUser.setUsername("another");
|
|
||||||
|
|
||||||
final ResponseEntity<DuplicateRegistrationException> res =
|
|
||||||
this.restTemplate.postForEntity(
|
|
||||||
url("/register"),
|
|
||||||
disabledUserDifferentUsername,
|
|
||||||
DuplicateRegistrationException.class);
|
|
||||||
assertThat(res.getStatusCode().equals(HttpStatus.BAD_REQUEST));
|
|
||||||
assertThat(res.getBody() != null);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -179,8 +152,7 @@ public class AuthenticationTests extends SmartHutTest {
|
||||||
|
|
||||||
final ResponseEntity<Object> res =
|
final ResponseEntity<Object> res =
|
||||||
this.restTemplate.postForEntity(url("/register"), request, Object.class);
|
this.restTemplate.postForEntity(url("/register"), request, Object.class);
|
||||||
assertThat(res.getStatusCode().equals(HttpStatus.OK));
|
assertThat(res.getStatusCode()).isEqualTo(HttpStatus.OK);
|
||||||
assertThat(res.getBody() != null);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -188,10 +160,11 @@ public class AuthenticationTests extends SmartHutTest {
|
||||||
final Map<String, Object> badJSON = Map.of("badkey", 3, "password", "ciaomamma");
|
final Map<String, Object> badJSON = Map.of("badkey", 3, "password", "ciaomamma");
|
||||||
|
|
||||||
assertThat(
|
assertThat(
|
||||||
this.restTemplate
|
this.restTemplate
|
||||||
.postForEntity(url("/auth/login"), badJSON, JWTResponse.class)
|
.postForEntity(url("/auth/login"), badJSON, JWTResponse.class)
|
||||||
.getStatusCode()
|
.getStatusCode()
|
||||||
.equals(HttpStatus.BAD_REQUEST));
|
.equals(HttpStatus.BAD_REQUEST))
|
||||||
|
.isTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -203,9 +176,9 @@ public class AuthenticationTests extends SmartHutTest {
|
||||||
final ResponseEntity<UnauthorizedException> res =
|
final ResponseEntity<UnauthorizedException> res =
|
||||||
this.restTemplate.postForEntity(
|
this.restTemplate.postForEntity(
|
||||||
url("/auth/login"), request, UnauthorizedException.class);
|
url("/auth/login"), request, UnauthorizedException.class);
|
||||||
assertThat(res.getStatusCode().equals(HttpStatus.UNAUTHORIZED));
|
assertThat(res.getStatusCode().equals(HttpStatus.UNAUTHORIZED)).isTrue();
|
||||||
assertThat(res.getBody() != null);
|
assertThat(res.getBody() != null).isTrue();
|
||||||
assertThat(!res.getBody().isUserDisabled());
|
assertThat(!res.getBody().isUserDisabled()).isTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -217,22 +190,7 @@ public class AuthenticationTests extends SmartHutTest {
|
||||||
final ResponseEntity<UnauthorizedException> res =
|
final ResponseEntity<UnauthorizedException> res =
|
||||||
this.restTemplate.postForEntity(
|
this.restTemplate.postForEntity(
|
||||||
url("/auth/login"), request, UnauthorizedException.class);
|
url("/auth/login"), request, UnauthorizedException.class);
|
||||||
assertThat(res.getStatusCode().equals(HttpStatus.UNAUTHORIZED));
|
assertThat(res.getStatusCode()).isEqualTo(HttpStatus.UNAUTHORIZED);
|
||||||
assertThat(res.getBody() != null);
|
assertThat(res.getBody()).isNotNull();
|
||||||
assertThat(res.getBody().isUserDisabled());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void loginShouldReturnTokenWithEnabledUser() {
|
|
||||||
final JWTRequest request = new JWTRequest();
|
|
||||||
request.setUsernameOrEmail("enabled");
|
|
||||||
request.setPassword("password");
|
|
||||||
|
|
||||||
final ResponseEntity<JWTResponse> res =
|
|
||||||
this.restTemplate.postForEntity(url("/auth/login"), request, JWTResponse.class);
|
|
||||||
assertThat(res.getStatusCode().equals(HttpStatus.OK));
|
|
||||||
assertThat(res.getBody() != null);
|
|
||||||
assertThat(res.getBody().getToken() != null);
|
|
||||||
assertThat(!res.getBody().getToken().isEmpty());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,7 +14,7 @@ import org.springframework.http.ResponseEntity;
|
||||||
import org.springframework.web.reactive.function.client.WebClient;
|
import org.springframework.web.reactive.function.client.WebClient;
|
||||||
|
|
||||||
public abstract class SmartHutTest {
|
public abstract class SmartHutTest {
|
||||||
private boolean setupDone = false;
|
private static boolean setupDone = false;
|
||||||
|
|
||||||
protected final String getBaseURL() {
|
protected final String getBaseURL() {
|
||||||
return "http://localhost:2000/";
|
return "http://localhost:2000/";
|
||||||
|
@ -54,8 +54,9 @@ public abstract class SmartHutTest {
|
||||||
.toBodilessEntity()
|
.toBodilessEntity()
|
||||||
.block();
|
.block();
|
||||||
|
|
||||||
assertThat(res3.getStatusCode().is2xxSuccessful());
|
assertThat(res3).isNotNull();
|
||||||
assertThat(userRepository.findByUsername("enabled").getEnabled());
|
assertThat(res3.getStatusCode()).isEqualTo(HttpStatus.FOUND);
|
||||||
|
assertThat(userRepository.findByUsername("enabled").getEnabled()).isTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
@BeforeEach
|
@BeforeEach
|
||||||
|
|
Loading…
Reference in a new issue