diff --git a/.run/AllJUnitTests.run.xml b/.run/AllJUnitTests.run.xml
new file mode 100644
index 00000000..4bfa5567
--- /dev/null
+++ b/.run/AllJUnitTests.run.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.run/Run all Cucumber Tests.run.xml b/.run/CucumberTests.xml
similarity index 96%
rename from .run/Run all Cucumber Tests.run.xml
rename to .run/CucumberTests.xml
index 86e4b1ac..a82bbddb 100644
--- a/.run/Run all Cucumber Tests.run.xml
+++ b/.run/CucumberTests.xml
@@ -6,7 +6,7 @@
-
+
diff --git a/.run/JUnit Tests.run.xml b/.run/JUnit Tests.run.xml
new file mode 100644
index 00000000..cd78603d
--- /dev/null
+++ b/.run/JUnit Tests.run.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.run/RestApi [spring-boot_build-image].run.xml b/.run/RestApi-buildImage.run.xml
similarity index 100%
rename from .run/RestApi [spring-boot_build-image].run.xml
rename to .run/RestApi-buildImage.run.xml
diff --git a/.run/RestApplication.run.xml b/.run/RestApplication-dev.run.xml
similarity index 67%
rename from .run/RestApplication.run.xml
rename to .run/RestApplication-dev.run.xml
index ac2a5835..fcb23d13 100644
--- a/.run/RestApplication.run.xml
+++ b/.run/RestApplication-dev.run.xml
@@ -1,6 +1,6 @@
-
-
+
+
diff --git a/.run/RestApplication[PROD].run.xml b/.run/RestApplication-prod.run.xml
similarity index 95%
rename from .run/RestApplication[PROD].run.xml
rename to .run/RestApplication-prod.run.xml
index 7309aebd..5decd716 100644
--- a/.run/RestApplication[PROD].run.xml
+++ b/.run/RestApplication-prod.run.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/.run/TESTS.run.xml b/.run/Run Tests with Coverage.run.xml
similarity index 100%
rename from .run/TESTS.run.xml
rename to .run/Run Tests with Coverage.run.xml
diff --git a/pom.xml b/pom.xml
index 0ca20dbc..7f371e82 100644
--- a/pom.xml
+++ b/pom.xml
@@ -10,9 +10,9 @@
de.filefighter
rest
- 0.0.2
- rest
- RestApi
+ 0.0.3-Snapshot
+ RestApi
+ RestApi for FileFighter
11
@@ -43,12 +43,12 @@
1.18.12
-
+
- org.springframework.boot
- spring-boot-starter-hateoas
+ commons-io
+ commons-io
+ 2.5
-
@@ -76,7 +76,6 @@
spring-boot-starter-test
test
-
io.cucumber
cucumber-java
diff --git a/src/main/java/de/filefighter/rest/RestApplication.java b/src/main/java/de/filefighter/rest/RestApplication.java
index b4d97a5b..fd2b4bc4 100644
--- a/src/main/java/de/filefighter/rest/RestApplication.java
+++ b/src/main/java/de/filefighter/rest/RestApplication.java
@@ -2,10 +2,17 @@
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.annotation.Bean;
+import org.springframework.web.client.RestTemplate;
@SpringBootApplication
public class RestApplication {
public static void main(String[] args) {
SpringApplication.run(RestApplication.class, args);
}
+
+ @Bean
+ public RestTemplate getRestTemplate() {
+ return new RestTemplate();
+ }
}
diff --git a/src/main/java/de/filefighter/rest/configuration/PrepareDataBaseProd.java b/src/main/java/de/filefighter/rest/configuration/PrepareDataBaseProd.java
index a53a3111..b6566df4 100644
--- a/src/main/java/de/filefighter/rest/configuration/PrepareDataBaseProd.java
+++ b/src/main/java/de/filefighter/rest/configuration/PrepareDataBaseProd.java
@@ -1,6 +1,6 @@
package de.filefighter.rest.configuration;
-import de.filefighter.rest.domain.user.data.persistance.UserEntitiy;
+import de.filefighter.rest.domain.user.data.persistance.UserEntity;
import de.filefighter.rest.domain.user.data.persistance.UserRepository;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -22,7 +22,14 @@ CommandLineRunner initUserDataBase(UserRepository repository) {
return args -> {
LOG.info("Starting with clean user collection.");
repository.deleteAll();
- LOG.info("Preloading default admin user: " + repository.save(new UserEntitiy(0L, "admin", "admin", "refreshToken1234", 0, 1)));
+ LOG.info("Preloading default admin user: " + repository.save(UserEntity
+ .builder()
+ .userId(0L)
+ .username("admin")
+ .password("admin")
+ .refreshToken("refreshToken1234")
+ .roleIds(new long[]{0, 1})
+ .build()));
LOG.info("Loading Users" + (repository.findAll().size() == 1 ? " was successful." : " failed."));
};
}
diff --git a/src/main/java/de/filefighter/rest/configuration/RestConfiguration.java b/src/main/java/de/filefighter/rest/configuration/RestConfiguration.java
index 8d25fd16..45265812 100644
--- a/src/main/java/de/filefighter/rest/configuration/RestConfiguration.java
+++ b/src/main/java/de/filefighter/rest/configuration/RestConfiguration.java
@@ -13,9 +13,9 @@ public class RestConfiguration {
public static final String BASE_API_URI = "/api/v1/";
public static final String AUTHORIZATION_BASIC_PREFIX = "Basic: ";
public static final String AUTHORIZATION_BEARER_PREFIX = "Bearer: ";
- public final static String FS_BASE_URI = "/filesystem/";
- public final static String USER_BASE_URI = "/users/";
-
+ public static final String FS_BASE_URI = "/filesystem/";
+ public static final String FS_PATH_HEADER = "X-FF-PATH";
+ public static final String USER_BASE_URI = "/users/";
@Bean
public WebMvcConfigurer configurer(){
diff --git a/src/main/java/de/filefighter/rest/domain/filesystem/business/FileSystemBusinessService.java b/src/main/java/de/filefighter/rest/domain/filesystem/business/FileSystemBusinessService.java
new file mode 100644
index 00000000..3b865980
--- /dev/null
+++ b/src/main/java/de/filefighter/rest/domain/filesystem/business/FileSystemBusinessService.java
@@ -0,0 +1,7 @@
+package de.filefighter.rest.domain.filesystem.business;
+
+import org.springframework.stereotype.Service;
+
+@Service
+public class FileSystemBusinessService {
+}
diff --git a/src/main/java/de/filefighter/rest/domain/filesystem/rest/FileSystemRestController.java b/src/main/java/de/filefighter/rest/domain/filesystem/rest/FileSystemRestController.java
index ca4341b4..e3de9c54 100644
--- a/src/main/java/de/filefighter/rest/domain/filesystem/rest/FileSystemRestController.java
+++ b/src/main/java/de/filefighter/rest/domain/filesystem/rest/FileSystemRestController.java
@@ -7,7 +7,7 @@
import io.swagger.annotations.Api;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.springframework.hateoas.EntityModel;
+import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import static de.filefighter.rest.configuration.RestConfiguration.*;
@@ -26,8 +26,8 @@ public FileSystemRestController(FileSystemRestServiceInterface fileSystemRestSer
}
@GetMapping(FS_BASE_URI + "contents")
- public EntityModel getContentsOfFolder(
- @RequestHeader(value = "X-FF-PATH", defaultValue = "/") String path,
+ public ResponseEntity getContentsOfFolder(
+ @RequestHeader(value = FS_PATH_HEADER, defaultValue = "/") String path,
@RequestHeader(value = "Authorization", defaultValue = AUTHORIZATION_BEARER_PREFIX + "token") String accessToken
) {
@@ -36,7 +36,7 @@ public EntityModel getContentsOfFolder(
}
@GetMapping(FS_BASE_URI + "{fsItemId}/info")
- public EntityModel getFileOrFolderInfo(
+ public ResponseEntity getFileOrFolderInfo(
@PathVariable long fsItemId,
@RequestHeader(value = "Authorization", defaultValue = AUTHORIZATION_BEARER_PREFIX + "token") String accessToken
) {
@@ -46,7 +46,7 @@ public EntityModel getFileOrFolderInfo(
}
@GetMapping(FS_BASE_URI+"search")
- public EntityModel searchFileOrFolderByName(
+ public ResponseEntity searchFileOrFolderByName(
@RequestParam(name = "name", defaultValue = "name") String name,
@RequestHeader(value = "Authorization", defaultValue = AUTHORIZATION_BEARER_PREFIX + "token") String accessToken
){
@@ -56,7 +56,7 @@ public EntityModel searchFileOrFolderByName(
}
@PostMapping(FS_BASE_URI+"upload")
- public EntityModel uploadFileOrFolder(
+ public ResponseEntity uploadFileOrFolder(
@RequestBody FileSystemItemUpdate fileSystemItemUpdate,
@RequestHeader(value = "Authorization", defaultValue = AUTHORIZATION_BEARER_PREFIX + "token") String accessToken
){
@@ -66,7 +66,7 @@ public EntityModel uploadFileOrFolder(
}
@PutMapping(FS_BASE_URI+"{fsItemId}/update")
- public EntityModel updateExistingFileOrFolder(
+ public ResponseEntity updateExistingFileOrFolder(
@PathVariable long fsItemId,
@RequestBody FileSystemItemUpdate fileSystemItemUpdate,
@RequestHeader(value = "Authorization", defaultValue = AUTHORIZATION_BEARER_PREFIX + "token") String accessToken
@@ -77,7 +77,7 @@ public EntityModel updateExistingFileOrFolder(
}
@DeleteMapping(FS_BASE_URI+"{fsItemId}/delete")
- public EntityModel deleteFileOrFolder(
+ public ResponseEntity deleteFileOrFolder(
@PathVariable long fsItemId,
@RequestHeader(value = "Authorization", defaultValue = AUTHORIZATION_BEARER_PREFIX + "token") String accessToken
){
diff --git a/src/main/java/de/filefighter/rest/domain/filesystem/rest/FileSystemRestService.java b/src/main/java/de/filefighter/rest/domain/filesystem/rest/FileSystemRestService.java
index 67a1e4ec..cb4ddeb3 100644
--- a/src/main/java/de/filefighter/rest/domain/filesystem/rest/FileSystemRestService.java
+++ b/src/main/java/de/filefighter/rest/domain/filesystem/rest/FileSystemRestService.java
@@ -4,39 +4,39 @@
import de.filefighter.rest.domain.filesystem.data.dto.FileSystemItemUpdate;
import de.filefighter.rest.domain.filesystem.data.dto.FolderContents;
import de.filefighter.rest.rest.ServerResponse;
-import org.springframework.hateoas.EntityModel;
+import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
@Service
public class FileSystemRestService implements FileSystemRestServiceInterface {
@Override
- public EntityModel getContentsOfFolderByIdAndAccessToken(String path, String accessToken) {
+ public ResponseEntity getContentsOfFolderByIdAndAccessToken(String path, String accessToken) {
return null;
}
@Override
- public EntityModel getInfoAboutFileOrFolderByIdAndAccessToken(long fsItemId, String accessToken) {
+ public ResponseEntity getInfoAboutFileOrFolderByIdAndAccessToken(long fsItemId, String accessToken) {
return null;
}
@Override
- public EntityModel findFileOrFolderByNameAndAccessToken(String name, String accessToken) {
+ public ResponseEntity findFileOrFolderByNameAndAccessToken(String name, String accessToken) {
return null;
}
@Override
- public EntityModel uploadFileSystemItemWithAccessToken(FileSystemItemUpdate fileSystemItemUpdate, String accessToken) {
+ public ResponseEntity uploadFileSystemItemWithAccessToken(FileSystemItemUpdate fileSystemItemUpdate, String accessToken) {
return null;
}
@Override
- public EntityModel updatedFileSystemItemWithIdAndAccessToken(long fsItemId, FileSystemItemUpdate fileSystemItemUpdate, String accessToken) {
+ public ResponseEntity updatedFileSystemItemWithIdAndAccessToken(long fsItemId, FileSystemItemUpdate fileSystemItemUpdate, String accessToken) {
return null;
}
@Override
- public EntityModel deleteFileSystemItemWithIdAndAccessToken(long fsItemId, String accessToken) {
+ public ResponseEntity deleteFileSystemItemWithIdAndAccessToken(long fsItemId, String accessToken) {
return null;
}
}
diff --git a/src/main/java/de/filefighter/rest/domain/filesystem/rest/FileSystemRestServiceInterface.java b/src/main/java/de/filefighter/rest/domain/filesystem/rest/FileSystemRestServiceInterface.java
index f38ec0bb..ab84a61c 100644
--- a/src/main/java/de/filefighter/rest/domain/filesystem/rest/FileSystemRestServiceInterface.java
+++ b/src/main/java/de/filefighter/rest/domain/filesystem/rest/FileSystemRestServiceInterface.java
@@ -4,13 +4,13 @@
import de.filefighter.rest.domain.filesystem.data.dto.FileSystemItemUpdate;
import de.filefighter.rest.domain.filesystem.data.dto.FolderContents;
import de.filefighter.rest.rest.ServerResponse;
-import org.springframework.hateoas.EntityModel;
+import org.springframework.http.ResponseEntity;
public interface FileSystemRestServiceInterface {
- EntityModel getContentsOfFolderByIdAndAccessToken(String path, String accessToken);
- EntityModel getInfoAboutFileOrFolderByIdAndAccessToken(long fsItemId, String accessToken);
- EntityModel findFileOrFolderByNameAndAccessToken(String name, String accessToken);
- EntityModel uploadFileSystemItemWithAccessToken(FileSystemItemUpdate fileSystemItemUpdate, String accessToken);
- EntityModel updatedFileSystemItemWithIdAndAccessToken(long fsItemId, FileSystemItemUpdate fileSystemItemUpdate, String accessToken);
- EntityModel deleteFileSystemItemWithIdAndAccessToken(long fsItemId, String accessToken);
+ ResponseEntity getContentsOfFolderByIdAndAccessToken(String path, String accessToken);
+ ResponseEntity getInfoAboutFileOrFolderByIdAndAccessToken(long fsItemId, String accessToken);
+ ResponseEntity findFileOrFolderByNameAndAccessToken(String name, String accessToken);
+ ResponseEntity uploadFileSystemItemWithAccessToken(FileSystemItemUpdate fileSystemItemUpdate, String accessToken);
+ ResponseEntity updatedFileSystemItemWithIdAndAccessToken(long fsItemId, FileSystemItemUpdate fileSystemItemUpdate, String accessToken);
+ ResponseEntity deleteFileSystemItemWithIdAndAccessToken(long fsItemId, String accessToken);
}
diff --git a/src/main/java/de/filefighter/rest/domain/health/business/SystemHealthModelAssembler.java b/src/main/java/de/filefighter/rest/domain/health/business/SystemHealthModelAssembler.java
deleted file mode 100644
index c28111ae..00000000
--- a/src/main/java/de/filefighter/rest/domain/health/business/SystemHealthModelAssembler.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package de.filefighter.rest.domain.health.business;
-
-import de.filefighter.rest.domain.health.data.SystemHealth;
-import de.filefighter.rest.domain.health.rest.SystemHealthRestController;
-import org.jetbrains.annotations.NotNull;
-import org.springframework.hateoas.EntityModel;
-import org.springframework.hateoas.server.RepresentationModelAssembler;
-import org.springframework.stereotype.Component;
-
-import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.linkTo;
-import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.methodOn;
-
-@Component
-public class SystemHealthModelAssembler implements RepresentationModelAssembler> {
-
- @Override
- public @NotNull EntityModel toModel(@NotNull SystemHealth entity) {
- return EntityModel.of(entity,
- linkTo(methodOn(SystemHealthRestController.class).getSystemHealthInfo()).withSelfRel());
- }
-}
diff --git a/src/main/java/de/filefighter/rest/domain/health/rest/SystemHealthRestController.java b/src/main/java/de/filefighter/rest/domain/health/rest/SystemHealthRestController.java
index 4ad379ec..375bba87 100644
--- a/src/main/java/de/filefighter/rest/domain/health/rest/SystemHealthRestController.java
+++ b/src/main/java/de/filefighter/rest/domain/health/rest/SystemHealthRestController.java
@@ -2,7 +2,7 @@
import de.filefighter.rest.domain.health.data.SystemHealth;
import io.swagger.annotations.Api;
-import org.springframework.hateoas.EntityModel;
+import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@@ -17,7 +17,7 @@ public SystemHealthRestController(SystemHealthRestInterface healthRestService) {
}
@GetMapping("/health")
- public EntityModel getSystemHealthInfo(){
+ public ResponseEntity getSystemHealthInfo(){
return healthRestService.getSystemHealth();
}
}
diff --git a/src/main/java/de/filefighter/rest/domain/health/rest/SystemHealthRestInterface.java b/src/main/java/de/filefighter/rest/domain/health/rest/SystemHealthRestInterface.java
index cdfd6621..d2350955 100644
--- a/src/main/java/de/filefighter/rest/domain/health/rest/SystemHealthRestInterface.java
+++ b/src/main/java/de/filefighter/rest/domain/health/rest/SystemHealthRestInterface.java
@@ -1,8 +1,8 @@
package de.filefighter.rest.domain.health.rest;
import de.filefighter.rest.domain.health.data.SystemHealth;
-import org.springframework.hateoas.EntityModel;
+import org.springframework.http.ResponseEntity;
public interface SystemHealthRestInterface {
- EntityModel getSystemHealth();
+ ResponseEntity getSystemHealth();
}
diff --git a/src/main/java/de/filefighter/rest/domain/health/rest/SystemHealthRestService.java b/src/main/java/de/filefighter/rest/domain/health/rest/SystemHealthRestService.java
index 763c1fc0..8006471e 100644
--- a/src/main/java/de/filefighter/rest/domain/health/rest/SystemHealthRestService.java
+++ b/src/main/java/de/filefighter/rest/domain/health/rest/SystemHealthRestService.java
@@ -1,25 +1,22 @@
package de.filefighter.rest.domain.health.rest;
import de.filefighter.rest.domain.health.business.SystemHealthBusinessService;
-import de.filefighter.rest.domain.health.business.SystemHealthModelAssembler;
import de.filefighter.rest.domain.health.data.SystemHealth;
-import org.springframework.hateoas.EntityModel;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
@Service
public class SystemHealthRestService implements SystemHealthRestInterface {
private final SystemHealthBusinessService systemHealthBusinessService;
- private final SystemHealthModelAssembler systemHealthModelAssembler;
- public SystemHealthRestService(SystemHealthBusinessService systemHealthBusinessService, SystemHealthModelAssembler systemHealthModelAssembler) {
+ public SystemHealthRestService(SystemHealthBusinessService systemHealthBusinessService) {
this.systemHealthBusinessService = systemHealthBusinessService;
- this.systemHealthModelAssembler = systemHealthModelAssembler;
}
@Override
- public EntityModel getSystemHealth() {
- SystemHealth systemHealth = systemHealthBusinessService.getCurrentSystemHealthInfo();
- return systemHealthModelAssembler.toModel(systemHealth);
+ public ResponseEntity getSystemHealth() {
+ return new ResponseEntity<>(systemHealthBusinessService.getCurrentSystemHealthInfo(), HttpStatus.OK);
}
}
diff --git a/src/main/java/de/filefighter/rest/domain/permission/business/PermissionBusinessService.java b/src/main/java/de/filefighter/rest/domain/permission/business/PermissionBusinessService.java
new file mode 100644
index 00000000..63163e50
--- /dev/null
+++ b/src/main/java/de/filefighter/rest/domain/permission/business/PermissionBusinessService.java
@@ -0,0 +1,7 @@
+package de.filefighter.rest.domain.permission.business;
+
+import org.springframework.stereotype.Service;
+
+@Service
+public class PermissionBusinessService {
+}
diff --git a/src/main/java/de/filefighter/rest/domain/permission/rest/PermissionRestController.java b/src/main/java/de/filefighter/rest/domain/permission/rest/PermissionRestController.java
index ff65a18b..33945b1e 100644
--- a/src/main/java/de/filefighter/rest/domain/permission/rest/PermissionRestController.java
+++ b/src/main/java/de/filefighter/rest/domain/permission/rest/PermissionRestController.java
@@ -1,12 +1,12 @@
package de.filefighter.rest.domain.permission.rest;
-import de.filefighter.rest.domain.permission.data.dto.request.PermissionRequest;
import de.filefighter.rest.domain.permission.data.dto.PermissionSet;
+import de.filefighter.rest.domain.permission.data.dto.request.PermissionRequest;
import de.filefighter.rest.rest.ServerResponse;
import io.swagger.annotations.Api;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.springframework.hateoas.EntityModel;
+import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import static de.filefighter.rest.configuration.RestConfiguration.*;
@@ -25,7 +25,7 @@ public PermissionRestController(PermissionRestServiceInterface permissionsRestSe
//R
@GetMapping(FS_BASE_URI+"{fsItemId}/permission")
- public EntityModel getPermissionSetForFileOrFolder(
+ public ResponseEntity getPermissionSetForFileOrFolder(
@PathVariable long fsItemId,
@RequestHeader(value = "Authorization", defaultValue = AUTHORIZATION_BEARER_PREFIX + "token") String accessToken
){
@@ -36,7 +36,7 @@ public EntityModel getPermissionSetForFileOrFolder(
//C U
@PutMapping(FS_BASE_URI+"{fsItemId}/permission")
- public EntityModel addUsersOrGroupsToPermissionSetForFileOrFolder(
+ public ResponseEntity addUsersOrGroupsToPermissionSetForFileOrFolder(
@PathVariable long fsItemId,
@RequestBody PermissionRequest permissionRequest,
@RequestHeader(value = "Authorization", defaultValue = AUTHORIZATION_BEARER_PREFIX + "token") String accessToken
@@ -48,7 +48,7 @@ public EntityModel addUsersOrGroupsToPermissionSetForFileOrFolde
//D
@DeleteMapping(FS_BASE_URI+"{fsItemId}/permission")
- public EntityModel removeUsersOrGroupsFromPermissionSetForFileOrFolder(
+ public ResponseEntity removeUsersOrGroupsFromPermissionSetForFileOrFolder(
@PathVariable long fsItemId,
@RequestBody PermissionRequest permissionRequest,
@RequestHeader(value = "Authorization", defaultValue = AUTHORIZATION_BEARER_PREFIX + "token") String accessToken
diff --git a/src/main/java/de/filefighter/rest/domain/permission/rest/PermissionRestService.java b/src/main/java/de/filefighter/rest/domain/permission/rest/PermissionRestService.java
index 5c4ea082..cedfc17b 100644
--- a/src/main/java/de/filefighter/rest/domain/permission/rest/PermissionRestService.java
+++ b/src/main/java/de/filefighter/rest/domain/permission/rest/PermissionRestService.java
@@ -3,23 +3,23 @@
import de.filefighter.rest.domain.permission.data.dto.PermissionSet;
import de.filefighter.rest.domain.permission.data.dto.request.PermissionRequest;
import de.filefighter.rest.rest.ServerResponse;
-import org.springframework.hateoas.EntityModel;
+import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
@Service
public class PermissionRestService implements PermissionRestServiceInterface{
@Override
- public EntityModel getPermissionSetByIdAndToken(long fsItemId, String accessToken) {
+ public ResponseEntity getPermissionSetByIdAndToken(long fsItemId, String accessToken) {
return null;
}
@Override
- public EntityModel addUsersOrGroupsToPermissionSetForFileOrFolderWithAccessToken(PermissionRequest permissionRequest, long fsItemId, String accessToken) {
+ public ResponseEntity addUsersOrGroupsToPermissionSetForFileOrFolderWithAccessToken(PermissionRequest permissionRequest, long fsItemId, String accessToken) {
return null;
}
@Override
- public EntityModel removeUsersOrGroupsFromPermissionSetForFileOrFolderWithAccessToken(PermissionRequest permissionRequest, long fsItemId, String accessToken) {
+ public ResponseEntity removeUsersOrGroupsFromPermissionSetForFileOrFolderWithAccessToken(PermissionRequest permissionRequest, long fsItemId, String accessToken) {
return null;
}
}
diff --git a/src/main/java/de/filefighter/rest/domain/permission/rest/PermissionRestServiceInterface.java b/src/main/java/de/filefighter/rest/domain/permission/rest/PermissionRestServiceInterface.java
index 8bad40c3..1967927f 100644
--- a/src/main/java/de/filefighter/rest/domain/permission/rest/PermissionRestServiceInterface.java
+++ b/src/main/java/de/filefighter/rest/domain/permission/rest/PermissionRestServiceInterface.java
@@ -3,10 +3,10 @@
import de.filefighter.rest.domain.permission.data.dto.PermissionSet;
import de.filefighter.rest.domain.permission.data.dto.request.PermissionRequest;
import de.filefighter.rest.rest.ServerResponse;
-import org.springframework.hateoas.EntityModel;
+import org.springframework.http.ResponseEntity;
public interface PermissionRestServiceInterface {
- EntityModel getPermissionSetByIdAndToken(long fsItemId, String accessToken);
- EntityModel addUsersOrGroupsToPermissionSetForFileOrFolderWithAccessToken(PermissionRequest permissionRequest, long fsItemId, String accessToken);
- EntityModel removeUsersOrGroupsFromPermissionSetForFileOrFolderWithAccessToken(PermissionRequest permissionRequest, long fsItemId, String accessToken);
+ ResponseEntity getPermissionSetByIdAndToken(long fsItemId, String accessToken);
+ ResponseEntity addUsersOrGroupsToPermissionSetForFileOrFolderWithAccessToken(PermissionRequest permissionRequest, long fsItemId, String accessToken);
+ ResponseEntity removeUsersOrGroupsFromPermissionSetForFileOrFolderWithAccessToken(PermissionRequest permissionRequest, long fsItemId, String accessToken);
}
diff --git a/src/main/java/de/filefighter/rest/domain/token/business/AccessTokenBusinessService.java b/src/main/java/de/filefighter/rest/domain/token/business/AccessTokenBusinessService.java
new file mode 100644
index 00000000..18b9fc61
--- /dev/null
+++ b/src/main/java/de/filefighter/rest/domain/token/business/AccessTokenBusinessService.java
@@ -0,0 +1,8 @@
+package de.filefighter.rest.domain.token.business;
+
+import org.springframework.stereotype.Service;
+
+@Service
+public class AccessTokenBusinessService {
+ public static final long ACCESS_TOKEN_DURATION_IN_SECONDS = 3600L;
+}
diff --git a/src/main/java/de/filefighter/rest/domain/token/data/persistance/AccessTokenEntity.java b/src/main/java/de/filefighter/rest/domain/token/data/persistance/AccessTokenEntity.java
index 599ee72e..172ca570 100644
--- a/src/main/java/de/filefighter/rest/domain/token/data/persistance/AccessTokenEntity.java
+++ b/src/main/java/de/filefighter/rest/domain/token/data/persistance/AccessTokenEntity.java
@@ -1,11 +1,13 @@
package de.filefighter.rest.domain.token.data.persistance;
+import lombok.Builder;
import lombok.Data;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.MongoId;
@Document(collection = "token")
@Data
+@Builder
public class AccessTokenEntity {
@MongoId
@@ -13,10 +15,5 @@ public class AccessTokenEntity {
private String value;
private long userId;
private long validUntil;
-
- public AccessTokenEntity(String value, long userId, long validUntil) {
- this.value = value;
- this.userId = userId;
- this.validUntil = validUntil;
- }
+
}
\ No newline at end of file
diff --git a/src/main/java/de/filefighter/rest/domain/user/data/persistance/UserEntitiy.java b/src/main/java/de/filefighter/rest/domain/user/data/persistance/UserEntity.java
similarity index 59%
rename from src/main/java/de/filefighter/rest/domain/user/data/persistance/UserEntitiy.java
rename to src/main/java/de/filefighter/rest/domain/user/data/persistance/UserEntity.java
index e9e1498d..db28695c 100644
--- a/src/main/java/de/filefighter/rest/domain/user/data/persistance/UserEntitiy.java
+++ b/src/main/java/de/filefighter/rest/domain/user/data/persistance/UserEntity.java
@@ -1,12 +1,14 @@
package de.filefighter.rest.domain.user.data.persistance;
+import lombok.Builder;
import lombok.Data;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.MongoId;
@Document(collection = "user")
@Data
-public class UserEntitiy {
+@Builder
+public class UserEntity {
@MongoId
private String id;
@@ -16,11 +18,5 @@ public class UserEntitiy {
private String refreshToken; //TODO: add valid_until for refreshToken
private long[] roleIds;
- public UserEntitiy(long userId, String username, String password, String refreshToken, long... roleIds) {
- this.userId = userId;
- this.username = username;
- this.password = password;
- this.refreshToken = refreshToken;
- this.roleIds = roleIds;
- }
+
}
diff --git a/src/main/java/de/filefighter/rest/domain/user/data/persistance/UserRepository.java b/src/main/java/de/filefighter/rest/domain/user/data/persistance/UserRepository.java
index 8af3062a..aafc05be 100644
--- a/src/main/java/de/filefighter/rest/domain/user/data/persistance/UserRepository.java
+++ b/src/main/java/de/filefighter/rest/domain/user/data/persistance/UserRepository.java
@@ -4,8 +4,8 @@
import org.springframework.stereotype.Service;
@Service
-public interface UserRepository extends MongoRepository {
- UserEntitiy findByUserId(long userId);
- UserEntitiy findByUsernameAndPassword(String username, String password);
- UserEntitiy findByRefreshToken(String refreshToken);
+public interface UserRepository extends MongoRepository {
+ UserEntity findByUserId(long userId);
+ UserEntity findByUsernameAndPassword(String username, String password);
+ UserEntity findByRefreshToken(String refreshToken);
}
diff --git a/src/main/java/de/filefighter/rest/domain/user/rest/UserRestController.java b/src/main/java/de/filefighter/rest/domain/user/rest/UserRestController.java
index caf09943..4b4b1b38 100644
--- a/src/main/java/de/filefighter/rest/domain/user/rest/UserRestController.java
+++ b/src/main/java/de/filefighter/rest/domain/user/rest/UserRestController.java
@@ -8,7 +8,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.hateoas.EntityModel;
+import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import static de.filefighter.rest.configuration.RestConfiguration.*;
@@ -28,7 +28,7 @@ public UserRestController(UserRestServiceInterface userRestService) {
}
@PostMapping(USER_BASE_URI + "register")
- public EntityModel registerNewUser(
+ public ResponseEntity registerNewUser(
@RequestHeader(value = "Authorization", defaultValue = AUTHORIZATION_BEARER_PREFIX + "admin-token") String accessToken,
@RequestBody UserRegisterForm newUser) {
@@ -37,7 +37,7 @@ public EntityModel registerNewUser(
}
@GetMapping(USER_BASE_URI + "login")
- public EntityModel loginUserWithUsernameAndPassword(
+ public ResponseEntity loginUserWithUsernameAndPassword(
@RequestHeader(value = "Authorization", defaultValue = AUTHORIZATION_BASIC_PREFIX + "S2V2aW46MTIzNA==") String base64encodedUserAndPassword) {
LOG.info("Requested Login.");
@@ -45,7 +45,7 @@ public EntityModel loginUserWithUsernameAndPassword(
}
@GetMapping(USER_BASE_URI + "{userId}/login")
- public EntityModel getAccessTokenAndUserInfoByRefreshTokenAndUserId(
+ public ResponseEntity getAccessTokenAndUserInfoByRefreshTokenAndUserId(
@PathVariable long userId,
@RequestHeader(value = "Authorization", defaultValue = AUTHORIZATION_BEARER_PREFIX + "token") String refreshToken) {
@@ -55,7 +55,7 @@ public EntityModel getAccessTokenAndUserInfoByRefreshTokenAndUserId
@GetMapping(USER_BASE_URI + "{userId}/info")
- public EntityModel getUserInfoWithAccessToken(
+ public ResponseEntity getUserInfoWithAccessToken(
@PathVariable long userId,
@RequestHeader(value = "Authorization", defaultValue = AUTHORIZATION_BEARER_PREFIX + "token") String accessToken) {
@@ -64,7 +64,7 @@ public EntityModel getUserInfoWithAccessToken(
}
@PutMapping(USER_BASE_URI + "{userId}/edit")
- public EntityModel updateUserWithAccessToken(
+ public ResponseEntity updateUserWithAccessToken(
@PathVariable long userId,
@RequestHeader(value = "Authorization", defaultValue = AUTHORIZATION_BEARER_PREFIX + "token") String accessToken,
@RequestBody UserRegisterForm updatedUser) {
@@ -74,7 +74,7 @@ public EntityModel updateUserWithAccessToken(
}
@GetMapping(USER_BASE_URI + "find")
- public EntityModel findUserByUsername(
+ public ResponseEntity findUserByUsername(
@RequestHeader(value = "Authorization", defaultValue = AUTHORIZATION_BEARER_PREFIX + "token") String accessToken,
@RequestParam(name = "username", value = "username") String username
) {
diff --git a/src/main/java/de/filefighter/rest/domain/user/rest/UserRestService.java b/src/main/java/de/filefighter/rest/domain/user/rest/UserRestService.java
index 03170256..8771d8e0 100644
--- a/src/main/java/de/filefighter/rest/domain/user/rest/UserRestService.java
+++ b/src/main/java/de/filefighter/rest/domain/user/rest/UserRestService.java
@@ -4,7 +4,7 @@
import de.filefighter.rest.domain.token.data.dto.RefreshToken;
import de.filefighter.rest.domain.user.data.dto.User;
import de.filefighter.rest.domain.user.data.dto.UserRegisterForm;
-import org.springframework.hateoas.EntityModel;
+import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
@@ -12,32 +12,32 @@
public class UserRestService implements UserRestServiceInterface {
@Override
- public EntityModel getUserByAccessTokenAndUserId(String accessToken, long userId) {
+ public ResponseEntity getUserByAccessTokenAndUserId(String accessToken, long userId) {
return null;
}
@Override
- public EntityModel getRefreshTokenWithUsernameAndPassword(String base64encodedUserAndPassword) {
+ public ResponseEntity getRefreshTokenWithUsernameAndPassword(String base64encodedUserAndPassword) {
return null;
}
@Override
- public EntityModel getAccessTokenByRefreshTokenAndUserId(String refreshToken, long userId) {
+ public ResponseEntity getAccessTokenByRefreshTokenAndUserId(String refreshToken, long userId) {
return null;
}
@Override
- public EntityModel updateUserByAccessTokenAndUserId(UserRegisterForm updatedUser, String accessToken, long userId) {
+ public ResponseEntity updateUserByAccessTokenAndUserId(UserRegisterForm updatedUser, String accessToken, long userId) {
return null;
}
@Override
- public EntityModel registerNewUserWithAccessToken(UserRegisterForm newUser, String accessToken) {
+ public ResponseEntity registerNewUserWithAccessToken(UserRegisterForm newUser, String accessToken) {
return null;
}
@Override
- public EntityModel findUserByUsernameAndAccessToken(String username, String accessToken) {
+ public ResponseEntity findUserByUsernameAndAccessToken(String username, String accessToken) {
return null;
}
}
diff --git a/src/main/java/de/filefighter/rest/domain/user/rest/UserRestServiceInterface.java b/src/main/java/de/filefighter/rest/domain/user/rest/UserRestServiceInterface.java
index 737f2118..892c0b85 100644
--- a/src/main/java/de/filefighter/rest/domain/user/rest/UserRestServiceInterface.java
+++ b/src/main/java/de/filefighter/rest/domain/user/rest/UserRestServiceInterface.java
@@ -4,13 +4,13 @@
import de.filefighter.rest.domain.token.data.dto.RefreshToken;
import de.filefighter.rest.domain.user.data.dto.User;
import de.filefighter.rest.domain.user.data.dto.UserRegisterForm;
-import org.springframework.hateoas.EntityModel;
+import org.springframework.http.ResponseEntity;
public interface UserRestServiceInterface {
- EntityModel getUserByAccessTokenAndUserId(String accessToken, long userId);
- EntityModel getRefreshTokenWithUsernameAndPassword(String base64encodedUserAndPassword);
- EntityModel getAccessTokenByRefreshTokenAndUserId(String refreshToken, long userId);
- EntityModel updateUserByAccessTokenAndUserId(UserRegisterForm updatedUser, String accessToken, long userId);
- EntityModel registerNewUserWithAccessToken(UserRegisterForm newUser, String accessToken);
- EntityModel findUserByUsernameAndAccessToken(String username, String accessToken);
+ ResponseEntity getUserByAccessTokenAndUserId(String accessToken, long userId);
+ ResponseEntity getRefreshTokenWithUsernameAndPassword(String base64encodedUserAndPassword);
+ ResponseEntity getAccessTokenByRefreshTokenAndUserId(String refreshToken, long userId);
+ ResponseEntity updateUserByAccessTokenAndUserId(UserRegisterForm updatedUser, String accessToken, long userId);
+ ResponseEntity registerNewUserWithAccessToken(UserRegisterForm newUser, String accessToken);
+ ResponseEntity findUserByUsernameAndAccessToken(String username, String accessToken);
}
diff --git a/src/main/java/de/filefighter/rest/rest/RestErrorController.java b/src/main/java/de/filefighter/rest/rest/RestErrorController.java
index 6a3ed541..3484651a 100644
--- a/src/main/java/de/filefighter/rest/rest/RestErrorController.java
+++ b/src/main/java/de/filefighter/rest/rest/RestErrorController.java
@@ -1,7 +1,6 @@
package de.filefighter.rest.rest;
import org.springframework.boot.web.servlet.error.ErrorController;
-import org.springframework.hateoas.EntityModel;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestMapping;
diff --git a/src/main/java/de/filefighter/rest/rest/ServerResponse.java b/src/main/java/de/filefighter/rest/rest/ServerResponse.java
index abc75c97..17f6a806 100644
--- a/src/main/java/de/filefighter/rest/rest/ServerResponse.java
+++ b/src/main/java/de/filefighter/rest/rest/ServerResponse.java
@@ -1,8 +1,6 @@
package de.filefighter.rest.rest;
-import lombok.Data;
import lombok.Getter;
-import org.springframework.hateoas.EntityModel;
@Getter
public class ServerResponse {
diff --git a/src/test/java/de/filefighter/rest/HeaderSettingRequestCallback.java b/src/test/java/de/filefighter/rest/HeaderSettingRequestCallback.java
new file mode 100644
index 00000000..6006239d
--- /dev/null
+++ b/src/test/java/de/filefighter/rest/HeaderSettingRequestCallback.java
@@ -0,0 +1,33 @@
+package de.filefighter.rest;
+
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.client.ClientHttpRequest;
+import org.springframework.web.client.RequestCallback;
+
+import java.io.IOException;
+import java.util.Map;
+
+public class HeaderSettingRequestCallback implements RequestCallback {
+ final Map requestHeaders;
+
+ private String body;
+
+ public HeaderSettingRequestCallback(Map headers) {
+ this.requestHeaders = headers;
+ }
+
+ public void setBody(final String postBody) {
+ this.body = postBody;
+ }
+
+ @Override
+ public void doWithRequest(ClientHttpRequest request) throws IOException {
+ final HttpHeaders clientHeaders = request.getHeaders();
+ for (final Map.Entry entry : requestHeaders.entrySet()) {
+ clientHeaders.add(entry.getKey(), entry.getValue());
+ }
+ if (null != body) {
+ request.getBody().write(body.getBytes());
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/test/java/de/filefighter/rest/ResponseResults.java b/src/test/java/de/filefighter/rest/ResponseResults.java
new file mode 100644
index 00000000..c6067b17
--- /dev/null
+++ b/src/test/java/de/filefighter/rest/ResponseResults.java
@@ -0,0 +1,29 @@
+package de.filefighter.rest;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.StringWriter;
+
+import org.apache.commons.io.IOUtils;
+import org.springframework.http.client.ClientHttpResponse;
+
+public class ResponseResults {
+ private final ClientHttpResponse theResponse;
+ private final String body;
+
+ ResponseResults(final ClientHttpResponse response) throws IOException {
+ this.theResponse = response;
+ final InputStream bodyInputStream = response.getBody();
+ final StringWriter stringWriter = new StringWriter();
+ IOUtils.copy(bodyInputStream, stringWriter); //TODO: change maybe?
+ this.body = stringWriter.toString();
+ }
+
+ public ClientHttpResponse getTheResponse() {
+ return theResponse;
+ }
+
+ public String getBody() {
+ return body;
+ }
+}
\ No newline at end of file
diff --git a/src/test/java/de/filefighter/rest/RestApplicationIntegrationTest.java b/src/test/java/de/filefighter/rest/RestApplicationIntegrationTest.java
index 46c20a77..41f5e26d 100644
--- a/src/test/java/de/filefighter/rest/RestApplicationIntegrationTest.java
+++ b/src/test/java/de/filefighter/rest/RestApplicationIntegrationTest.java
@@ -1,35 +1,101 @@
package de.filefighter.rest;
+import de.filefighter.rest.configuration.RestConfiguration;
import de.filefighter.rest.domain.filesystem.rest.FileSystemRestController;
import de.filefighter.rest.domain.health.rest.SystemHealthRestController;
import de.filefighter.rest.domain.permission.rest.PermissionRestController;
import de.filefighter.rest.domain.user.rest.UserRestController;
+import org.jetbrains.annotations.NotNull;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.web.server.LocalServerPort;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.client.ClientHttpResponse;
+import org.springframework.web.client.ResponseErrorHandler;
+import org.springframework.web.client.RestTemplate;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
import static org.assertj.core.api.Assertions.assertThat;
-@SpringBootTest
-class RestApplicationIntegrationTest {
+@SpringBootTest(classes = RestApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
+public class RestApplicationIntegrationTest {
+
+ protected static ResponseResults latestResponse = null;
+
+ @LocalServerPort
+ private int port;
+
+ @Autowired
+ private RestTemplate restTemplate;
@Autowired
SystemHealthRestController healthController;
@Autowired
- UserRestController userController;
+ UserRestController userController;
@Autowired
- FileSystemRestController fileSystemRestController;
+ FileSystemRestController fileSystemRestController;
@Autowired
- PermissionRestController permissionRestController;
-
- @Test
- void contextLoads() {
- assertThat(healthController).isNotNull();
- assertThat(userController).isNotNull();
- assertThat(fileSystemRestController).isNotNull();
- assertThat(permissionRestController).isNotNull();
- }
+ PermissionRestController permissionRestController;
+
+ @Test
+ public void contextLoads() {
+ assertThat(healthController).isNotNull();
+ assertThat(userController).isNotNull();
+ assertThat(fileSystemRestController).isNotNull();
+ assertThat(permissionRestController).isNotNull();
+ }
+
+ // Inspired by https://github.com/eugenp/tutorials/tree/master/spring-cucumber
+
+ protected void executeRestApiCall(HttpMethod httpMethod, String url) {
+ final Map headers = new HashMap<>();
+ headers.put("Accept", "application/json");
+ executeRequest(httpMethod, url, headers);
+ }
+
+ protected void executeRestApiCall(HttpMethod httpMethod, String url, Map headers) {
+ executeRequest(httpMethod, url, headers);
+ }
+
+ private void executeRequest(HttpMethod httpMethod, String url, Map headers) {
+ final HeaderSettingRequestCallback requestCallback = new HeaderSettingRequestCallback(headers);
+ final ResponseResultErrorHandler errorHandler = new ResponseResultErrorHandler();
+
+ restTemplate.setErrorHandler(errorHandler);
+ latestResponse = restTemplate
+ .execute("http://localhost:" + port + url, httpMethod, requestCallback, response -> {
+ if (errorHandler.hadError) {
+ return (errorHandler.getResults());
+ } else {
+ return (new ResponseResults(response));
+ }
+ });
+ }
+
+ private static class ResponseResultErrorHandler implements ResponseErrorHandler {
+ private ResponseResults results = null;
+ private Boolean hadError = false;
+
+ private ResponseResults getResults() {
+ return results;
+ }
+
+ @Override
+ public boolean hasError(ClientHttpResponse response) throws IOException {
+ hadError = response.getRawStatusCode() >= 400;
+ return hadError;
+ }
+
+ @Override
+ public void handleError(@NotNull ClientHttpResponse response) throws IOException {
+ results = new ResponseResults(response);
+ }
+ }
}
\ No newline at end of file
diff --git a/src/test/java/de/filefighter/rest/cucumber/CommonCucumberSteps.java b/src/test/java/de/filefighter/rest/cucumber/CommonCucumberSteps.java
index 7dba534f..16abae10 100644
--- a/src/test/java/de/filefighter/rest/cucumber/CommonCucumberSteps.java
+++ b/src/test/java/de/filefighter/rest/cucumber/CommonCucumberSteps.java
@@ -1,34 +1,107 @@
package de.filefighter.rest.cucumber;
+import de.filefighter.rest.RestApplicationIntegrationTest;
+import de.filefighter.rest.configuration.RestConfiguration;
+import de.filefighter.rest.domain.filesystem.data.persistance.FileSystemEntity;
+import de.filefighter.rest.domain.filesystem.data.persistance.FileSystemRepository;
+import de.filefighter.rest.domain.token.data.persistance.AccessTokenEntity;
+import de.filefighter.rest.domain.token.data.persistance.AccessTokenRepository;
+import de.filefighter.rest.domain.user.data.persistance.UserEntity;
+import de.filefighter.rest.domain.user.data.persistance.UserRepository;
import io.cucumber.java.en.And;
import io.cucumber.java.en.Given;
import io.cucumber.java.en.Then;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpMethod;
-public class CommonCucumberSteps extends CucumberIntegrationTest {
+import java.time.Instant;
+import java.util.Arrays;
+
+import static de.filefighter.rest.domain.token.business.AccessTokenBusinessService.ACCESS_TOKEN_DURATION_IN_SECONDS;
+
+public class CommonCucumberSteps extends RestApplicationIntegrationTest {
+
+ private final UserRepository userRepository;
+ private final AccessTokenRepository accessTokenRepository;
+ private final FileSystemRepository fileSystemRepository;
+
+ @Autowired
+ public CommonCucumberSteps(UserRepository userRepository, AccessTokenRepository accessTokenRepository, FileSystemRepository fileSystemRepository) {
+ this.userRepository = userRepository;
+ this.accessTokenRepository = accessTokenRepository;
+ this.fileSystemRepository = fileSystemRepository;
+ }
@Given("database is empty")
public void databaseIsEmpty() {
+ userRepository.deleteAll();
+ accessTokenRepository.deleteAll();
+ fileSystemRepository.deleteAll();
}
@And("user {long} exists")
public void userExists(long userId) {
+ userRepository.save(UserEntity
+ .builder()
+ .userId(userId)
+ .build());
}
@And("user {long} has access token {string}")
public void userHasAccessToken(long userId, String accessTokenValue) {
+ accessTokenRepository.save(AccessTokenEntity
+ .builder()
+ .userId(userId)
+ .value(accessTokenValue)
+ .validUntil(Instant.now().getEpochSecond() + ACCESS_TOKEN_DURATION_IN_SECONDS)
+ .build());
}
@And("user with id {long} exists and has username {string}, password {string} and refreshToken {string}")
public void userWithIdExistsAndHasUsernamePasswordAndRefreshToken(long userId, String username, String password, String refreshTokenValue) {
+ userRepository.save(UserEntity
+ .builder()
+ .userId(userId)
+ .username(username)
+ .password(password)
+ .refreshToken(refreshTokenValue)
+ .build());
}
// file / folder
@Given("{string} exists with id {long} and path {string}")
- public void existsWithIdAndPath(String fileOrFolder, long fsItemId, String arg2) {
+ public void existsWithIdAndPath(String fileOrFolder, long fsItemId, String path) {
+ if(fileOrFolder.equals("file")){
+ //TODO: split into folders and files.
+ String[] names = path.split("/");
+ System.out.println(Arrays.toString(names));
+
+ fileSystemRepository.save(FileSystemEntity
+ .builder()
+ .isFile(true)
+ .id(fsItemId)
+ .create());
+ }else if(fileOrFolder.equals("folder")){
+ fileSystemRepository.save(FileSystemEntity
+ .builder()
+ .isFile(false)
+ .id(fsItemId)
+ .path(path)
+ .create());
+ }else{
+ throw new IllegalArgumentException("Found not valid string for FileOrFolder in Steps file.");
+ }
}
@And("user {long} is owner of file or folder with id {long}")
public void userIsOwnerOfFileOrFolderWithId(long userId, long fsItemId) {
+ FileSystemEntity fileSystemEntity = fileSystemRepository.findById(fsItemId);
+ if(null == fileSystemEntity){
+ throw new IllegalArgumentException("FileSystemEntity was null.");
+ }
+
+ fileSystemEntity.setCreatedByUserId(userId);
+ fileSystemRepository.save(fileSystemEntity);
}
//key: value for json type response.
diff --git a/src/test/java/de/filefighter/rest/cucumber/CrudPermissionSteps.java b/src/test/java/de/filefighter/rest/cucumber/CrudPermissionSteps.java
index d6591ad4..d8bc96c8 100644
--- a/src/test/java/de/filefighter/rest/cucumber/CrudPermissionSteps.java
+++ b/src/test/java/de/filefighter/rest/cucumber/CrudPermissionSteps.java
@@ -1,9 +1,10 @@
package de.filefighter.rest.cucumber;
+import de.filefighter.rest.RestApplicationIntegrationTest;
import io.cucumber.java.en.And;
import io.cucumber.java.en.When;
-public class CrudPermissionSteps extends CucumberIntegrationTest {
+public class CrudPermissionSteps extends RestApplicationIntegrationTest {
@And("user {long} has permission of {string} for {string} with id {long}")
public void userHasPermissionOfForWithIdId(long userId, String readOrWrite, String fileOrFolder, long fsItemId) {
diff --git a/src/test/java/de/filefighter/rest/cucumber/CucumberIntegrationTest.java b/src/test/java/de/filefighter/rest/cucumber/CucumberIntegrationTest.java
index a1de13f8..63b94ed5 100644
--- a/src/test/java/de/filefighter/rest/cucumber/CucumberIntegrationTest.java
+++ b/src/test/java/de/filefighter/rest/cucumber/CucumberIntegrationTest.java
@@ -1,14 +1,16 @@
package de.filefighter.rest.cucumber;
+import de.filefighter.rest.RestApplicationIntegrationTest;
import io.cucumber.junit.Cucumber;
import io.cucumber.junit.CucumberOptions;
import io.cucumber.spring.CucumberContextConfiguration;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
-@CucumberContextConfiguration
-@SpringBootTest
+
@RunWith(Cucumber.class)
-@CucumberOptions(features = "src/test/cucumber/de/filefighter/rest/")
+@CucumberOptions(features = "src/test/resources")
+@CucumberContextConfiguration
+@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class CucumberIntegrationTest {
}
\ No newline at end of file
diff --git a/src/test/java/de/filefighter/rest/cucumber/UserAuthorizationSteps.java b/src/test/java/de/filefighter/rest/cucumber/UserAuthorizationSteps.java
index 9ec09598..fce5a740 100644
--- a/src/test/java/de/filefighter/rest/cucumber/UserAuthorizationSteps.java
+++ b/src/test/java/de/filefighter/rest/cucumber/UserAuthorizationSteps.java
@@ -1,12 +1,13 @@
package de.filefighter.rest.cucumber;
+import de.filefighter.rest.RestApplicationIntegrationTest;
import io.cucumber.java.en.And;
import io.cucumber.java.en.Then;
import io.cucumber.java.en.When;
import static org.junit.jupiter.api.Assertions.assertTrue;
-public class UserAuthorizationSteps extends CucumberIntegrationTest {
+public class UserAuthorizationSteps extends RestApplicationIntegrationTest {
@When("user requests login with username {string} and password {string}")
public void userRequestsLoginWithUsernameAndPassword(String username, String password) {
diff --git a/src/test/java/de/filefighter/rest/cucumber/ViewFolderContentsSteps.java b/src/test/java/de/filefighter/rest/cucumber/ViewFolderContentsSteps.java
index d803bc06..8460e3a0 100644
--- a/src/test/java/de/filefighter/rest/cucumber/ViewFolderContentsSteps.java
+++ b/src/test/java/de/filefighter/rest/cucumber/ViewFolderContentsSteps.java
@@ -1,9 +1,10 @@
package de.filefighter.rest.cucumber;
+import de.filefighter.rest.RestApplicationIntegrationTest;
import io.cucumber.java.en.And;
import io.cucumber.java.en.When;
-public class ViewFolderContentsSteps extends CucumberIntegrationTest {
+public class ViewFolderContentsSteps extends RestApplicationIntegrationTest {
@When("user with token {string} wants to see the content of folder with path {string}")
public void userWithTokenWantsToSeeTheContentOfFolderWithPath(String accessTokenValue, String path) {
}
diff --git a/src/test/java/de/filefighter/rest/domain/filesystem/rest/FileSystemRestControllerUnitTest.java b/src/test/java/de/filefighter/rest/domain/filesystem/rest/FileSystemRestControllerUnitTest.java
index 2ec70316..954b9a27 100644
--- a/src/test/java/de/filefighter/rest/domain/filesystem/rest/FileSystemRestControllerUnitTest.java
+++ b/src/test/java/de/filefighter/rest/domain/filesystem/rest/FileSystemRestControllerUnitTest.java
@@ -4,11 +4,13 @@
import de.filefighter.rest.rest.ServerResponse;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import org.springframework.hateoas.EntityModel;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
+import static org.springframework.http.HttpStatus.OK;
class FileSystemRestControllerUnitTest {
@@ -24,65 +26,65 @@ void setUp() {
void getContentsOfFolder() {
Folder dummyFolder = new Folder();
File dummyFile = new File();
- EntityModel expectedModel = EntityModel.of(FolderContents.builder()
+ ResponseEntity expectedModel = new ResponseEntity<>(FolderContents.builder()
.files(new File[]{dummyFile})
- .folders(new Folder[]{dummyFolder}).create());
+ .folders(new Folder[]{dummyFolder}).create(), OK);
String path= "/root/data.txt";
String token = "token";
when(fileSystemRestServiceMock.getContentsOfFolderByIdAndAccessToken(path, token)).thenReturn(expectedModel);
- EntityModel actualModel = fileSystemRestController.getContentsOfFolder(path, token);
+ ResponseEntity actualModel = fileSystemRestController.getContentsOfFolder(path, token);
assertEquals(expectedModel, actualModel);
}
@Test
void getFileOrFolderInfo() {
File file = new File();
- EntityModel expectedModel = EntityModel.of(file);
+ ResponseEntity expectedModel = new ResponseEntity<>(file, OK);
long id = 420;
String token = "token";
when(fileSystemRestServiceMock.getInfoAboutFileOrFolderByIdAndAccessToken(id, token)).thenReturn(expectedModel);
- EntityModel actualModel = fileSystemRestController.getFileOrFolderInfo(id, token);
+ ResponseEntity actualModel = fileSystemRestController.getFileOrFolderInfo(id, token);
assertEquals(expectedModel, actualModel);
}
@Test
void searchFileOrFolderByName() {
File file = new File();
- EntityModel expectedModel = EntityModel.of(file);
+ ResponseEntity expectedModel = new ResponseEntity<>(file, OK);
String name = "randomFile.exe";
String token = "token";
when(fileSystemRestServiceMock.findFileOrFolderByNameAndAccessToken(name, token)).thenReturn(expectedModel);
- EntityModel actualModel = fileSystemRestController.searchFileOrFolderByName(name, token);
+ ResponseEntity actualModel = fileSystemRestController.searchFileOrFolderByName(name, token);
assertEquals(expectedModel, actualModel);
}
@Test
void uploadFileOrFolder() {
File file = new File();
- EntityModel expectedModel = EntityModel.of(file);
+ ResponseEntity expectedModel = new ResponseEntity<>(file, OK);
FileSystemItemUpdate fileSystemItemUpdate = FileSystemItemUpdate.create().name("ugabuga").build();
String token = "token";
when(fileSystemRestServiceMock.uploadFileSystemItemWithAccessToken(fileSystemItemUpdate, token)).thenReturn(expectedModel);
- EntityModel actualModel = fileSystemRestController.uploadFileOrFolder(fileSystemItemUpdate, token);
+ ResponseEntity actualModel = fileSystemRestController.uploadFileOrFolder(fileSystemItemUpdate, token);
assertEquals(expectedModel, actualModel);
}
@Test
void updateExistingFileOrFolder() {
File file = new File();
- EntityModel expectedModel = EntityModel.of(file);
+ ResponseEntity expectedModel = new ResponseEntity<>(file, OK);
long id = 420L;
FileSystemItemUpdate fileSystemItemUpdate = FileSystemItemUpdate.create().name("ugabuga").build();
@@ -90,21 +92,21 @@ void updateExistingFileOrFolder() {
when(fileSystemRestServiceMock.updatedFileSystemItemWithIdAndAccessToken(id, fileSystemItemUpdate, token)).thenReturn(expectedModel);
- EntityModel actualModel = fileSystemRestController.updateExistingFileOrFolder(id, fileSystemItemUpdate, token);
+ ResponseEntity actualModel = fileSystemRestController.updateExistingFileOrFolder(id, fileSystemItemUpdate, token);
assertEquals(expectedModel, actualModel);
}
@Test
void deleteFileOrFolder() {
ServerResponse response = new ServerResponse("denied", "not authorized");
- EntityModel expectedModel = EntityModel.of(response);
+ ResponseEntity expectedModel = new ResponseEntity<>(response, OK);
long id = 420;
String token = "token";
when(fileSystemRestServiceMock.deleteFileSystemItemWithIdAndAccessToken(id, token)).thenReturn(expectedModel);
- EntityModel actualModel = fileSystemRestController.deleteFileOrFolder(id, token);
+ ResponseEntity actualModel = fileSystemRestController.deleteFileOrFolder(id, token);
assertEquals(expectedModel, actualModel);
}
}
\ No newline at end of file
diff --git a/src/test/java/de/filefighter/rest/domain/health/business/SystemHealthModelAssemblerUnitTest.java b/src/test/java/de/filefighter/rest/domain/health/business/SystemHealthModelAssemblerUnitTest.java
deleted file mode 100644
index ce506e22..00000000
--- a/src/test/java/de/filefighter/rest/domain/health/business/SystemHealthModelAssemblerUnitTest.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package de.filefighter.rest.domain.health.business;
-
-import de.filefighter.rest.domain.health.data.SystemHealth;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.springframework.hateoas.EntityModel;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
-class SystemHealthModelAssemblerUnitTest {
-
- private SystemHealthModelAssembler systemHealthModelAssembler;
-
- @BeforeEach
- void setUp(){
- systemHealthModelAssembler = new SystemHealthModelAssembler();
- }
-
- @Test
- void toModel() {
- SystemHealth systemHealth = SystemHealth.builder().uptimeInSeconds(420).create();
- EntityModel systemHealthEntityModel = systemHealthModelAssembler.toModel(systemHealth);
-
- assertEquals(systemHealth, systemHealthEntityModel.getContent());
- assertTrue(systemHealthEntityModel.getLink("self").isPresent());
- assertTrue(systemHealthEntityModel.getLink("thislinkdoesnotexist").isEmpty());
- }
-}
\ No newline at end of file
diff --git a/src/test/java/de/filefighter/rest/domain/health/rest/SystemHealthRestControllerUnitTest.java b/src/test/java/de/filefighter/rest/domain/health/rest/SystemHealthRestControllerUnitTest.java
index 1a44aa7b..187a9086 100644
--- a/src/test/java/de/filefighter/rest/domain/health/rest/SystemHealthRestControllerUnitTest.java
+++ b/src/test/java/de/filefighter/rest/domain/health/rest/SystemHealthRestControllerUnitTest.java
@@ -13,11 +13,10 @@ class SystemHealthRestControllerUnitTest {
private final SystemHealthRestService systemHealthRestServiceMock = mock(SystemHealthRestService.class);
private MockMvc mockMvc;
- private SystemHealthRestController systemHealthRestController;
@BeforeEach
public void setUp() {
- systemHealthRestController = new SystemHealthRestController(systemHealthRestServiceMock);
+ SystemHealthRestController systemHealthRestController = new SystemHealthRestController(systemHealthRestServiceMock);
mockMvc = MockMvcBuilders.standaloneSetup(systemHealthRestController).build();
}
diff --git a/src/test/java/de/filefighter/rest/domain/health/rest/SystemHealthRestIntegrationTest.java b/src/test/java/de/filefighter/rest/domain/health/rest/SystemHealthRestIntegrationTest.java
index ea53aa9e..fd13c08f 100644
--- a/src/test/java/de/filefighter/rest/domain/health/rest/SystemHealthRestIntegrationTest.java
+++ b/src/test/java/de/filefighter/rest/domain/health/rest/SystemHealthRestIntegrationTest.java
@@ -3,14 +3,12 @@
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
-import com.jayway.jsonpath.internal.filter.ValueNode;
import de.filefighter.rest.domain.filesystem.data.persistance.FileSystemRepository;
import de.filefighter.rest.domain.token.data.persistance.AccessTokenRepository;
-import de.filefighter.rest.domain.user.data.persistance.UserEntitiy;
+import de.filefighter.rest.domain.user.data.persistance.UserEntity;
import de.filefighter.rest.domain.user.data.persistance.UserRepository;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -19,7 +17,6 @@
import org.springframework.boot.test.web.client.TestRestTemplate;
import org.springframework.boot.web.server.LocalServerPort;
-import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
@@ -55,8 +52,14 @@ public void cleanDbs() {
@Test
public void healthCheckShouldContainVariablesAndCorrectValues() throws JsonProcessingException {
- LOG.info("Preloading default admin user: " + userRepository.save(new UserEntitiy(0L, "admin", "admin", "refreshToken1234", 0, 1)));
-
+ LOG.info("Preloading default admin user: " + userRepository.save(UserEntity
+ .builder()
+ .userId(0L)
+ .username("admin")
+ .password("admin")
+ .refreshToken("refreshToken1234")
+ .roleIds(new long[]{0, 1})
+ .build()));
String jsonString = this.restTemplate.getForObject("http://localhost:" + port + "/health", String.class);
// Note when a key does not exist, a NullPointerException will be thrown.
diff --git a/src/test/java/de/filefighter/rest/domain/health/rest/SystemHealthRestServiceUnitTest.java b/src/test/java/de/filefighter/rest/domain/health/rest/SystemHealthRestServiceUnitTest.java
index 708ce6c3..ca18b206 100644
--- a/src/test/java/de/filefighter/rest/domain/health/rest/SystemHealthRestServiceUnitTest.java
+++ b/src/test/java/de/filefighter/rest/domain/health/rest/SystemHealthRestServiceUnitTest.java
@@ -1,11 +1,11 @@
package de.filefighter.rest.domain.health.rest;
import de.filefighter.rest.domain.health.business.SystemHealthBusinessService;
-import de.filefighter.rest.domain.health.business.SystemHealthModelAssembler;
import de.filefighter.rest.domain.health.data.SystemHealth;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import org.springframework.hateoas.EntityModel;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.Mockito.mock;
@@ -14,23 +14,21 @@
class SystemHealthRestServiceUnitTest {
private final SystemHealthBusinessService systemHealthBusinessServiceMock = mock(SystemHealthBusinessService.class);
- private final SystemHealthModelAssembler systemHealthModelAssemblerMock = mock(SystemHealthModelAssembler.class);
private SystemHealthRestService systemHealthRestService;
@BeforeEach
public void setUp() {
- systemHealthRestService = new SystemHealthRestService(systemHealthBusinessServiceMock, systemHealthModelAssemblerMock);
+ systemHealthRestService = new SystemHealthRestService(systemHealthBusinessServiceMock);
}
@Test
void getSystemHealth() {
SystemHealth dummyHealth = SystemHealth.builder().uptimeInSeconds(420).create();
- EntityModel actualModel = EntityModel.of(dummyHealth);
+ ResponseEntity expectedModel = new ResponseEntity<>(dummyHealth, HttpStatus.OK);
when(systemHealthBusinessServiceMock.getCurrentSystemHealthInfo()).thenReturn(dummyHealth);
- when(systemHealthModelAssemblerMock.toModel(dummyHealth)).thenReturn(actualModel);
- EntityModel expectedModel = systemHealthRestService.getSystemHealth();
+ ResponseEntity actualModel = systemHealthRestService.getSystemHealth();
assertEquals(expectedModel, actualModel);
}
diff --git a/src/test/java/de/filefighter/rest/domain/permission/rest/PermissionRestControllerUnitTest.java b/src/test/java/de/filefighter/rest/domain/permission/rest/PermissionRestControllerUnitTest.java
index b57ab242..d35d0fea 100644
--- a/src/test/java/de/filefighter/rest/domain/permission/rest/PermissionRestControllerUnitTest.java
+++ b/src/test/java/de/filefighter/rest/domain/permission/rest/PermissionRestControllerUnitTest.java
@@ -6,7 +6,7 @@
import de.filefighter.rest.rest.ServerResponse;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import org.springframework.hateoas.EntityModel;
+import org.springframework.http.ResponseEntity;
import java.security.Permission;
@@ -14,6 +14,7 @@
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
+import static org.springframework.http.HttpStatus.OK;
class PermissionRestControllerUnitTest {
@@ -30,11 +31,11 @@ void getPermissionSetForFileOrFolder() {
String token = "token";
long id = 420;
User dummyUser = User.builder().create();
- EntityModel expected = EntityModel.of(new PermissionSet(null, null, new User[]{dummyUser}, null));
+ ResponseEntity expected = new ResponseEntity<>(new PermissionSet(null, null, new User[]{dummyUser}, null), OK);
when(permissionRestService.getPermissionSetByIdAndToken(id, token)).thenReturn(expected);
- EntityModel actual = permissionRestController.getPermissionSetForFileOrFolder(420, token);
+ ResponseEntity actual = permissionRestController.getPermissionSetForFileOrFolder(420, token);
assertEquals(expected, actual);
}
@@ -46,12 +47,12 @@ void addUsersOrGroupsToPermissionSetForFileOrFolder() {
ServerResponse dummyResponse = new ServerResponse("ok", "baum");
PermissionRequest dummyRequest = new PermissionRequest();
- EntityModel expected = EntityModel.of(dummyResponse);
+ ResponseEntity expected = new ResponseEntity<>(dummyResponse, OK);
when(permissionRestService.addUsersOrGroupsToPermissionSetForFileOrFolderWithAccessToken(dummyRequest, id, token)).thenReturn(expected);
- EntityModel actual = permissionRestController.addUsersOrGroupsToPermissionSetForFileOrFolder(420, dummyRequest, token);
+ ResponseEntity actual = permissionRestController.addUsersOrGroupsToPermissionSetForFileOrFolder(420, dummyRequest, token);
assertEquals(expected, actual);
}
@@ -63,12 +64,12 @@ void removeUsersOrGroupsFromPermissionSetForFileOrFolder() {
ServerResponse dummyResponse = new ServerResponse("ok", "baum");
PermissionRequest dummyRequest = new PermissionRequest();
- EntityModel expected = EntityModel.of(dummyResponse);
+ ResponseEntity expected = new ResponseEntity<>(dummyResponse, OK);
when(permissionRestService.removeUsersOrGroupsFromPermissionSetForFileOrFolderWithAccessToken(dummyRequest, id, token)).thenReturn(expected);
- EntityModel actual = permissionRestController.removeUsersOrGroupsFromPermissionSetForFileOrFolder(420, dummyRequest, token);
+ ResponseEntity actual = permissionRestController.removeUsersOrGroupsFromPermissionSetForFileOrFolder(420, dummyRequest, token);
assertEquals(expected, actual);
}
diff --git a/src/test/java/de/filefighter/rest/domain/user/rest/UserRestControllerUnitTest.java b/src/test/java/de/filefighter/rest/domain/user/rest/UserRestControllerUnitTest.java
index 5a195f62..6d146269 100644
--- a/src/test/java/de/filefighter/rest/domain/user/rest/UserRestControllerUnitTest.java
+++ b/src/test/java/de/filefighter/rest/domain/user/rest/UserRestControllerUnitTest.java
@@ -6,12 +6,13 @@
import de.filefighter.rest.domain.user.data.dto.UserRegisterForm;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import org.springframework.hateoas.EntityModel;
+import org.springframework.http.ResponseEntity;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
+import static org.springframework.http.HttpStatus.*;
class UserRestControllerUnitTest {
@@ -26,11 +27,11 @@ void setUp() {
@Test
void registerNewUser() {
User user = User.builder().id(420).roles(null).username("kevin").create();
- EntityModel expectedUser = EntityModel.of(user);
+ ResponseEntity expectedUser = new ResponseEntity<>(user, OK);
when(userRestServiceMock.registerNewUserWithAccessToken(any(), any())).thenReturn(expectedUser);
- EntityModel actualUser = userRestController.registerNewUser("", null);
+ ResponseEntity actualUser = userRestController.registerNewUser("", null);
assertEquals(expectedUser, actualUser);
}
@@ -39,11 +40,11 @@ void registerNewUser() {
void loginUserWithUsernameAndPassword() {
User user = User.builder().id(420).roles(null).username("kevin").create();
RefreshToken refreshToken = RefreshToken.builder().refreshToken("token").user(user).build();
- EntityModel expectedRefreshToken = EntityModel.of(refreshToken);
+ ResponseEntity expectedRefreshToken = new ResponseEntity<>(refreshToken, OK);
when(userRestServiceMock.getRefreshTokenWithUsernameAndPassword(any())).thenReturn(expectedRefreshToken);
- EntityModel actualRefreshToken = userRestController.loginUserWithUsernameAndPassword("");
+ ResponseEntity actualRefreshToken = userRestController.loginUserWithUsernameAndPassword("");
assertEquals(expectedRefreshToken, actualRefreshToken);
}
@@ -51,21 +52,21 @@ void loginUserWithUsernameAndPassword() {
@Test
void getAccessTokenAndUserInfoByRefreshTokenAndUserId() {
AccessToken accessToken = AccessToken.builder().build();
- EntityModel accessTokenEntityModel = EntityModel.of(accessToken);
+ ResponseEntity accessTokenEntityModel = new ResponseEntity<>(accessToken, OK);
when(userRestServiceMock.getAccessTokenByRefreshTokenAndUserId("token", 420)).thenReturn(accessTokenEntityModel);
- EntityModel actualAccessTokenEntity = userRestController.getAccessTokenAndUserInfoByRefreshTokenAndUserId(420, "token");
+ ResponseEntity actualAccessTokenEntity = userRestController.getAccessTokenAndUserInfoByRefreshTokenAndUserId(420, "token");
assertEquals(accessTokenEntityModel, actualAccessTokenEntity);
}
@Test
void getUserInfoWithAccessToken() {
User user = User.builder().id(420).roles(null).username("kevin").create();
- EntityModel expectedUser = EntityModel.of(user);
+ ResponseEntity expectedUser = new ResponseEntity<>(user, OK);
when(userRestServiceMock.getUserByAccessTokenAndUserId("token", 420)).thenReturn(expectedUser);
- EntityModel actualUser = userRestController.getUserInfoWithAccessToken(420,"token");
+ ResponseEntity actualUser = userRestController.getUserInfoWithAccessToken(420,"token");
assertEquals(expectedUser, actualUser);
}
@@ -73,11 +74,11 @@ void getUserInfoWithAccessToken() {
@Test
void updateUserWithAccessToken() {
User user = User.builder().id(420).roles(null).username("kevin").create();
- EntityModel expectedUser = EntityModel.of(user);
+ ResponseEntity expectedUser = new ResponseEntity<>(user, OK);
UserRegisterForm userRegisterForm = UserRegisterForm.builder().create();
when(userRestServiceMock.updateUserByAccessTokenAndUserId(userRegisterForm, "token", 420)).thenReturn(expectedUser);
- EntityModel actualUser = userRestController.updateUserWithAccessToken(420,"token", userRegisterForm);
+ ResponseEntity actualUser = userRestController.updateUserWithAccessToken(420,"token", userRegisterForm);
assertEquals(expectedUser, actualUser);
}
@@ -85,13 +86,13 @@ void updateUserWithAccessToken() {
@Test
void findUserByUsername(){
User user = User.builder().id(420).roles(null).username("kevin").create();
- EntityModel expectedUser = EntityModel.of(user);
+ ResponseEntity expectedUser = new ResponseEntity<>(user, OK);
String username="kevin";
String accessToken="token";
when(userRestServiceMock.findUserByUsernameAndAccessToken(username, accessToken)).thenReturn(expectedUser);
- EntityModel actualUser = userRestController.findUserByUsername(accessToken, username);
+ ResponseEntity actualUser = userRestController.findUserByUsername(accessToken, username);
assertEquals(expectedUser, actualUser);
}
}
\ No newline at end of file
diff --git a/src/test/cucumber/de/filefighter/rest/UserAuthorization.feature b/src/test/resources/UserAuthorization.feature
similarity index 100%
rename from src/test/cucumber/de/filefighter/rest/UserAuthorization.feature
rename to src/test/resources/UserAuthorization.feature
diff --git a/src/test/cucumber/de/filefighter/rest/ViewFolderContents.feature b/src/test/resources/ViewFolderContents.feature
similarity index 100%
rename from src/test/cucumber/de/filefighter/rest/ViewFolderContents.feature
rename to src/test/resources/ViewFolderContents.feature
diff --git a/src/test/cucumber/de/filefighter/rest/crudPermissions.feature b/src/test/resources/crudPermissions.feature
similarity index 98%
rename from src/test/cucumber/de/filefighter/rest/crudPermissions.feature
rename to src/test/resources/crudPermissions.feature
index 22ca4f1a..0f15e240 100644
--- a/src/test/cucumber/de/filefighter/rest/crudPermissions.feature
+++ b/src/test/resources/crudPermissions.feature
@@ -84,7 +84,6 @@ Scenario: User does not exist
Scenario: File does not exist
- And user 1234 is owner of file or folder with id 111
When user with token "900000" wants to give "edit" permission for "file" with id 111 to user 9877
Then response status code is 404
And response contains key "message" and value "No File with id 111 found."