This is the codeAbility Sharing Platform! Learn more about the codeAbility Sharing Platform.

Skip to content
Snippets Groups Projects
Commit eb03c084 authored by Michael Breu's avatar Michael Breu :speech_balloon:
Browse files

Fixing Tests

parent 66c75eb7
Branches
2 merge requests!188Merging Peer Reviewing et. al to Master,!164211 peer reviewing functionality
......@@ -222,13 +222,18 @@ public class UserWatchListService {
return result;
}
// falscher Weg
// public Map<SearchResultDTO, UserWatchList> findChangesSince(CheckFrequency checkFrequency, at.ac.uibk.gitsearch.domain.User user) {
// Map<SearchResultDTO, UserWatchList> changesSince = findChangesSince(checkFrequency.getChangedBefore(), user);
// return changesSince.entrySet().stream().
// filter(entry -> entry.getValue().getCheckFrequency().ordinal() <= checkFrequency.ordinal())
// .collect(Collectors.toMap(x -> x.getKey(), x -> x.getValue()));
//
// }
/**
* not really useful.
* @param checkFrequency
* @param user
* @return
*/
public Map<SearchResultDTO, UserWatchList> findChangesSince(CheckFrequency checkFrequency, at.ac.uibk.gitsearch.domain.User user) {
Map<SearchResultDTO, UserWatchList> changesSince = findChangesSince(checkFrequency.getChangedBefore(), user);
return changesSince.entrySet().stream().
filter(entry -> entry.getValue().getCheckFrequency().ordinal() <= checkFrequency.ordinal())
.collect(Collectors.toMap(x -> x.getKey(), x -> x.getValue()));
}
}
......@@ -17,6 +17,7 @@ import javax.mail.internet.MimeMessage;
import org.codeability.sharing.plugins.api.search.SearchResultDTO;
import org.elasticsearch.node.NodeValidationException;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
......@@ -33,6 +34,9 @@ import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.transaction.annotation.Transactional;
import org.thymeleaf.spring5.SpringTemplateEngine;
import com.fasterxml.jackson.core.JsonGenerationException;
import com.fasterxml.jackson.databind.JsonMappingException;
import at.ac.uibk.gitsearch.GitsearchApp;
import at.ac.uibk.gitsearch.domain.User;
import at.ac.uibk.gitsearch.domain.UserWatchList;
......@@ -52,131 +56,139 @@ import io.github.jhipster.config.JHipsterProperties;
@Transactional
public class InfoMailServiceIT {
private static final String DEFAULT_LOGIN = "TestUser1";
private static final String DEFAULT_LOGIN = "TestUser1";
private static final String DEFAULT_EMAIL = "TestUser1@localhost";
private static final String DEFAULT_EMAIL = "TestUser1@localhost";
private static final String DEFAULT_FIRSTNAME = "Test";
private static final String DEFAULT_FIRSTNAME = "Test";
private static final String DEFAULT_LASTNAME = "User1";
private static final String DEFAULT_LASTNAME = "User1";
private static final String DEFAULT_IMAGEURL = "http://placehold.it/50x50";
private static final String DEFAULT_IMAGEURL = "http://placehold.it/50x50";
private static final String DEFAULT_LANGKEY = "en";
private static final String TEST_EXERCISE_ID = "3";
private static final String DEFAULT_LANGKEY = "en";
private static final String TEST_EXERCISE_ID = "3";
@Autowired
private JHipsterProperties jHipsterProperties;
@Autowired
private JHipsterProperties jHipsterProperties;
@Autowired
private MessageSource messageSource;
@Autowired
private MessageSource messageSource;
@Autowired
private SpringTemplateEngine templateEngine;
@Autowired
private SpringTemplateEngine templateEngine;
@Autowired
private UserRepository userRepository;
@Autowired
private UserService userService;
@Autowired
private UserRepository userRepository;
@Autowired
private UserService userService;
@Autowired
private UserWatchListService userWatchListService;
@Autowired
private UserWatchListRepository userWatchListRepository;
@Autowired
private MetaDataRepository metaDataRepository;
@Autowired
private UserWatchListService userWatchListService;
@Autowired
private UserWatchListRepository userWatchListRepository;
@Autowired
private MetaDataRepository metaDataRepository;
@Spy
private JavaMailSenderImpl javaMailSender;
@Spy
private JavaMailSenderImpl javaMailSender;
@Captor
private ArgumentCaptor<MimeMessage> messageCaptor;
@Captor
private ArgumentCaptor<MimeMessage> messageCaptor;
private MailService mailService;
@Mock
private DateTimeProvider dateTimeProvider;
private MailService mailService;
@Mock
private DateTimeProvider dateTimeProvider;
private User user;
private User user;
@BeforeAll
public static void setUpESServer() throws IOException, NodeValidationException {
ElasticSearchTestServerConfiguration.getTestInstance().startTestNode();
}
@BeforeEach
public void init() {
UserDTO userDTO = new UserDTO();
userDTO.setLogin(DEFAULT_LOGIN);
userDTO.setActivated(true);
userDTO.setEmail(DEFAULT_EMAIL);
userDTO.setFirstName(DEFAULT_FIRSTNAME);
userDTO.setLastName(DEFAULT_LASTNAME);
userDTO.setImageUrl(DEFAULT_IMAGEURL);
userDTO.setLangKey(DEFAULT_LANGKEY);
userDTO.setAuthorities(new HashSet<>());
userDTO.getAuthorities().add("sharing");
when(dateTimeProvider.getNow()).thenReturn(Optional.of(LocalDateTime.now()));
userDTO.setActivated(false);
user = userService.createUser(userDTO);
@BeforeEach
public void init() {
UserDTO userDTO = new UserDTO();
userDTO.setLogin(DEFAULT_LOGIN);
userDTO.setActivated(true);
userDTO.setEmail(DEFAULT_EMAIL);
userDTO.setFirstName(DEFAULT_FIRSTNAME);
userDTO.setLastName(DEFAULT_LASTNAME);
userDTO.setImageUrl(DEFAULT_IMAGEURL);
userDTO.setLangKey(DEFAULT_LANGKEY);
userDTO.setAuthorities(new HashSet<>());
userDTO.getAuthorities().add("sharing");
when(dateTimeProvider.getNow()).thenReturn(Optional.of(LocalDateTime.now()));
userDTO.setActivated(false);
user = userService.createUser(userDTO);
UserWatchList wlDAILY = new UserWatchList("someTestWatchList", CheckFrequency.DAILY, user);
WatchListEntry wle1 = new WatchListEntry();
UserWatchList wlDAILY = new UserWatchList("someTestWatchList", CheckFrequency.DAILY, user);
WatchListEntry wle1 = new WatchListEntry();
wle1.setExerciseId(TEST_EXERCISE_ID);
wle1.setExerciseName("Unused in this test");
wlDAILY.getWatchListEntries().add(wle1);
userWatchListRepository.save(wlDAILY);
UserWatchList wlMONTHLY = new UserWatchList("someTestWatchList", CheckFrequency.MONTHLY, user);
WatchListEntry wle2 = new WatchListEntry();
wle2.setExerciseId(TEST_EXERCISE_ID);
wle2.setExerciseName("Unused in this test");
wlMONTHLY.getWatchListEntries().add(wle2);
userWatchListRepository.save(wlMONTHLY);
}
@BeforeEach
public void setup() {
MockitoAnnotations.initMocks(this);
doNothing().when(javaMailSender).send(any(MimeMessage.class));
mailService = new MailService(jHipsterProperties, javaMailSender, messageSource, templateEngine, userRepository, userWatchListService);
}
@Test
@Transactional
public void testSendInfoMail() throws Exception {
// not working
// when(dateTimeProvider.getNow()).thenReturn(Optional.of(LocalDateTime.ofEpochSecond(LAST_CHANGE_DATE_OF_EXERCISE3.getEpochSecond(), 0, ZoneOffset.UTC)));
final SearchResultDTO testExercise = metaDataRepository.getExerciseById(TEST_EXERCISE_ID);
testExercise.getProject().setLast_activity_at(Instant.now());
// this test data contradicts with unique exercise id
ElasticSearchTestServerConfiguration.getTestInstance().updateMetadata(testExercise, 3);
mailService.sendInfoMails();
verify(javaMailSender).send(messageCaptor.capture());
List<MimeMessage> messages = messageCaptor.getAllValues();
assertThat(messages.size()).isEqualTo(1);
MimeMessage message = messages.get(0);
assertThat(message.getAllRecipients()[0].toString()).isEqualTo(user.getEmail());
assertThat(message.getFrom()[0].toString()).isEqualTo(jHipsterProperties.getMail().getFrom());
assertThat(message.getContent().toString()).isNotEmpty();
assertThat(message.getDataHandler().getContentType()).isEqualTo("text/html;charset=UTF-8");
}
}
wle1.setExerciseName("Unused in this test");
wlDAILY.getWatchListEntries().add(wle1);
userWatchListRepository.save(wlDAILY);
UserWatchList wlMONTHLY = new UserWatchList("someTestWatchList", CheckFrequency.MONTHLY, user);
WatchListEntry wle2 = new WatchListEntry();
wle2.setExerciseId(TEST_EXERCISE_ID);
wle2.setExerciseName("Unused in this test");
wlMONTHLY.getWatchListEntries().add(wle2);
userWatchListRepository.save(wlMONTHLY);
}
@BeforeEach
public void setup() {
MockitoAnnotations.initMocks(this);
doNothing().when(javaMailSender).send(any(MimeMessage.class));
mailService = new MailService(jHipsterProperties, javaMailSender, messageSource, templateEngine, userRepository,
userWatchListService);
}
private Instant originalChangeDate = null;
@BeforeEach
public void setUpChangedExercise() throws JsonGenerationException, JsonMappingException, IOException {
final SearchResultDTO testExercise = metaDataRepository.getExerciseById(TEST_EXERCISE_ID);
originalChangeDate = testExercise.getProject().getLast_activity_at();
testExercise.getProject().setLast_activity_at(Instant.now());
ElasticSearchTestServerConfiguration.getTestInstance().updateMetadata(testExercise, 3);
}
@Test
@Transactional
public void testSendInfoMail() throws Exception {
mailService.sendInfoMails();
verify(javaMailSender).send(messageCaptor.capture());
List<MimeMessage> messages = messageCaptor.getAllValues();
assertThat(messages.size()).isEqualTo(1);
MimeMessage message = messages.get(0);
assertThat(message.getAllRecipients()[0].toString()).isEqualTo(user.getEmail());
assertThat(message.getFrom()[0].toString()).isEqualTo(jHipsterProperties.getMail().getFrom());
assertThat(message.getContent().toString()).isNotEmpty();
assertThat(message.getDataHandler().getContentType()).isEqualTo("text/html;charset=UTF-8");
}
@AfterEach
public void resetChangedExercise() throws JsonGenerationException, JsonMappingException, IOException {
final SearchResultDTO testExercise = metaDataRepository.getExerciseById(TEST_EXERCISE_ID);
testExercise.getProject().setLast_activity_at(originalChangeDate);
ElasticSearchTestServerConfiguration.getTestInstance().updateMetadata(testExercise, 3);
}
}
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment