Skip to content
Snippets Groups Projects
Commit 21843940 authored by Thomas's avatar Thomas
Browse files

Added user & model manager test

parent a6ef8bd6
No related branches found
No related tags found
No related merge requests found
......@@ -10,7 +10,7 @@ import mozen.messages.SearchResult;
import mozen.model.User;
public interface IModelManager {
Long addModel(ModelMessage message, User user) throws Exception;
Model addModel(ModelMessage message, User user) throws Exception;
void addModelFile(MultipartFile file, long id, User user) throws Exception;
void updateModel(ModelMessage message, long id, User user) throws Exception;
void removeModel(long id, User user) throws Exception;
......
......@@ -6,7 +6,7 @@ import mozen.messages.SignupMessage;
import mozen.model.User;
public interface IUserManager {
Long addUser(SignupMessage message);
User addUser(SignupMessage message);
void updateUser(User user, User userToUpdate);
void removeUser(User user, Long id);
......
......@@ -3,6 +3,7 @@ package mozen.business;
import java.util.Collection;
import java.util.Date;
import java.util.HashSet;
import java.util.Optional;
import java.util.Set;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -33,7 +34,7 @@ public class ModelManager implements IModelManager {
private TagRepository tagRepo;
@Override
public Long addModel(ModelMessage message, User user) throws Exception {
public Model addModel(ModelMessage message, User user) throws Exception {
Model model = new Model();
System.err.println("[MODEL MANAGER] add model n:" + message.getName() + " sd:" + message.getShortDescription()
......@@ -63,28 +64,23 @@ public class ModelManager implements IModelManager {
modelRepo.save(model);
return model.getId();
return model;
}
@Override
public void addModelFile(MultipartFile file, long id, User user) throws Exception {
System.err.println("[MODEL MANAGER] add model file 0");
Model model = modelRepo.findById(id).get();
System.err.println("[MODEL MANAGER] add model file 1");
if (model == null)
throw new Exception("Unknown model");
if (!UserHelper.isAuthor(model.getAuthor(), user))
throw new Exception("Not the author");
System.err.println("[MODEL MANAGER] add model file 2");
model.setChecksum(Md5Utils.getMD5(file));
model.setFile(file.getBytes());
model.setFileType(file.getContentType());
System.err.println("[MODEL MANAGER] add model file 3");
modelRepo.save(model);
System.err.println("[MODEL MANAGER] add model file 4");
}
@Override
......@@ -145,12 +141,9 @@ public class ModelManager implements IModelManager {
@Override
public SearchResult findModel(String name, int page, int size, String sort) {
System.err.println("[MODEL MANAGER] search n:" + name + " p:" + page + " si:" + size + " so:" + sort);
Pageable paging = PageRequest.of(page - 1, size, Sort.by(sort));
Page<Model> resultPage = modelRepo.findByNameContainingIgnoreCase(name, paging);
System.err.println("[MODEL MANAGER] search result " + resultPage.getTotalElements());
SearchResult result = new SearchResult();
if (resultPage.hasContent()) {
result.setTotalResult((int) resultPage.getTotalElements());
......@@ -167,14 +160,10 @@ public class ModelManager implements IModelManager {
@Override
public SearchResult findModelWithTags(String name, int page, int size, String sort, Collection<String> tagsName) {
System.err.println(
"[MODEL MANAGER] search with tags n:" + name + " p:" + page + " si:" + size + " so:" + sort + " t:" + tagsName);
Pageable paging = PageRequest.of(page - 1, size, Sort.by(sort));
Collection<Tag> tags = tagRepo.findByNameIn(tagsName);
Page<Model> resultPage = modelRepo.findDistinctByNameContainingIgnoreCaseAndTagsIn(name, tags, paging);
System.err.println("[MODEL MANAGER] search result " + resultPage.getTotalElements());
SearchResult result = new SearchResult();
if (resultPage.hasContent()) {
result.setTotalResult((int) resultPage.getTotalElements());
......@@ -191,7 +180,9 @@ public class ModelManager implements IModelManager {
@Override
public Model getModel(long id) {
return modelRepo.findById(id).get();
Optional<Model> model = modelRepo.findById(id);
if (model.isPresent()) return model.get();
else return null;
}
@Override
......
package mozen.business;
import java.util.Collection;
import java.util.Optional;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
......@@ -21,7 +22,7 @@ public class UserManager implements IUserManager {
BCryptPasswordEncoder bCryptPasswordEncoder;
@Override
public Long addUser(SignupMessage message) {
public User addUser(SignupMessage message) {
System.err.println("[USER MANAGER] add new user u:" + message.getUsername() + " e:" + message.getEmail() + " p:"
+ message.getPassword());
User u = new User();
......@@ -31,7 +32,7 @@ public class UserManager implements IUserManager {
u.setRole(Role.ROLE_DEFAULT);
repo.save(u);
return u.getId();
return u;
}
@Override
......@@ -47,7 +48,9 @@ public class UserManager implements IUserManager {
@Override
public User getUser(Long id) {
return repo.findById(id).get();
Optional<User> user = repo.findById(id);
if(user.isPresent()) return user.get();
else return null;
}
@Override
......
......@@ -61,7 +61,7 @@ public class ModelController {
}
try {
long modelId = modelManager.addModel(message, user);
long modelId = modelManager.addModel(message, user).getId();
response.setMessage(Long.toString(modelId));
} catch (Exception e) {
response.setError(true);
......
package mozen.business;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.transaction.annotation.Transactional;
import mozen.messages.ModelMessage;
import mozen.model.Model;
import mozen.model.User;
@SpringBootTest
public class ModelManagerTest {
@Autowired
ModelManager modelManager;
@Test
@Transactional
void addModelTest () {
ModelMessage message = new ModelMessage();
message.setName("testmodel");
message.setShortDescription("this is short desc for testmodel");
message.setLongDescription("this is long desc for testmodel");
message.setPerformance(98.9);
message.setPerformanceUnit("test unit");
message.setParameterCount(84654);
User user = new User();
user.setUsername("test");
user.setEmail("test@test.com");
user.setUsername("1234");
try {
Model model = modelManager.addModel(message, user);
assertEquals(message.getName(), model.getName());
assertEquals(message.getShortDescription(), model.getShortDescription());
assertEquals(message.getLongDescription(), model.getLongDescription());
assertEquals(message.getParameterCount(), model.getParameterCount());
assertEquals(message.getPerformanceUnit(), model.getPerformanceUnit());
assertEquals(message.getPerformance(), model.getPerformance());
assertEquals(user.getUsername(), model.getAuthor().getUsername());
// check tags missing
} catch (Exception e) {
assertTrue(false);
}
}
@Test
@Transactional
void getModelTest () {
ModelMessage message = new ModelMessage();
message.setName("testmodel");
message.setShortDescription("this is short desc for testmodel");
message.setLongDescription("this is long desc for testmodel");
message.setPerformance(98.9);
message.setPerformanceUnit("test unit");
message.setParameterCount(84654);
User user = new User();
user.setUsername("test");
user.setEmail("test@test.com");
user.setUsername("1234");
Model model;
try { model = modelManager.addModel(message, user);} catch (Exception e) {assertTrue(false); return;}
Model modelFind = modelManager.getModel(model.getId());
assertEquals(model, modelFind);
}
@Test
void getModelNotPresentTest () {
Model modelFind = modelManager.getModel(368436);
assertNull(modelFind);
}
@Test
@Transactional
void removeModelTest () {
ModelMessage message = new ModelMessage();
message.setName("testmodel");
message.setShortDescription("this is short desc for testmodel");
message.setLongDescription("this is long desc for testmodel");
message.setPerformance(98.9);
message.setPerformanceUnit("test unit");
message.setParameterCount(84654);
User user = new User();
user.setUsername("test");
user.setEmail("test@test.com");
user.setUsername("1234");
Model model;
try { model = modelManager.addModel(message, user);} catch (Exception e) {assertTrue(false); return;}
try {
modelManager.removeModel(model.getId(), user);
} catch (Exception e) {
assertTrue(false);
}
try {
Model modelFind = modelManager.getModel(model.getId());
assertNull(modelFind);
} catch (Exception e) {
assertTrue(false);
}
}
}
\ No newline at end of file
package mozen.business;
import org.junit.jupiter.api.extension.ExtendWith;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotEquals;
import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit.jupiter.SpringExtension;
import org.springframework.transaction.annotation.Transactional;
import mozen.messages.SignupMessage;
import mozen.model.User;
@ExtendWith(SpringExtension.class)
@SpringBootTest
public class UserManagerTest {
@Autowired
UserManager userManager;
@Test
@Transactional
void addUserTest () {
SignupMessage message = new SignupMessage();
message.setEmail("test@test.com");
message.setUsername("testuser");
message.setPassword("1234");
User user = userManager.addUser(message);
assertEquals(message.getEmail(), user.getEmail());
assertEquals(message.getUsername(), user.getUsername());
assertNotEquals(message.getPassword(), user.getPassword());
}
@Test
@Transactional
void getUserTest () {
User user = userManager.addUser(new SignupMessage("testuser", "1234", "test@test.com"));
User userFind = userManager.getUser(user.getId());
assertEquals(user, userFind);
}
@Test
@Transactional
void getUserByUsernameTest () {
User user = userManager.addUser(new SignupMessage("testuser", "1234", "test@test.com"));
User userFind = userManager.getUserByUsername(user.getUsername());
assertEquals(user, userFind);
}
@Test
void updateUserTest () {
assertTrue(true);
}
@Test
@Transactional
void removeUserTest () {
User user = userManager.addUser(new SignupMessage("testuser", "1234", "test@test.com"));
Long id = user.getId();
userManager.removeUser(user, id);
User userFind = userManager.getUser(id);
assertNull(userFind);
}
@Test
@Transactional
void removeUserWrongTest () {
User user = userManager.addUser(new SignupMessage("testuser", "1234", "test@test.com"));
User user2 = userManager.addUser(new SignupMessage("testuser2", "1234", "test2@test.com"));
Long id = user.getId();
userManager.removeUser(user2, id);
User userFind = userManager.getUser(id);
assertEquals(user, userFind);
}
}
\ No newline at end of file
package mozen.repos;
import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit.jupiter.SpringExtension;
@ExtendWith(SpringExtension.class)
@SpringBootTest
public class UserRepositoryTest {
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment