Upgrade to Mockito 4

41/62
This commit is contained in:
Andreas Svanberg 2021-10-13 14:44:36 +02:00
parent bf83fff48f
commit 89d3d93cf8
311 changed files with 906 additions and 1167 deletions
core/src
main/java/se/su/dsv/scipro
crosscutting
file
forum
forummail
integration
mail
match
notifications
oauth
peer
plagiarism
reviewing
security/auth
survey
system
workerthreads
test/java/se/su/dsv/scipro

@ -12,7 +12,7 @@ import java.util.Date;
import java.util.function.Consumer;
@Singleton
class ReviewerAssignedDeadline {
public class ReviewerAssignedDeadline {
private final RoughDraftApprovalService roughDraftApprovalService;
private final FinalSeminarApprovalService finalSeminarApprovalService;
private final ReviewerDeadlineSettingsService reviewerDeadlineSettingsService;

@ -15,7 +15,7 @@ import javax.inject.Singleton;
import java.util.function.Consumer;
@Singleton
class ReviewerAssignedNotifications {
public class ReviewerAssignedNotifications {
private final RoughDraftApprovalService roughDraftApprovalService;
private final FinalSeminarApprovalService finalSeminarApprovalService;
private final NotificationController notificationController;

@ -11,11 +11,11 @@ import javax.inject.Inject;
import javax.inject.Singleton;
@Singleton
class ReviewingNotifications {
public class ReviewingNotifications {
private final NotificationController notificationController;
@Inject
ReviewingNotifications(final EventBus eventBus, final NotificationController notificationController) {
public ReviewingNotifications(final EventBus eventBus, final NotificationController notificationController) {
this.notificationController = notificationController;
eventBus.register(this);
}

@ -14,7 +14,7 @@ public class ProjectFileServiceImpl implements ProjectFileService {
private final ProjectFileRepository projectFileRepository;
@Inject
ProjectFileServiceImpl(
public ProjectFileServiceImpl(
final FileDescriptionService fileDescriptionService,
final ProjectFileRepository projectFileRepository)
{

@ -4,5 +4,5 @@ import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.querydsl.QueryDslPredicateExecutor;
import se.su.dsv.scipro.forum.dataobjects.ForumThread;
interface AbstractThreadRepository extends JpaRepository<ForumThread, Long>, QueryDslPredicateExecutor<ForumThread> {
public interface AbstractThreadRepository extends JpaRepository<ForumThread, Long>, QueryDslPredicateExecutor<ForumThread> {
}

@ -8,10 +8,10 @@ import javax.inject.Inject;
import javax.inject.Provider;
import javax.persistence.EntityManager;
class AbstractThreadRepositoryImpl extends GenericRepo<ForumThread, Long> implements AbstractThreadRepository {
public class AbstractThreadRepositoryImpl extends GenericRepo<ForumThread, Long> implements AbstractThreadRepository {
@Inject
AbstractThreadRepositoryImpl(Provider<EntityManager> em) {
public AbstractThreadRepositoryImpl(Provider<EntityManager> em) {
super(em, ForumThread.class, QForumThread.forumThread);
}
}

@ -13,7 +13,7 @@ import java.util.HashSet;
import java.util.List;
import java.util.Set;
class BasicForumServiceImpl implements BasicForumService {
public class BasicForumServiceImpl implements BasicForumService {
private final AbstractThreadRepository threadRepository;
private final ForumPostRepository postRepository;
@ -21,7 +21,7 @@ class BasicForumServiceImpl implements BasicForumService {
private final EventBus eventBus;
@Inject
BasicForumServiceImpl(
public BasicForumServiceImpl(
final ForumPostRepository postRepository,
final ForumPostReadStateRepository readStateRepository,
AbstractThreadRepository threadRepository,

@ -9,7 +9,7 @@ import se.su.dsv.scipro.forum.dataobjects.ForumPostReadStateId;
import se.su.dsv.scipro.system.User;
@Transactional
interface ForumPostReadStateRepository
public interface ForumPostReadStateRepository
extends JpaRepository<ForumPostReadState, ForumPostReadStateId>, QueryDslPredicateExecutor<ForumPostReadState> {
ForumPostReadState find(User user, ForumPost post);

@ -13,7 +13,7 @@ import javax.persistence.EntityManager;
import static com.querydsl.core.types.dsl.Expressions.allOf;
class ForumPostReadStateRepositoryImpl extends GenericRepo<ForumPostReadState, ForumPostReadStateId> implements ForumPostReadStateRepository {
public class ForumPostReadStateRepositoryImpl extends GenericRepo<ForumPostReadState, ForumPostReadStateId> implements ForumPostReadStateRepository {
@Inject
public ForumPostReadStateRepositoryImpl(Provider<EntityManager> em) {
super(em, ForumPostReadState.class, QForumPostReadState.forumPostReadState);

@ -12,7 +12,7 @@ import se.su.dsv.scipro.util.Pair;
import java.util.List;
@Transactional
interface ForumPostRepository extends JpaRepository<ForumPost, Long>, QueryDslPredicateExecutor<ForumPost> {
public interface ForumPostRepository extends JpaRepository<ForumPost, Long>, QueryDslPredicateExecutor<ForumPost> {
List<ForumPost> findByThread(ForumThread forumThread);

@ -13,9 +13,9 @@ import java.util.stream.Collectors;
import static com.querydsl.core.types.dsl.Expressions.allOf;
class ForumPostRepositoryImpl extends GenericRepo<ForumPost, Long> implements ForumPostRepository {
public class ForumPostRepositoryImpl extends GenericRepo<ForumPost, Long> implements ForumPostRepository {
@Inject
ForumPostRepositoryImpl(Provider<EntityManager> em) {
public ForumPostRepositoryImpl(Provider<EntityManager> em) {
super(em, ForumPost.class, QForumPost.forumPost);
}

@ -16,14 +16,14 @@ import java.util.HashSet;
import java.util.List;
import java.util.Set;
class GroupForumServiceImpl implements GroupForumService {
public class GroupForumServiceImpl implements GroupForumService {
private final GroupThreadRepository groupThreadRepository;
private final FileDescriptionService fileDescriptionService;
private final BasicForumService basicForumService;
private final EventBus eventBus;
@Inject
GroupForumServiceImpl(
public GroupForumServiceImpl(
final GroupThreadRepository groupThreadRepository,
final FileDescriptionService fileDescriptionService,
final BasicForumService basicForumService,

@ -10,10 +10,10 @@ import javax.inject.Provider;
import javax.persistence.EntityManager;
import java.util.List;
class GroupThreadRepositoryImpl extends GenericRepo<GroupThread, Long> implements GroupThreadRepository {
public class GroupThreadRepositoryImpl extends GenericRepo<GroupThread, Long> implements GroupThreadRepository {
@Inject
GroupThreadRepositoryImpl(Provider<EntityManager> em) {
public GroupThreadRepositoryImpl(Provider<EntityManager> em) {
super(em, GroupThread.class, QGroupThread.groupThread);
}

@ -17,7 +17,7 @@ import java.util.List;
import java.util.Set;
import java.util.function.Function;
class ProjectForumServiceImpl implements ProjectForumService {
public class ProjectForumServiceImpl implements ProjectForumService {
private final ProjectThreadRepository projectThreadRepository;
private final ForumPostRepository postRepository;
private final ProjectFileService fileDescriptionService;
@ -25,7 +25,7 @@ class ProjectForumServiceImpl implements ProjectForumService {
private final EventBus eventBus;
@Inject
ProjectForumServiceImpl(
public ProjectForumServiceImpl(
final ProjectThreadRepository projectThreadRepository,
final ForumPostRepository postRepository,
final ProjectFileService fileDescriptionService,

@ -10,9 +10,9 @@ import javax.inject.Provider;
import javax.persistence.EntityManager;
import java.util.List;
class ProjectThreadRepositoryImpl extends GenericRepo<ProjectThread, Long> implements ProjectThreadRepository {
public class ProjectThreadRepositoryImpl extends GenericRepo<ProjectThread, Long> implements ProjectThreadRepository {
@Inject
ProjectThreadRepositoryImpl(Provider<EntityManager> em) {
public ProjectThreadRepositoryImpl(Provider<EntityManager> em) {
super(em, ProjectThread.class, QProjectThread.projectThread);
}

@ -3,7 +3,7 @@ package se.su.dsv.scipro.forum.notifications;
import scala.Option;
import se.su.dsv.scipro.forum.dataobjects.ForumPost;
interface ForumNotificationRepository {
public interface ForumNotificationRepository {
Option<ForumNotification> findByForumPost(ForumPost forumPost);
void save(ForumNotification forumNotification);

@ -8,11 +8,11 @@ import javax.inject.Inject;
import javax.inject.Provider;
import javax.persistence.EntityManager;
class ForumNotificationRepositoryImpl implements ForumNotificationRepository {
public class ForumNotificationRepositoryImpl implements ForumNotificationRepository {
private final Provider<EntityManager> entityManagerProvider;
@Inject
ForumNotificationRepositoryImpl(final Provider<EntityManager> entityManagerProvider) {
public ForumNotificationRepositoryImpl(final Provider<EntityManager> entityManagerProvider) {
this.entityManagerProvider = entityManagerProvider;
}

@ -2,7 +2,7 @@ package se.su.dsv.scipro.forummail;
import org.springframework.data.jpa.repository.JpaRepository;
interface ForumMailRepository extends JpaRepository<ForumMail, Long> {
public interface ForumMailRepository extends JpaRepository<ForumMail, Long> {
ForumMail findByMessageID(String messageID);
}

@ -6,9 +6,9 @@ import javax.inject.Inject;
import javax.inject.Provider;
import javax.persistence.EntityManager;
class ForumMailRepositoryImpl extends GenericRepo<ForumMail, Long> implements ForumMailRepository {
public class ForumMailRepositoryImpl extends GenericRepo<ForumMail, Long> implements ForumMailRepository {
@Inject
ForumMailRepositoryImpl(final Provider<EntityManager> em) {
public ForumMailRepositoryImpl(final Provider<EntityManager> em) {
super(em, ForumMail.class, QForumMail.forumMail);
}

@ -2,12 +2,12 @@ package se.su.dsv.scipro.forummail;
import javax.inject.Inject;
class ForumMailServiceImpl implements ForumMailService {
public class ForumMailServiceImpl implements ForumMailService {
private ForumMailRepository forumMailRepository;
@Inject
ForumMailServiceImpl(ForumMailRepository forumMailRepository) {
public ForumMailServiceImpl(ForumMailRepository forumMailRepository) {
this.forumMailRepository = forumMailRepository;
}

@ -9,12 +9,12 @@ import javax.inject.Singleton;
import java.util.concurrent.TimeUnit;
@Singleton
class ForumMailWorkerSchedule implements Lifecycle {
public class ForumMailWorkerSchedule implements Lifecycle {
private final Scheduler scheduler;
private final Provider<ForumMailWorker> forumMailWorker;
@Inject
ForumMailWorkerSchedule(final Scheduler scheduler, final Provider<ForumMailWorker> forumMailWorker) {
public ForumMailWorkerSchedule(final Scheduler scheduler, final Provider<ForumMailWorker> forumMailWorker) {
this.scheduler = scheduler;
this.forumMailWorker = forumMailWorker;
}

@ -16,7 +16,7 @@ import java.util.HashSet;
import java.util.Set;
import java.util.function.Function;
class ReadForumMail implements MailHandler {
public class ReadForumMail implements MailHandler {
private static final Logger LOGGER = LoggerFactory.getLogger(ReadForumMail.class);
private final GroupForumService groupForumService;
@ -25,7 +25,7 @@ class ReadForumMail implements MailHandler {
private final FileDescriptionService fileDescriptionService;
@Inject
ReadForumMail(final GroupForumService groupForumService, final ProjectForumService projectForumService, final ForumMailService forumMailService, final FileDescriptionService fileDescriptionService) {
public ReadForumMail(final GroupForumService groupForumService, final ProjectForumService projectForumService, final ForumMailService forumMailService, final FileDescriptionService fileDescriptionService) {
this.groupForumService = groupForumService;
this.projectForumService = projectForumService;
this.forumMailService = forumMailService;

@ -11,7 +11,7 @@ import javax.persistence.EntityManager;
public class ActivityFinalSeminarRepositoryImpl extends GenericRepo<ActivityFinalSeminar, Long> implements ActivityFinalSeminarRepository {
@Inject
ActivityFinalSeminarRepositoryImpl(Provider<EntityManager> em) {
public ActivityFinalSeminarRepositoryImpl(Provider<EntityManager> em) {
super(em, ActivityFinalSeminar.class, QActivityFinalSeminar.activityFinalSeminar);
}

@ -13,13 +13,13 @@ import javax.inject.Singleton;
import java.util.Date;
@Singleton
class FinalSeminarActivityHandler {
public class FinalSeminarActivityHandler {
private final ActivityPlanFacade activityPlanFacade;
private final ActivityFinalSeminarRepository activityFinalSeminarRepository;
@Inject
FinalSeminarActivityHandler(final ActivityPlanFacade activityPlanFacade,
public FinalSeminarActivityHandler(final ActivityPlanFacade activityPlanFacade,
final ActivityFinalSeminarRepository activityFinalSeminarRepository,
final EventBus eventBus) {
this.activityPlanFacade = activityPlanFacade;

@ -13,7 +13,7 @@ public class ActivityThreadRepositoryImpl implements ActivityThreadRepository {
private final Provider<EntityManager> entityManagerProvider;
@Inject
ActivityThreadRepositoryImpl(final Provider<EntityManager> entityManagerProvider) {
public ActivityThreadRepositoryImpl(final Provider<EntityManager> entityManagerProvider) {
this.entityManagerProvider = entityManagerProvider;
}

@ -16,12 +16,12 @@ import java.util.Collections;
import java.util.Set;
@Singleton
class PostActivityUploadToForum {
public class PostActivityUploadToForum {
private final ProjectForumService projectForumService;
private final ActivityThreadRepository activityThreadRepository;
@Inject
PostActivityUploadToForum(final ProjectForumService projectForumService,
public PostActivityUploadToForum(final ProjectForumService projectForumService,
final ActivityThreadRepository activityThreadRepository,
final EventBus eventBus) {
this.projectForumService = projectForumService;

@ -7,10 +7,10 @@ import javax.mail.Session;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
class Mail extends SMTPMailer {
public class Mail extends SMTPMailer {
@Inject
Mail(final Session session, FileDescriptionService fileDescriptionService) {
public Mail(final Session session, FileDescriptionService fileDescriptionService) {
super(session, fileDescriptionService);
}

@ -7,11 +7,11 @@ import javax.mail.Session;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
class RedirectingMailer extends SMTPMailer {
public class RedirectingMailer extends SMTPMailer {
private final String redirectTo;
@Inject
RedirectingMailer(final Session session, final String redirectTo, FileDescriptionService fileDescriptionService) {
public RedirectingMailer(final Session session, final String redirectTo, FileDescriptionService fileDescriptionService) {
super(session, fileDescriptionService);
this.redirectTo = redirectTo;
}

@ -8,9 +8,9 @@ import javax.inject.Inject;
import javax.inject.Provider;
import javax.persistence.EntityManager;
class ApplicationPeriodProjectTypeServiceImpl extends AbstractServiceImpl<ApplicationPeriodProjectType, ApplicationPeriodProjectTypeId> implements ApplicationPeriodProjectTypeService {
public class ApplicationPeriodProjectTypeServiceImpl extends AbstractServiceImpl<ApplicationPeriodProjectType, ApplicationPeriodProjectTypeId> implements ApplicationPeriodProjectTypeService {
@Inject
ApplicationPeriodProjectTypeServiceImpl(Provider<EntityManager> em) {
public ApplicationPeriodProjectTypeServiceImpl(Provider<EntityManager> em) {
super(em, ApplicationPeriodProjectType.class, QApplicationPeriodProjectType.applicationPeriodProjectType);
}

@ -23,12 +23,12 @@ import java.util.stream.Collectors;
import static com.querydsl.core.types.dsl.Expressions.allOf;
import static com.querydsl.core.types.dsl.Expressions.anyOf;
class ApplicationPeriodServiceImpl extends AbstractServiceImpl<ApplicationPeriod, Long> implements ApplicationPeriodService {
public class ApplicationPeriodServiceImpl extends AbstractServiceImpl<ApplicationPeriod, Long> implements ApplicationPeriodService {
private final Clock clock;
@Inject
ApplicationPeriodServiceImpl(Provider<EntityManager> em, Clock clock) {
public ApplicationPeriodServiceImpl(Provider<EntityManager> em, Clock clock) {
super(em, ApplicationPeriod.class, QApplicationPeriod.applicationPeriod);
this.clock = clock;
}

@ -34,7 +34,7 @@ import java.util.stream.Collectors;
import static com.querydsl.core.types.dsl.Expressions.allOf;
import static com.querydsl.core.types.dsl.Expressions.anyOf;
class IdeaServiceImpl extends AbstractServiceImpl<Idea, Long> implements IdeaService {
public class IdeaServiceImpl extends AbstractServiceImpl<Idea, Long> implements IdeaService {
private static final Logger LOGGER = LoggerFactory.getLogger(IdeaServiceImpl.class);
@ -63,7 +63,7 @@ class IdeaServiceImpl extends AbstractServiceImpl<Idea, Long> implements IdeaSer
private final GeneralSystemSettingsService generalSystemSettingsService;
@Inject
IdeaServiceImpl(Provider<EntityManager> em, final ApplicationPeriodService applicationPeriodService, final FirstMeetingRepository firstMeetingRepository, final NotificationController notificationController, final ProjectService projectService, final GeneralSystemSettingsService generalSystemSettingsService) {
public IdeaServiceImpl(Provider<EntityManager> em, final ApplicationPeriodService applicationPeriodService, final FirstMeetingRepository firstMeetingRepository, final NotificationController notificationController, final ProjectService projectService, final GeneralSystemSettingsService generalSystemSettingsService) {
super(em, Idea.class, QIdea.idea);
this.applicationPeriodService = applicationPeriodService;
this.firstMeetingRepository = firstMeetingRepository;

@ -15,12 +15,12 @@ import javax.inject.Provider;
import javax.persistence.EntityManager;
import java.util.List;
class KeywordServiceImpl extends AbstractServiceImpl<Keyword,Long> implements KeywordService {
public class KeywordServiceImpl extends AbstractServiceImpl<Keyword,Long> implements KeywordService {
private static final Logger LOGGER = LoggerFactory.getLogger(KeywordServiceImpl.class);
@Inject
KeywordServiceImpl(Provider<EntityManager> em) {
public KeywordServiceImpl(Provider<EntityManager> em) {
super(em, Keyword.class, QKeyword.keyword1);
}

@ -21,12 +21,12 @@ import java.util.stream.Collectors;
import static com.querydsl.core.types.dsl.Expressions.anyOf;
class MatchFollowUpServiceImpl implements MatchFollowUpService {
public class MatchFollowUpServiceImpl implements MatchFollowUpService {
private final Provider<EntityManager> entityManagerProvider;
@Inject
MatchFollowUpServiceImpl(final Provider<EntityManager> entityManagerProvider) {
public MatchFollowUpServiceImpl(final Provider<EntityManager> entityManagerProvider) {
this.entityManagerProvider = entityManagerProvider;
}

@ -6,11 +6,11 @@ import javax.inject.Inject;
import javax.inject.Provider;
import javax.persistence.EntityManager;
class PreliminaryMatchServiceImpl extends AbstractServiceImpl<PreliminaryMatch, Long> implements PreliminaryMatchService {
public class PreliminaryMatchServiceImpl extends AbstractServiceImpl<PreliminaryMatch, Long> implements PreliminaryMatchService {
private final IdeaService ideaService;
@Inject
PreliminaryMatchServiceImpl(
public PreliminaryMatchServiceImpl(
final Provider<EntityManager> em,
final IdeaService ideaService)
{

@ -13,9 +13,9 @@ import javax.inject.Provider;
import javax.persistence.EntityManager;
import java.util.List;
class ProgramServiceImpl extends AbstractServiceImpl<Program,Long> implements ProgramService {
public class ProgramServiceImpl extends AbstractServiceImpl<Program,Long> implements ProgramService {
@Inject
ProgramServiceImpl(Provider<EntityManager> em) {
public ProgramServiceImpl(Provider<EntityManager> em) {
super(em, Program.class, QProgram.program);
}

@ -9,11 +9,11 @@ import se.su.dsv.scipro.notifications.dataobject.ProjectEvent;
import javax.inject.Inject;
class ProjectStartNotifier {
public class ProjectStartNotifier {
private final NotificationController notificationController;
@Inject
ProjectStartNotifier(final EventBus eventBus,
public ProjectStartNotifier(final EventBus eventBus,
final NotificationController notificationController) {
eventBus.register(this);
this.notificationController = notificationController;

@ -12,12 +12,12 @@ import javax.inject.Provider;
import javax.persistence.EntityManager;
import java.util.*;
class TargetServiceImpl extends AbstractServiceImpl<Target, TargetId> implements TargetService {
public class TargetServiceImpl extends AbstractServiceImpl<Target, TargetId> implements TargetService {
private final IdeaService ideaService;
@Inject
TargetServiceImpl(Provider<EntityManager> em, final IdeaService ideaService) {
public TargetServiceImpl(Provider<EntityManager> em, final IdeaService ideaService) {
super(em, Target.class, QTarget.target1);
this.ideaService = ideaService;
}

@ -14,7 +14,7 @@ public class GradingNotifications {
private final NotificationController notificationController;
@Inject
GradingNotifications(final EventBus eventBus, final NotificationController notificationController) {
public GradingNotifications(final EventBus eventBus, final NotificationController notificationController) {
this.notificationController = notificationController;
eventBus.register(this);
}

@ -12,11 +12,11 @@ import javax.ws.rs.core.Response;
import java.util.Optional;
import java.util.Set;
class OAuthServiceImpl implements OAuthService {
public class OAuthServiceImpl implements OAuthService {
private final OAuthSettingsRepository oAuthSettingsRepository;
@Inject
OAuthServiceImpl(final OAuthSettingsRepository oAuthSettingsRepository) {
public OAuthServiceImpl(final OAuthSettingsRepository oAuthSettingsRepository) {
this.oAuthSettingsRepository = oAuthSettingsRepository;
}

@ -6,12 +6,12 @@ import javax.inject.Inject;
import javax.inject.Provider;
import javax.persistence.EntityManager;
class OAuthSettingsRepositoryImpl implements OAuthSettingsRepository {
public class OAuthSettingsRepositoryImpl implements OAuthSettingsRepository {
private final Provider<EntityManager> em;
@Inject
OAuthSettingsRepositoryImpl(final Provider<EntityManager> em) {
public OAuthSettingsRepositoryImpl(final Provider<EntityManager> em) {
this.em = em;
}

@ -9,13 +9,13 @@ import javax.inject.Singleton;
import java.util.concurrent.TimeUnit;
@Singleton
class PeerWorkerSchedules implements Lifecycle {
public class PeerWorkerSchedules implements Lifecycle {
private final Scheduler scheduler;
private final Provider<ExpiredRequestWorker> expiredRequestWorker;
private final Provider<ExpiredReviewResetWorker> expiredReviewResetWorker;
@Inject
PeerWorkerSchedules(Scheduler scheduler, Provider<ExpiredRequestWorker> expiredRequestWorker, Provider<ExpiredReviewResetWorker> expiredReviewResetWorker) {
public PeerWorkerSchedules(Scheduler scheduler, Provider<ExpiredRequestWorker> expiredRequestWorker, Provider<ExpiredReviewResetWorker> expiredReviewResetWorker) {
this.scheduler = scheduler;
this.expiredRequestWorker = expiredRequestWorker;
this.expiredReviewResetWorker = expiredReviewResetWorker;

@ -7,7 +7,7 @@ import se.su.dsv.scipro.system.User;
import javax.inject.Inject;
class PlagiarismControlImpl implements PlagiarismControl {
public class PlagiarismControlImpl implements PlagiarismControl {
private final PlagiarismRequestRepository plagiarismRequestRepository;
private final UrkundSubmissionRepository urkundSubmissionRepository;

@ -5,6 +5,6 @@ import se.su.dsv.scipro.file.FileDescription;
import java.util.Optional;
interface PlagiarismRequestRepository extends JpaRepository<PlagiarismRequest, Long> {
public interface PlagiarismRequestRepository extends JpaRepository<PlagiarismRequest, Long> {
Optional<PlagiarismRequest> findByFileDescription(FileDescription file);
}

@ -8,9 +8,9 @@ import javax.inject.Provider;
import javax.persistence.EntityManager;
import java.util.Optional;
class PlagiarismRequestRepositoryImpl extends AbstractServiceImpl<PlagiarismRequest, Long> implements PlagiarismRequestRepository {
public class PlagiarismRequestRepositoryImpl extends AbstractServiceImpl<PlagiarismRequest, Long> implements PlagiarismRequestRepository {
@Inject
PlagiarismRequestRepositoryImpl(final Provider<EntityManager> em) {
public PlagiarismRequestRepositoryImpl(final Provider<EntityManager> em) {
super(em, PlagiarismRequest.class, QPlagiarismRequest.plagiarismRequest);
}

@ -18,7 +18,7 @@ public class PlagiarismSubmitter extends AbstractWorker {
private final UrkundService urkundService;
@Inject
PlagiarismSubmitter(
public PlagiarismSubmitter(
final Provider<UrkundSettings> urkundSettingsProvider,
final PlagiarismRequestRepository plagiarismRequestRepository,
final UrkundService urkundService)

@ -18,7 +18,7 @@ public class StatusPollingWorker extends AbstractWorker {
private final Sukat sukat;
@Inject
StatusPollingWorker(
public StatusPollingWorker(
final UrkundSubmissionRepository urkundSubmissionRepository,
final UrkundApi urkundApi,
final Provider<UrkundSettings> urkundSettingsProvider,

@ -4,7 +4,7 @@ import se.su.dsv.scipro.file.FileDescription;
import java.util.Optional;
interface UrkundApi {
public interface UrkundApi {
UrkundResponse submitDocument(String receiver, FileDescription file);
UrkundResponse submissionInfo(String receiver, FileDescription file);
Optional<String> analysisAddress(String email);

@ -28,13 +28,13 @@ import java.util.Optional;
* build under the assumption that we will not do this and therefore expects
* only one {@link SubmissionInfo} when fetching submission status.
*/
class UrkundApiImpl implements UrkundApi {
public class UrkundApiImpl implements UrkundApi {
private final ObjectMapper objectMapper;
private final Provider<UrkundSettings> urkundSettings;
@Inject
UrkundApiImpl(final Provider<UrkundSettings> urkundSettings) {
public UrkundApiImpl(final Provider<UrkundSettings> urkundSettings) {
this.urkundSettings = urkundSettings;
objectMapper = new ObjectMapper();
objectMapper.findAndRegisterModules();

@ -10,13 +10,13 @@ import java.time.Instant;
import java.time.ZoneOffset;
import java.util.Optional;
class UrkundServiceImpl implements UrkundService {
public class UrkundServiceImpl implements UrkundService {
private final UrkundApi urkundApi;
private final UrkundSubmissionRepository urkundSubmissionRepository;
private final Sukat sukat;
@Inject
UrkundServiceImpl(
public UrkundServiceImpl(
final UrkundApi urkundApi,
final UrkundSubmissionRepository urkundSubmissionRepository,
final Sukat sukat)

@ -5,11 +5,11 @@ import javax.inject.Provider;
import javax.persistence.EntityManager;
import java.util.Optional;
class UrkundSettingsRepositoryImpl implements UrkundSettingsRepository {
public class UrkundSettingsRepositoryImpl implements UrkundSettingsRepository {
private final Provider<EntityManager> entityManagerProvider;
@Inject
UrkundSettingsRepositoryImpl(final Provider<EntityManager> entityManagerProvider) {
public UrkundSettingsRepositoryImpl(final Provider<EntityManager> entityManagerProvider) {
this.entityManagerProvider = entityManagerProvider;
}

@ -9,11 +9,11 @@ import javax.persistence.EntityManager;
import java.util.Collection;
import java.util.Optional;
class UrkundSubmissionRepositoryImpl implements UrkundSubmissionRepository {
public class UrkundSubmissionRepositoryImpl implements UrkundSubmissionRepository {
private final Provider<EntityManager> entityManagerProvider;
@Inject
UrkundSubmissionRepositoryImpl(final Provider<EntityManager> entityManagerProvider) {
public UrkundSubmissionRepositoryImpl(final Provider<EntityManager> entityManagerProvider) {
this.entityManagerProvider = entityManagerProvider;
}

@ -15,13 +15,13 @@ import javax.persistence.EntityManager;
import java.util.Date;
import java.util.Optional;
class FinalSeminarApprovalServiceImpl extends AbstractReviewerApprovalServiceImpl<FinalSeminarApproval> implements FinalSeminarApprovalService {
public class FinalSeminarApprovalServiceImpl extends AbstractReviewerApprovalServiceImpl<FinalSeminarApproval> implements FinalSeminarApprovalService {
private final DaysService daysService;
private final ReviewerDeadlineSettingsService reviewerDeadlineSettingsService;
@Inject
FinalSeminarApprovalServiceImpl(
public FinalSeminarApprovalServiceImpl(
final Provider<EntityManager> em,
final FileDescriptionService fileDescriptionService,
final EventBus eventBus,

@ -15,10 +15,10 @@ import java.util.List;
import static com.querydsl.core.types.dsl.Expressions.allOf;
import static com.querydsl.core.types.dsl.Expressions.anyOf;
class ReviewerDeadlineFollowupServiceImpl extends AbstractRepository implements ReviewerDeadlineFollowupService {
public class ReviewerDeadlineFollowupServiceImpl extends AbstractRepository implements ReviewerDeadlineFollowupService {
@Inject
ReviewerDeadlineFollowupServiceImpl(final Provider<EntityManager> em) {
public ReviewerDeadlineFollowupServiceImpl(final Provider<EntityManager> em) {
super(em);
}

@ -5,6 +5,6 @@ import scala.Option;
import se.su.dsv.scipro.forum.dataobjects.ReviewerThread;
import se.su.dsv.scipro.project.Project;
interface ReviewerThreadRepository extends JpaRepository<ReviewerThread, Long> {
public interface ReviewerThreadRepository extends JpaRepository<ReviewerThread, Long> {
Option<ReviewerThread> findByProject(Project project);
}

@ -10,9 +10,9 @@ import javax.inject.Inject;
import javax.inject.Provider;
import javax.persistence.EntityManager;
class ReviewerThreadRepositoryImpl extends GenericRepo<ReviewerThread, Long> implements ReviewerThreadRepository {
public class ReviewerThreadRepositoryImpl extends GenericRepo<ReviewerThread, Long> implements ReviewerThreadRepository {
@Inject
ReviewerThreadRepositoryImpl(final Provider<EntityManager> em) {
public ReviewerThreadRepositoryImpl(final Provider<EntityManager> em) {
super(em, ReviewerThread.class, QReviewerThread.reviewerThread);
}

@ -20,13 +20,13 @@ import java.util.Optional;
import static com.querydsl.core.types.dsl.Expressions.allOf;
class ReviewingServiceImpl extends AbstractServiceImpl<ReviewerApproval, Long> implements MyReviewService, ReviewerDecisionService {
public class ReviewingServiceImpl extends AbstractServiceImpl<ReviewerApproval, Long> implements MyReviewService, ReviewerDecisionService {
private final FileDescriptionService fileDescriptionService;
private final EventBus eventBus;
@Inject
ReviewingServiceImpl(Provider<EntityManager> em, FileDescriptionService fileDescriptionService, final EventBus eventBus) {
public ReviewingServiceImpl(Provider<EntityManager> em, FileDescriptionService fileDescriptionService, final EventBus eventBus) {
super(em, ReviewerApproval.class, QReviewerApproval.reviewerApproval);
this.fileDescriptionService = fileDescriptionService;
this.eventBus = eventBus;

@ -15,13 +15,13 @@ import javax.persistence.EntityManager;
import java.util.Date;
import java.util.Optional;
class RoughDraftApprovalServiceImpl extends AbstractReviewerApprovalServiceImpl<RoughDraftApproval> implements RoughDraftApprovalService {
public class RoughDraftApprovalServiceImpl extends AbstractReviewerApprovalServiceImpl<RoughDraftApproval> implements RoughDraftApprovalService {
private final DaysService daysService;
private final ReviewerDeadlineSettingsService reviewerDeadlineSettingsService;
@Inject
RoughDraftApprovalServiceImpl(
public RoughDraftApprovalServiceImpl(
final Provider<EntityManager> em,
final EventBus eventBus,
final FileDescriptionService fileDescriptionService,

@ -3,11 +3,11 @@ package se.su.dsv.scipro.security.auth;
import javax.inject.Inject;
import java.util.Set;
class AuthenticationServiceImpl implements AuthenticationService {
public class AuthenticationServiceImpl implements AuthenticationService {
private final Set<AuthenticationProvider> authenticationProviders;
@Inject
AuthenticationServiceImpl(final Set<AuthenticationProvider> authenticationProviders) {
public AuthenticationServiceImpl(final Set<AuthenticationProvider> authenticationProviders) {
this.authenticationProviders = authenticationProviders;
}

@ -4,12 +4,12 @@ import se.su.dsv.scipro.system.*;
import javax.inject.Inject;
class LocalAuthentication implements AuthenticationProvider {
public class LocalAuthentication implements AuthenticationProvider {
private final UserService userService;
private final PasswordService passwordService;
@Inject
LocalAuthentication(final UserService userService, final PasswordService passwordService) {
public LocalAuthentication(final UserService userService, final PasswordService passwordService) {
this.userService = userService;
this.passwordService = passwordService;
}

@ -2,5 +2,5 @@ package se.su.dsv.scipro.survey;
import org.springframework.data.jpa.repository.JpaRepository;
interface QuestionRepository extends JpaRepository<Question, Long> {
public interface QuestionRepository extends JpaRepository<Question, Long> {
}

@ -6,9 +6,9 @@ import javax.inject.Inject;
import javax.inject.Provider;
import javax.persistence.EntityManager;
class QuestionRepositoryImpl extends GenericRepo<Question, Long> implements QuestionRepository {
public class QuestionRepositoryImpl extends GenericRepo<Question, Long> implements QuestionRepository {
@Inject
QuestionRepositoryImpl(final Provider<EntityManager> em) {
public QuestionRepositoryImpl(final Provider<EntityManager> em) {
super(em, Question.class, QQuestion.question);
}

@ -6,6 +6,6 @@ import se.su.dsv.scipro.system.User;
import java.util.Optional;
interface SurveyRepository extends JpaRepository<Survey, Long> {
public interface SurveyRepository extends JpaRepository<Survey, Long> {
Optional<Survey> getSurvey(Project project, User author);
}

@ -9,9 +9,9 @@ import javax.inject.Provider;
import javax.persistence.EntityManager;
import java.util.Optional;
class SurveyRepositoryImpl extends GenericRepo<Survey, Long> implements SurveyRepository {
public class SurveyRepositoryImpl extends GenericRepo<Survey, Long> implements SurveyRepository {
@Inject
SurveyRepositoryImpl(final Provider<EntityManager> em) {
public SurveyRepositoryImpl(final Provider<EntityManager> em) {
super(em, Survey.class, QSurvey.survey);
}

@ -13,7 +13,7 @@ import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
class SurveyServiceImpl implements SurveyService {
public class SurveyServiceImpl implements SurveyService {
private final SurveyRepository surveyRepository;
private final QuestionRepository questionRepository;
@ -21,7 +21,7 @@ class SurveyServiceImpl implements SurveyService {
private final GeneralSystemSettingsService generalSystemSettingsService;
@Inject
SurveyServiceImpl(final SurveyRepository surveyRepository,
public SurveyServiceImpl(final SurveyRepository surveyRepository,
final QuestionRepository questionRepository,
final FinalThesisService finalThesisService,
final GeneralSystemSettingsService generalSystemSettingsService)

@ -10,7 +10,7 @@ public class FooterLinkServiceImpl implements FooterLinkService {
private final FooterLinkRepo repository;
@Inject
FooterLinkServiceImpl(final FooterLinkRepo repository) {
public FooterLinkServiceImpl(final FooterLinkRepo repository) {
this.repository = repository;
}

@ -12,7 +12,7 @@ import java.util.TreeSet;
import java.util.concurrent.ScheduledExecutorService;
@Singleton
class SchedulerImpl implements Lifecycle, Scheduler {
public class SchedulerImpl implements Lifecycle, Scheduler {
private final ScheduledExecutorService scheduledExecutorService;
@ -20,7 +20,7 @@ class SchedulerImpl implements Lifecycle, Scheduler {
private final Set<Task> runningWorkers = Collections.synchronizedSet(new HashSet<>());
@Inject
SchedulerImpl(ScheduledExecutorService scheduledExecutorService) {
public SchedulerImpl(ScheduledExecutorService scheduledExecutorService) {
this.scheduledExecutorService = scheduledExecutorService;
}

@ -9,9 +9,9 @@ import javax.inject.Inject;
import javax.inject.Provider;
import java.util.concurrent.TimeUnit;
class TemporaryWorkerScheduler {
public class TemporaryWorkerScheduler {
@Inject
TemporaryWorkerScheduler(
public TemporaryWorkerScheduler(
Scheduler scheduler,
Provider<MailEventWorker> mailEventWorker,
Provider<NotificationCompilationWorker> notificationCompilationWorker,

@ -8,7 +8,7 @@ import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.mockito.junit.MockitoJUnitRunner;
import se.su.dsv.scipro.checklist.*;
import se.su.dsv.scipro.file.FileSource;
import se.su.dsv.scipro.file.ProjectFile;

@ -4,7 +4,7 @@ import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.mockito.junit.MockitoJUnitRunner;
import se.su.dsv.scipro.file.FileDescription;
import se.su.dsv.scipro.notifications.NotificationController;
import se.su.dsv.scipro.notifications.dataobject.NotificationSource;
@ -24,8 +24,8 @@ import java.util.Date;
import java.util.Optional;
import java.util.TreeSet;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.eq;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.*;
@RunWith(MockitoJUnitRunner.class)

@ -7,7 +7,7 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.mockito.junit.MockitoJUnitRunner;
import se.su.dsv.scipro.file.FileDescription;
import se.su.dsv.scipro.generalsystemsettings.GeneralSystemSettings;
import se.su.dsv.scipro.generalsystemsettings.GeneralSystemSettingsService;

@ -6,7 +6,7 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.mockito.junit.MockitoJUnitRunner;
import se.su.dsv.scipro.file.FileDescription;
import se.su.dsv.scipro.notifications.NotificationController;
import se.su.dsv.scipro.notifications.dataobject.NotificationSource;
@ -21,8 +21,8 @@ import se.su.dsv.scipro.system.ProjectType;
import java.util.Date;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.eq;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.verify;
@RunWith(MockitoJUnitRunner.class)

@ -9,7 +9,7 @@ import org.mockito.Answers;
import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.runners.MockitoJUnitRunner;
import org.mockito.junit.MockitoJUnitRunner;
import se.su.dsv.scipro.file.FileDescription;
import se.su.dsv.scipro.file.FileDescriptionService;
import se.su.dsv.scipro.misc.DaysService;
@ -137,8 +137,6 @@ public class FinalSeminarServiceImplTest {
document.setId(1L);
finalSeminar.setDocument(document);
when(fileDescriptionService.findOne(isA(Long.class))).thenReturn(document);
seminarService.delete(finalSeminar);
verify(oppositionReportService).deleteOppositionReport(isA(FinalSeminarOpposition.class));

@ -6,7 +6,7 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.mockito.junit.MockitoJUnitRunner;
import se.su.dsv.scipro.file.FileDescription;
import se.su.dsv.scipro.file.FileDescriptionService;
import se.su.dsv.scipro.file.FileUpload;
@ -55,7 +55,9 @@ public class FinalSeminarUploadControllerImplTest {
@Before
public void setUp() throws Exception {
project = Project.builder().title("title").projectType(new ProjectType(DegreeType.BACHELOR, "Bachelor", "Bachelor")).build();
project.setId(812L);
seminar = new FinalSeminar();
seminar.setId(738L);
seminar.setProject(project);
uploader = new UserBuilder().create();
project.addProjectParticipant(uploader);

@ -9,9 +9,9 @@ import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.AdditionalAnswers;
import org.mockito.Matchers;
import org.mockito.ArgumentMatchers;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.mockito.junit.MockitoJUnitRunner;
import se.su.dsv.scipro.generalsystemsettings.GeneralSystemSettingsService;
import se.su.dsv.scipro.mail.MailEvent;
import se.su.dsv.scipro.mail.MailEventService;
@ -24,7 +24,7 @@ import se.su.dsv.scipro.system.User;
import static org.hamcrest.CoreMatchers.*;
import static org.junit.Assert.*;
import static org.mockito.Matchers.anyInt;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
@ -45,7 +45,7 @@ public class FirstMeetingReminderWorkerTest{
@Before
public void setUp() throws Exception {
worker = new FirstMeetingReminderWorker(ideaService, daysService, mailEventService, generalSystemSettingsService, clock);
when(daysService.workDaysAhead(Matchers.<LocalDate>any(), anyInt())).then(AdditionalAnswers.returnsFirstArg());
when(daysService.workDaysAhead(ArgumentMatchers.<LocalDate>any(), anyInt())).then(AdditionalAnswers.returnsFirstArg());
}
@Test public void should_remind_if_is_same_date() {

@ -8,14 +8,12 @@ import org.mockito.ArgumentCaptor;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.runners.MockitoJUnitRunner;
import org.mockito.junit.MockitoJUnitRunner;
import org.mockito.stubbing.Answer;
import se.su.dsv.scipro.forum.dataobjects.ForumPost;
import se.su.dsv.scipro.forum.dataobjects.ForumPostReadState;
import se.su.dsv.scipro.forum.dataobjects.ForumThread;
import se.su.dsv.scipro.forummail.ForumMailSettings;
import se.su.dsv.scipro.forummail.ForumMailSettingsService;
import se.su.dsv.scipro.mail.MailEvent;
import se.su.dsv.scipro.mail.MailEventService;
import se.su.dsv.scipro.system.User;
import se.su.dsv.scipro.test.ForumBuilder;
@ -55,18 +53,16 @@ public class BasicForumServiceImplTest {
return invocation.getArguments()[0];
}
});
when(mailEventService.save(isA(MailEvent.class))).thenReturn(new MailEvent());
when(mailSettingsService.getSettings()).thenReturn(new ForumMailSettings());
when(threadRepository.save(any(ForumThread.class))).thenAnswer(new Answer<Object>() {
@Override
public Object answer(final InvocationOnMock invocation) {
return invocation.getArgumentAt(0, ForumThread.class);
return invocation.getArgument(0, ForumThread.class);
}
});
when(postRepository.save(any(ForumPost.class))).thenAnswer(new Answer<Object>() {
@Override
public Object answer(final InvocationOnMock invocation) {
return invocation.getArgumentAt(0, ForumPost.class);
return invocation.getArgument(0, ForumPost.class);
}
});
}

@ -4,7 +4,7 @@ import com.google.inject.AbstractModule;
import com.google.inject.Module;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.mockito.junit.MockitoJUnitRunner;
import se.su.dsv.scipro.date.DateService;
import se.su.dsv.scipro.file.FileDescriptionService;
import se.su.dsv.scipro.file.ProjectFileService;

@ -8,11 +8,10 @@ import org.mockito.ArgumentCaptor;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.runners.MockitoJUnitRunner;
import org.mockito.junit.MockitoJUnitRunner;
import org.mockito.stubbing.Answer;
import se.su.dsv.scipro.file.*;
import se.su.dsv.scipro.forum.dataobjects.ForumPost;
import se.su.dsv.scipro.forum.dataobjects.ForumPostReadState;
import se.su.dsv.scipro.forum.dataobjects.ForumThread;
import se.su.dsv.scipro.forum.dataobjects.ProjectThread;
import se.su.dsv.scipro.project.Project;
@ -73,27 +72,15 @@ public class ProjectForumServiceImplTest {
return invocation.getArguments()[0];
}
});
when(readStateRepository.save(isA(ForumPostReadState.class))).thenAnswer(new Answer<Object>() {
@Override
public Object answer(final InvocationOnMock invocation) {
return invocation.getArguments()[0];
}
});
when(postRepository.save(isA(ForumPost.class))).thenAnswer(new Answer<Object>() {
@Override
public Object answer(final InvocationOnMock invocation) {
return invocation.getArguments()[0];
}
});
when(basicForumService.createReply(any(ForumThread.class), any(User.class), anyString(), anySetOf(FileDescription.class)))
when(basicForumService.createReply(any(ForumThread.class), any(User.class), anyString(), anySet()))
.thenAnswer(new Answer<ForumPost>() {
@Override
public ForumPost answer(final InvocationOnMock invocation) {
ForumPost forumPost = new ForumPost();
forumPost.setForumThread(invocation.getArgumentAt(0, ForumThread.class));
forumPost.setPostedBy(invocation.getArgumentAt(1, User.class));
forumPost.setContent(invocation.getArgumentAt(2, String.class));
forumPost.setAttachments(invocation.getArgumentAt(3, Set.class));
forumPost.setForumThread(invocation.getArgument(0, ForumThread.class));
forumPost.setPostedBy(invocation.getArgument(1, User.class));
forumPost.setContent(invocation.getArgument(2, String.class));
forumPost.setAttachments(invocation.getArgument(3, Set.class));
forumPost.getForumThread().addPost(forumPost);
return forumPost;
}
@ -102,7 +89,7 @@ public class ProjectForumServiceImplTest {
@Override
public ForumThread answer(final InvocationOnMock invocation) {
ForumThread forumThread1 = new ForumThread();
forumThread1.setSubject(invocation.getArgumentAt(0, String.class));
forumThread1.setSubject(invocation.getArgument(0, String.class));
return forumThread1;
}
});
@ -157,7 +144,7 @@ public class ProjectForumServiceImplTest {
@Test
public void testGetPostPageByForumThread() {
List<ForumPost> posts = Collections.singletonList(new ForumBuilder().createPost());
when(basicForumService.getPosts(any(ForumThread.class))).thenReturn(posts);
when(basicForumService.getPosts(any())).thenReturn(posts);
List<ForumPost> servicePage = service.getPosts(mock(ProjectThread.class));
@ -188,7 +175,6 @@ public class ProjectForumServiceImplTest {
}
else {
FileUpload fileUpload = mock(FileUpload.class);
when(fileUpload.getFileName()).thenReturn(clientFileName);
return new HashSet<>(Collections.singletonList(fileUpload));
}
}

@ -7,7 +7,7 @@ import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.mockito.junit.MockitoJUnitRunner;
import scala.Option;
import se.su.dsv.scipro.forum.ForumPostReadEvent;
import se.su.dsv.scipro.forum.NewGroupForumReplyEvent;
@ -28,8 +28,8 @@ import se.su.dsv.scipro.system.User;
import java.util.Collections;
import static org.junit.Assert.assertEquals;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.eq;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import static se.su.dsv.scipro.notifications.dataobject.ProjectForumEvent.Event.NEW_FORUM_POST;
@ -94,7 +94,7 @@ public class ForumNotificationsTest {
Notification notification = new Notification();
notification.setNotificationEvent(projectForumEvent);
when(notificationController.notifyProjectForum(any(ProjectForumEvent.Event.class), any(NotificationSource.class), any(Project.class), any(User.class)))
when(notificationController.notifyProjectForum(any(ProjectForumEvent.Event.class), any(NotificationSource.class), any(), any(User.class)))
.thenReturn(Collections.singleton(notification));
ProjectThread projectThread = new ProjectThread();

@ -3,7 +3,7 @@ package se.su.dsv.scipro.forummail;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.runners.MockitoJUnitRunner;
import org.mockito.junit.MockitoJUnitRunner;
import se.su.dsv.scipro.forum.dataobjects.ForumPost;
import se.su.dsv.scipro.forum.dataobjects.ForumThread;
import se.su.dsv.scipro.system.User;

@ -4,7 +4,7 @@ import com.google.inject.AbstractModule;
import com.google.inject.Module;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.mockito.junit.MockitoJUnitRunner;
import se.su.dsv.scipro.file.FileDescriptionService;
import se.su.dsv.scipro.forum.GroupForumService;
import se.su.dsv.scipro.forum.ProjectForumService;

@ -4,7 +4,7 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.mockito.junit.MockitoJUnitRunner;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

@ -3,8 +3,7 @@ package se.su.dsv.scipro.forummail;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.runners.MockitoJUnitRunner;
import se.su.dsv.scipro.file.FileDescription;
import org.mockito.junit.MockitoJUnitRunner;
import se.su.dsv.scipro.forum.dataobjects.ForumThread;
import se.su.dsv.scipro.forum.dataobjects.GroupThread;
import se.su.dsv.scipro.forum.dataobjects.ProjectThread;
@ -41,20 +40,20 @@ public class ReadForumMailTest extends ForumMailModuleTest {
public void creates_group_thread_reply_if_found_message_matches_mail_event_message_id() {
ForumMailGroup forumMailGroup = createForumMailGroup();
readForumMail.accept(message);
verify(groupForumService).createReply(eq(forumMailGroup.getGroupThread()), eq(forumMailGroup.getUser()), eq(message.getMailBody()), anySetOf(FileDescription.class));
verify(groupForumService).createReply(eq(forumMailGroup.getGroupThread()), eq(forumMailGroup.getUser()), eq(message.getMailBody()), anySet());
}
@Test
public void creates_projct_thread_reply_if_found_message_matches_mail_event_message_id() {
ForumMailProject forumMailGroup = createForumMailProject();
readForumMail.accept(message);
verify(projectForumService).createReply(eq(forumMailGroup.getProjectThread()), eq(forumMailGroup.getUser()), eq(message.getMailBody()), anySetOf(FileDescription.class));
verify(projectForumService).createReply(eq(forumMailGroup.getProjectThread()), eq(forumMailGroup.getUser()), eq(message.getMailBody()), anySet());
}
@Test
public void no_mails_exists_should_not_create_thread_reply() {
readForumMail.accept(message);
verify(groupForumService, never()).createReply(any(GroupThread.class), any(User.class), anyString(), anySetOf(FileDescription.class));
verify(groupForumService, never()).createReply(any(GroupThread.class), any(User.class), anyString(), anySet());
}
private ForumThread createThread() {

@ -6,7 +6,7 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.mockito.junit.MockitoJUnitRunner;
import se.su.dsv.scipro.forum.NewProjectForumReplyEvent;
import se.su.dsv.scipro.forum.dataobjects.ForumPost;
import se.su.dsv.scipro.forum.dataobjects.ForumThread;

@ -5,7 +5,7 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.mockito.junit.MockitoJUnitRunner;
import scala.Option;
import se.su.dsv.scipro.activityplan.Activity;
import se.su.dsv.scipro.activityplan.ActivityPlanFacade;
@ -17,7 +17,7 @@ import se.su.dsv.scipro.project.Project;
import java.util.Date;
import static org.mockito.Matchers.isA;
import static org.mockito.ArgumentMatchers.isA;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

@ -7,7 +7,7 @@ import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.mockito.junit.MockitoJUnitRunner;
import scala.Option;
import se.su.dsv.scipro.activityplan.Activity;
import se.su.dsv.scipro.activityplan.ActivityFileUploadedEvent;

@ -6,7 +6,7 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.mockito.junit.MockitoJUnitRunner;
import org.slf4j.Logger;
import javax.mail.Address;
@ -14,8 +14,8 @@ import javax.mail.SendFailedException;
import javax.mail.internet.InternetAddress;
import java.util.Arrays;
import static org.mockito.Matchers.anyString;
import static org.mockito.Matchers.contains;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.contains;
import static org.mockito.Mockito.*;
@RunWith(MockitoJUnitRunner.class)

@ -9,10 +9,9 @@ import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.runners.MockitoJUnitRunner;
import org.mockito.junit.MockitoJUnitRunner;
import org.mockito.stubbing.Answer;
import org.slf4j.Logger;
import se.su.dsv.scipro.file.FileDescription;
import se.su.dsv.scipro.generalsystemsettings.GeneralSystemSettings;
import se.su.dsv.scipro.generalsystemsettings.GeneralSystemSettingsService;
import se.su.dsv.scipro.system.User;
@ -43,14 +42,14 @@ public class MailEventWorkerTest {
public void callSendMailUsersOnly() throws Exception {
setUpMailEventWithUsersOnly();
worker.doWork();
verify(mailer).mail(eq(FROM_NAME), eq(FROM_EMAIL), eq(RECIPIENTS_MAILS), eq(SUBJECT), eq(MESSAGE_BODY), any(FileDescription.class));
verify(mailer).mail(eq(FROM_NAME), eq(FROM_EMAIL), eq(RECIPIENTS_MAILS), eq(SUBJECT), eq(MESSAGE_BODY), any());
}
@Test
public void callSendMailUsersOnlyNoFromName() throws Exception {
setUpMailEventWithUsersOnlyNoFromName();
worker.doWork();
verify(mailer).mail(eq(DEFAULT_FROM_NAME), eq(DEFAULT_FROM_EMAIL), eq(RECIPIENTS_MAILS), eq(SUBJECT), eq(MESSAGE_BODY), any(FileDescription.class));
verify(mailer).mail(eq(DEFAULT_FROM_NAME), eq(DEFAULT_FROM_EMAIL), eq(RECIPIENTS_MAILS), eq(SUBJECT), eq(MESSAGE_BODY), any());
}
@Test
@ -58,7 +57,7 @@ public class MailEventWorkerTest {
setUpMailEventWithUsersAndNonUser();
worker.doWork();
String[] mails = {RECIPIENTS_MAILS[0], NON_USER_RECIPIENTS.iterator().next()};
verify(mailer).mail(anyString(), anyString(), eq(mails), anyString(), anyString(), any(FileDescription.class));
verify(mailer).mail(anyString(), anyString(), eq(mails), anyString(), anyString(), any());
}
@Test
@ -128,7 +127,7 @@ public class MailEventWorkerTest {
}
private void mockMailResult(final MailResult result) throws MessagingException {
when(mailer.mail(anyString(), anyString(), any(String[].class), anyString(), anyString(), any(FileDescription.class))).thenReturn(result);
when(mailer.mail(anyString(), anyString(), any(String[].class), anyString(), anyString(), any())).thenReturn(result);
}
private void setUpMailEventWithUsersAndNonUser() throws Exception {
@ -170,7 +169,7 @@ public class MailEventWorkerTest {
return null; }
});
MailResult successfulResult = createSuccessfulResult("123.abcdefg.987@mail.com");
when(mailer.mail(anyString(), anyString(), any(String[].class), anyString(), anyString(), any(FileDescription.class))).thenReturn(successfulResult);
when(mailer.mail(anyString(), anyString(), any(String[].class), anyString(), anyString(), any())).thenReturn(successfulResult);
}
private MailEvent createMailEventUsersOnlyNoFromName() {

@ -4,7 +4,7 @@ import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.mockito.junit.MockitoJUnitRunner;
import scala.Tuple2;
import se.su.dsv.scipro.activityplan.ActivityPlanFacade;
import se.su.dsv.scipro.activityplan.ActivityPlanTemplate;
@ -15,8 +15,8 @@ import se.su.dsv.scipro.system.ProjectType;
import java.util.Date;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.eq;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;

@ -5,7 +5,7 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.mockito.junit.MockitoJUnitRunner;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import se.su.dsv.scipro.system.DegreeType;

@ -5,7 +5,7 @@ import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.*;
import org.mockito.runners.MockitoJUnitRunner;
import org.mockito.junit.MockitoJUnitRunner;
import se.su.dsv.scipro.date.DateService;
import se.su.dsv.scipro.generalsystemsettings.GeneralSystemSettings;
import se.su.dsv.scipro.generalsystemsettings.GeneralSystemSettingsService;
@ -25,8 +25,7 @@ import javax.persistence.EntityManager;
import java.util.*;
import static org.junit.Assert.assertEquals;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.eq;
import static org.mockito.ArgumentMatchers.*;
import static org.mockito.Mockito.when;
import static se.su.dsv.scipro.match.IdeaServiceImpl.*;
@ -83,15 +82,12 @@ public class IdeaServiceImplTest {
// given
Idea idea = new Idea();
idea.setProjectType(master);
GeneralSystemSettings settings = DomainObjects.injectId(new GeneralSystemSettings(), 1L);
when(generalSystemSettingsService.getGeneralSystemSettingsInstance()).thenReturn(settings);
// when
ideaService.saveStudentIdea(idea, creator, null, Collections.singleton(coAuthor), new ArrayList<Keyword>(), true);
// then
Mockito.verify(notificationController).notifyIdea(eq(idea), eq(IdeaEvent.Event.ADDED_AS_PARTNER), Matchers.isA(NotificationSource.class));
Mockito.verify(notificationController).notifyIdea(eq(idea), eq(IdeaEvent.Event.ADDED_AS_PARTNER), isA(NotificationSource.class));
}
@Test
@ -102,21 +98,17 @@ public class IdeaServiceImplTest {
IdeaParticipation participation = new IdeaParticipation(creator, idea);
GeneralSystemSettings settings = DomainObjects.injectId(new GeneralSystemSettings(), 1L);
idea.addIdeaParticipation(participation);
IdeaParticipation coParticipation = new IdeaParticipation(coAuthor, idea);
idea.addIdeaParticipation(coParticipation);
when(generalSystemSettingsService.getGeneralSystemSettingsInstance()).thenReturn(settings);
// when
ideaService.saveStudentIdea(idea, creator, null, Collections.singleton(coAuthor), new ArrayList<Keyword>(), false);
// then
Mockito.verify(notificationController, Mockito.times(0)).notifyIdea(Matchers.isA(Idea.class), Matchers.isA(IdeaEvent.Event.class), Matchers.isA(NotificationSource.class));
Mockito.verify(notificationController, Mockito.times(0)).notifyIdea(isA(Idea.class), isA(IdeaEvent.Event.class), isA(NotificationSource.class));
}
@Test
@ -127,17 +119,13 @@ public class IdeaServiceImplTest {
IdeaParticipation participation = new IdeaParticipation(creator, idea);
GeneralSystemSettings settings = DomainObjects.injectId(new GeneralSystemSettings(), 1L);
idea.addIdeaParticipation(participation);
when(generalSystemSettingsService.getGeneralSystemSettingsInstance()).thenReturn(settings);
// when
ideaService.saveStudentIdea(idea, creator, null, Collections.singleton(coAuthor), new ArrayList<Keyword>(), false);
// then
Mockito.verify(notificationController).notifyIdea(eq(idea), eq(IdeaEvent.Event.ADDED_AS_PARTNER), Matchers.isA(NotificationSource.class));
Mockito.verify(notificationController).notifyIdea(eq(idea), eq(IdeaEvent.Event.ADDED_AS_PARTNER), isA(NotificationSource.class));
}
@Test
@ -239,9 +227,6 @@ public class IdeaServiceImplTest {
public void acceptIdea() {
Idea idea = new Idea();
idea.setMatch(new Match());
GeneralSystemSettings generalSystemSettings = new GeneralSystemSettings();
when(generalSystemSettingsService.getGeneralSystemSettingsInstance()).thenReturn(generalSystemSettings);
assertEquals(idea, ideaService.acceptIdea(idea, student, null, coAuthor, applicationPeriod));
Mockito.verify(notificationController).notifyIdea(eq(idea), eq(IdeaEvent.Event.PARTNER_ACCEPT), any(NotificationSource.class));

@ -6,7 +6,7 @@ import com.google.inject.Module;
import com.google.inject.name.Names;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.mockito.junit.MockitoJUnitRunner;
import se.su.dsv.scipro.activityplan.ActivityPlanFacade;
import se.su.dsv.scipro.date.DateService;
import se.su.dsv.scipro.generalsystemsettings.GeneralSystemSettingsService;

@ -6,14 +6,14 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.mockito.junit.MockitoJUnitRunner;
import se.su.dsv.scipro.notifications.NotificationController;
import se.su.dsv.scipro.notifications.dataobject.IdeaEvent;
import se.su.dsv.scipro.notifications.dataobject.NotificationSource;
import se.su.dsv.scipro.notifications.dataobject.ProjectEvent;
import static org.mockito.Matchers.eq;
import static org.mockito.Matchers.isA;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.ArgumentMatchers.isA;
import static org.mockito.Mockito.verify;
@RunWith(MockitoJUnitRunner.class)

@ -0,0 +1,245 @@
package se.su.dsv.scipro.milestones.service;
import com.google.common.eventbus.EventBus;
import org.junit.runner.RunWith;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import se.su.dsv.scipro.finalseminar.*;
import se.su.dsv.scipro.milestones.dataobjects.MilestoneActivityTemplate;
import se.su.dsv.scipro.peer.FirstPeerReviewCompletedEvent;
import se.su.dsv.scipro.peer.PeerRequest;
import se.su.dsv.scipro.peer.PeerReview;
import se.su.dsv.scipro.peer.SecondPeerReviewCompletedEvent;
import se.su.dsv.scipro.project.Project;
import se.su.dsv.scipro.report.GradingReport;
import se.su.dsv.scipro.report.ReviewerGradingReportSubmittedEvent;
import se.su.dsv.scipro.report.SupervisorGradingReport;
import se.su.dsv.scipro.report.SupervisorGradingReportSubmittedEvent;
import se.su.dsv.scipro.system.User;
import static org.mockito.ArgumentMatchers.*;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import static se.su.dsv.scipro.test.ObjectMother.SOME_PROJECT;
import static se.su.dsv.scipro.test.ObjectMother.SOME_USER;
@RunWith(MockitoJUnitRunner.class)
public class MilestoneActivatorTest {
@Mock
private MileStoneService mileStoneService;
@Mock
private MilestoneActivityTemplateService milestoneActivityTemplateService;
@Mock
private EventBus eventBus;
private MilestoneActivator milestoneActivator;
private FinalSeminarOpposition opposition;
private FinalSeminarRespondent respondent;
private FinalSeminarActiveParticipation participation;
private PeerReview peerReview;
private GradingReport gradingReport;
@Before
public void setUp() {
opposition = createOpposition();
respondent = createRespondent();
participation = createParticipation();
peerReview = createPeerReview();
gradingReport = createGradingReport();
milestoneActivator = new MilestoneActivator(milestoneActivityTemplateService, mileStoneService, eventBus);
}
@Test
public void registers_itself_with_the_event_bus() {
verify(eventBus).register(milestoneActivator);
}
@Test
public void activates_milestone_for_opposition_approved_if_there_is_one() {
OppositionApprovedEvent event = new OppositionApprovedEvent(opposition);
MilestoneActivityTemplate milestoneActivityTemplate = mockMilestoneForEvent();
milestoneActivator.oppositionApproved(event);
verifyIndividualMilestoneActivated(event.getProject(), event.getStudent(), milestoneActivityTemplate);
}
@Test
public void does_nothing_if_no_milestone_for_the_opposition_approved_event() {
milestoneActivator.oppositionApproved(new OppositionApprovedEvent(opposition));
verify(mileStoneService, never()).setConfirmed(any(Project.class), any(User.class), any(MilestoneActivityTemplate.class), anyBoolean());
}
@Test
public void activates_milestone_for_participation_approved_events() {
ParticipationApprovedEvent event = new ParticipationApprovedEvent(participation);
MilestoneActivityTemplate milestoneActivityTemplate = mockMilestoneForEvent();
milestoneActivator.participationApproved(event);
verifyIndividualMilestoneActivated(event.getProject(), event.getStudent(), milestoneActivityTemplate);
}
@Test
public void activates_milestone_for_respondent_approved_events() {
RespondentApprovedEvent event = new RespondentApprovedEvent(respondent);
MilestoneActivityTemplate milestoneActivityTemplate = mockMilestoneForEvent();
milestoneActivator.respondentApproved(event);
verifyIndividualMilestoneActivated(event.getProject(), event.getStudent(), milestoneActivityTemplate);
}
@Ignore
@Test
public void deactivates_milestone_when_opposition_is_failed() {
OppositionFailedEvent event = new OppositionFailedEvent(opposition);
MilestoneActivityTemplate milestoneActivityTemplate = mockMilestoneForEvent();
milestoneActivator.oppositionFailed(event);
verifyMilestoneDeactivated(event.getProject(), event.getStudent(), milestoneActivityTemplate);
}
@Test
public void deactivates_milestone_when_respondent_is_failed() {
RespondentFailedEvent event = new RespondentFailedEvent(respondent);
MilestoneActivityTemplate milestoneActivityTemplate = mockMilestoneForEvent();
milestoneActivator.respondentFailed(event);
verifyMilestoneDeactivated(event.getProject(), event.getStudent(), milestoneActivityTemplate);
}
@Ignore
@Test
public void deactivates_milestone_when_participation_is_failed() {
ParticipationFailedEvent event = new ParticipationFailedEvent(participation);
MilestoneActivityTemplate milestoneActivityTemplate = mockMilestoneForEvent();
milestoneActivator.participationFailed(event);
verifyMilestoneDeactivated(event.getProject(), event.getStudent(), milestoneActivityTemplate);
}
@Test
public void activates_milestone_when_peer_review_event_is_submitted() {
FirstPeerReviewCompletedEvent event = new FirstPeerReviewCompletedEvent(peerReview);
MilestoneActivityTemplate milestoneActivityTemplate = mockMilestoneForEvent();
milestoneActivator.peerReviewCompleted(event);
verifyIndividualMilestoneActivated(event.getProject(), event.getStudent(), milestoneActivityTemplate);
}
@Test
public void activates_milestone_when_second_peer_review_event_is_submitted() {
SecondPeerReviewCompletedEvent event = new SecondPeerReviewCompletedEvent(peerReview);
MilestoneActivityTemplate milestoneActivityTemplate = mockMilestoneForEvent();
milestoneActivator.secondPeerReviewCompleted(event);
verifyIndividualMilestoneActivated(event.getProject(), event.getStudent(), milestoneActivityTemplate);
}
@Test
public void activates_milestone_when_thesis_uploaded() {
FinalSeminar seminar = new FinalSeminar();
seminar.setProject(SOME_PROJECT);
FinalSeminarThesisUploadedEvent event = new FinalSeminarThesisUploadedEvent(seminar);
MilestoneActivityTemplate activity = mockMilestoneForEvent();
milestoneActivator.seminarThesisUploaded(event);
verifyProjectMilestoneActivated(activity);
}
@Test
public void activates_milestone_when_final_seminar_created() {
FinalSeminar seminar = new FinalSeminar();
seminar.setProject(SOME_PROJECT);
FinalSeminarCreatedEvent event = new FinalSeminarCreatedEvent(seminar);
MilestoneActivityTemplate activity = mockMilestoneForEvent();
milestoneActivator.finalSeminarCreated(event);
verifyProjectMilestoneActivated(activity);
}
@Test
public void activates_milestone_when_supervisor_submits_grading_report() {
SupervisorGradingReport supervisorGradingReport = mock(SupervisorGradingReport.class);
when(supervisorGradingReport.getProject()).thenReturn(SOME_PROJECT);
when(supervisorGradingReport.getUser()).thenReturn(SOME_USER);
SupervisorGradingReportSubmittedEvent event = new SupervisorGradingReportSubmittedEvent(supervisorGradingReport);
MilestoneActivityTemplate activity = mockMilestoneForEvent();
milestoneActivator.supervisorGradingReportSubmitted(event);
verifyIndividualMilestoneConfirmed(SOME_PROJECT, SOME_USER, activity, true);
}
@Test
public void deactivates_milestone_when_final_seminar_deleted() {
FinalSeminar seminar = new FinalSeminar();
seminar.setProject(SOME_PROJECT);
FinalSeminarDeletedEvent event = new FinalSeminarDeletedEvent(seminar);
MilestoneActivityTemplate activity = mockMilestoneForEvent();
milestoneActivator.finalSeminarDeleted(event);
verifyProjectMilestoneDeactivated(activity);
}
@Test
public void activates_milestone_when_reviewer_submits_grading_report() {
ReviewerGradingReportSubmittedEvent event = new ReviewerGradingReportSubmittedEvent(gradingReport);
MilestoneActivityTemplate activity = mockMilestoneForEvent();
milestoneActivator.reviewerGradingReportSubmitted(event);
verifyProjectMilestoneActivated(activity);
}
private void verifyIndividualMilestoneActivated(Project project, User student, MilestoneActivityTemplate milestoneActivityTemplate) {
verifyIndividualMilestoneConfirmed(project, student, milestoneActivityTemplate, true);
}
private void verifyMilestoneDeactivated(Project project, User student, MilestoneActivityTemplate milestoneActivityTemplate) {
verifyIndividualMilestoneConfirmed(project, student, milestoneActivityTemplate, false);
}
private void verifyIndividualMilestoneConfirmed(Project project, User student, MilestoneActivityTemplate milestoneActivityTemplate, boolean activated) {
verify(mileStoneService).setConfirmed(eq(project), eq(student), eq(milestoneActivityTemplate), eq(activated));
}
private void verifyProjectMilestoneActivated(MilestoneActivityTemplate activity) {
verify(mileStoneService).setConfirmed(eq(SOME_PROJECT), eq(activity), eq(true));
}
private void verifyProjectMilestoneDeactivated(MilestoneActivityTemplate activity) {
verify(mileStoneService).setConfirmed(eq(SOME_PROJECT), eq(activity), eq(false));
}
private FinalSeminarRespondent createRespondent() {
FinalSeminar finalSeminar = new FinalSeminar();
finalSeminar.setProject(SOME_PROJECT);
return new FinalSeminarRespondent(SOME_USER, finalSeminar);
}
private FinalSeminarActiveParticipation createParticipation() {
FinalSeminarActiveParticipation finalSeminarActiveParticipation = new FinalSeminarActiveParticipation();
finalSeminarActiveParticipation.setUser(SOME_USER);
finalSeminarActiveParticipation.setProject(SOME_PROJECT);
return finalSeminarActiveParticipation;
}
private FinalSeminarOpposition createOpposition() {
FinalSeminarOpposition finalSeminarOpposition = new FinalSeminarOpposition();
finalSeminarOpposition.setProject(SOME_PROJECT);
finalSeminarOpposition.setUser(SOME_USER);
return finalSeminarOpposition;
}
private MilestoneActivityTemplate mockMilestoneForEvent() {
MilestoneActivityTemplate milestoneActivityTemplate = new MilestoneActivityTemplate();
when(milestoneActivityTemplateService.findByEvent(any())).thenReturn(milestoneActivityTemplate);
return milestoneActivityTemplate;
}
private PeerReview createPeerReview() {
PeerReview peerReview = new PeerReview();
peerReview.setProject(SOME_PROJECT);
peerReview.setReviewer(SOME_USER);
peerReview.setPeerRequest(new PeerRequest());
return peerReview;
}
private GradingReport createGradingReport() {
GradingReport mock = mock(GradingReport.class);
when(mock.getProject()).thenReturn(SOME_PROJECT);
return mock;
}
}

@ -9,7 +9,7 @@ import org.mockito.ArgumentCaptor;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.runners.MockitoJUnitRunner;
import org.mockito.junit.MockitoJUnitRunner;
import org.mockito.stubbing.Answer;
import se.su.dsv.scipro.milestones.MilestoneActivityTemplateRepository;
import se.su.dsv.scipro.milestones.dataobjects.MilestoneActivityTemplate;
@ -68,10 +68,8 @@ public class MilestoneActivityTemplateServiceImplTest {
MilestoneActivityTemplate projectActivity = createActivity(MilestoneActivityTemplate.Type.PROJECT, "Project milestone", "This is it..", 0);
MilestoneActivityTemplate projectActivity2 = createActivity(MilestoneActivityTemplate.Type.PROJECT, "Project milestone", "This is it..", 1);
projectActivity2.setDeleted(true);
List<MilestoneActivityTemplate> activeList = Collections.singletonList(projectActivity);
List<MilestoneActivityTemplate> listOfAll = Arrays.asList(projectActivity, projectActivity2);
when(milestoneActivityTemplateRepository.findActivities(eq(MilestoneActivityTemplate.Type.PROJECT), isA(ProjectType.class), eq(date))).thenReturn(activeList);
when(milestoneActivityTemplateRepository.findAllActivitiesByProjectType(eq(MilestoneActivityTemplate.Type.PROJECT), eq(Collections.singletonList(projectType)))).thenReturn(listOfAll);
List<ProjectType> projectTypes = new ArrayList<>();

@ -5,10 +5,10 @@ import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Matchers;
import org.mockito.ArgumentMatchers;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.runners.MockitoJUnitRunner;
import org.mockito.junit.MockitoJUnitRunner;
import se.su.dsv.scipro.nonworkperiod.NonWorkDayPeriodService;
import java.util.Date;
@ -47,7 +47,7 @@ public class DaysServiceImplTest {
then(2013, 2, dayOfMonth - 7);
// when
Mockito.when(nonWorkDays.isNonWorkDay(Matchers.isA(Date.class))).thenReturn(false);
Mockito.when(nonWorkDays.isNonWorkDay(ArgumentMatchers.isA(Date.class))).thenReturn(false);
// then
Date ahead = service.workDaysAhead(now(), 5);
@ -74,7 +74,7 @@ public class DaysServiceImplTest {
then(2013, 4, 9);
// when
Mockito.when(nonWorkDays.isNonWorkDay(Matchers.isA(Date.class))).thenReturn(true, false);
Mockito.when(nonWorkDays.isNonWorkDay(ArgumentMatchers.isA(Date.class))).thenReturn(true, false);
// then
Date ahead = service.workDaysAhead(now(), 1);
@ -89,8 +89,8 @@ public class DaysServiceImplTest {
then(2013, 4, 26);
// when
Mockito.when(nonWorkDays.isNonWorkDay(Matchers.isA(Date.class))).thenReturn(false);
Mockito.when(nonWorkDays.isNonWorkDay(Matchers.eq(now.minusDays(1).toDate()))).thenReturn(true);
Mockito.when(nonWorkDays.isNonWorkDay(ArgumentMatchers.isA(Date.class))).thenReturn(false);
Mockito.when(nonWorkDays.isNonWorkDay(ArgumentMatchers.eq(now.minusDays(1).toDate()))).thenReturn(true);
// then
Date ahead = service.workDaysAhead(now(), 1);
@ -105,8 +105,8 @@ public class DaysServiceImplTest {
then(2013, 4, 26);
// when
Mockito.when(nonWorkDays.isNonWorkDay(Matchers.isA(Date.class))).thenReturn(true);
Mockito.when(nonWorkDays.isNonWorkDay(Matchers.eq(now.minusDays(4).toDate()))).thenReturn(false);
Mockito.when(nonWorkDays.isNonWorkDay(ArgumentMatchers.isA(Date.class))).thenReturn(true);
Mockito.when(nonWorkDays.isNonWorkDay(ArgumentMatchers.eq(now.minusDays(4).toDate()))).thenReturn(false);
// then
Date ahead = service.workDaysAhead(now(), 1);

@ -5,7 +5,7 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.mockito.junit.MockitoJUnitRunner;
import se.su.dsv.scipro.notifications.dataobject.NotificationSource;
import se.su.dsv.scipro.notifications.dataobject.ProjectEvent;
import se.su.dsv.scipro.project.Project;
@ -16,8 +16,8 @@ import se.su.dsv.scipro.report.ReviewerGradingReportSubmittedEvent;
import se.su.dsv.scipro.system.DegreeType;
import se.su.dsv.scipro.system.ProjectType;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.eq;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.verify;
@RunWith(MockitoJUnitRunner.class)

@ -0,0 +1,54 @@
package se.su.dsv.scipro.notifications;
import org.junit.runner.RunWith;
import org.junit.Before;
import org.junit.Test;
import org.mockito.junit.MockitoJUnitRunner;
import org.mockito.Mock;
import se.su.dsv.scipro.notifications.dataobject.NotificationSource;
import se.su.dsv.scipro.notifications.dataobject.ProjectEvent;
import se.su.dsv.scipro.project.Project;
import se.su.dsv.scipro.report.GradingReportTemplate;
import se.su.dsv.scipro.report.ReviewerGradingReport;
import se.su.dsv.scipro.report.ReviewerGradingReportInitialAssessmentDoneEvent;
import se.su.dsv.scipro.report.SupervisorGradingReport;
import se.su.dsv.scipro.report.SupervisorGradingReportInitialAssessmentDoneEvent;
import se.su.dsv.scipro.system.DegreeType;
import se.su.dsv.scipro.system.ProjectType;
import se.su.dsv.scipro.system.User;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.ArgumentMatchers.isA;
import static org.mockito.Mockito.verify;
@RunWith(MockitoJUnitRunner.class)
public class GradingReportNotificationsTest {
@Mock
NotificationController notificationController;
private GradingReportNotifications gradingNotifications;
public static final ProjectType bachelor = new ProjectType(DegreeType.BACHELOR, "Bachelor", "Bachelor");
public static final Project project = Project.builder().title("My project").projectType(bachelor).build();
public static final User author = User.builder().firstName("First").lastName("Author").emailAddress("first@example.com").build();
public static final GradingReportTemplate gradingReportTemplate = new GradingReportTemplate(bachelor, 15);
public static final SupervisorGradingReport supervisorGradingReport = gradingReportTemplate.createSupervisorReport(project, author);
public static final ReviewerGradingReport reviewerGradingReport = gradingReportTemplate.createReviewerReport(project);
@Before
public void setUp() {
gradingNotifications = () -> GradingReportNotificationsTest.this.notificationController;
}
@Test
public void sends_out_notification_when_supervisor_is_done_with_initial_assessment() {
gradingNotifications.supervisorDoneWithInitialAssessment(new SupervisorGradingReportInitialAssessmentDoneEvent(supervisorGradingReport));
verify(notificationController).notifyProject(eq(project), eq(ProjectEvent.Event.SUPERVISOR_GRADING_INITIAL_ASSESSMENT_DONE), isA(NotificationSource.class));
}
@Test
public void sends_out_notification_when_reviewer_is_done_with_initial_assessment() {
gradingNotifications.reviewerDoneWithInitialAssessment(new ReviewerGradingReportInitialAssessmentDoneEvent(reviewerGradingReport));
verify(notificationController).notifyProject(eq(project), eq(ProjectEvent.Event.REVIEWER_GRADING_INITIAL_ASSESSMENT_DONE), isA(NotificationSource.class));
}
}

@ -8,7 +8,8 @@ import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.mockito.hamcrest.MockitoHamcrest;
import org.mockito.junit.MockitoJUnitRunner;
import se.su.dsv.scipro.data.dataobjects.Member;
import se.su.dsv.scipro.finalseminar.FinalSeminar;
import se.su.dsv.scipro.group.Group;
@ -172,7 +173,7 @@ public class NotificationControllerImplTest {
// then
// there is only one supervisor, setting should be checked for every delivery method
verify(deliveryConfiguration, times(DeliveryMethod.values().length)).isDelivery(isA(Notification.Type.class), isA(Enum.class), isA(DeliveryMethod.class), argThat(isPresent(anything())));
verify(deliveryConfiguration, times(DeliveryMethod.values().length)).isDelivery(isA(Notification.Type.class), isA(Enum.class), isA(DeliveryMethod.class), MockitoHamcrest.argThat(isPresent(anything())));
}
private <A> Matcher<Optional<A>> isPresent(final Matcher<? super A> aMatcher) {

@ -8,7 +8,7 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.*;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.runners.MockitoJUnitRunner;
import org.mockito.junit.MockitoJUnitRunner;
import se.su.dsv.scipro.checklist.ChecklistTemplate;
import se.su.dsv.scipro.file.FileDescription;
import se.su.dsv.scipro.file.FileDescriptionService;
@ -56,7 +56,7 @@ public class PeerPortalImplTest {
@Before
public void setUp() throws Exception {
when(peerRequestRepository.save(Matchers.isA(PeerRequest.class))).thenAnswer(new org.mockito.stubbing.Answer<PeerRequest>() {
when(peerRequestRepository.save(ArgumentMatchers.isA(PeerRequest.class))).thenAnswer(new org.mockito.stubbing.Answer<PeerRequest>() {
@Override
public PeerRequest answer(InvocationOnMock invocation) {
PeerRequest peerRequest = (PeerRequest) invocation.getArguments()[0];
@ -64,7 +64,7 @@ public class PeerPortalImplTest {
return peerRequest;
}
});
when(peerReviewRepository.save(Matchers.isA(PeerReview.class))).thenAnswer(new org.mockito.stubbing.Answer<PeerReview>() {
when(peerReviewRepository.save(ArgumentMatchers.isA(PeerReview.class))).thenAnswer(new org.mockito.stubbing.Answer<PeerReview>() {
@Override
public PeerReview answer(InvocationOnMock invocation) {
return (PeerReview) invocation.getArguments()[0];
@ -123,7 +123,7 @@ public class PeerPortalImplTest {
peerPortalController.submit(createInTimeReview(), Optional.empty());
Mockito.verify(eventBus).post(Matchers.isA(FirstPeerReviewCompletedEvent.class));
Mockito.verify(eventBus).post(ArgumentMatchers.isA(FirstPeerReviewCompletedEvent.class));
}
@Test
@ -132,7 +132,7 @@ public class PeerPortalImplTest {
peerPortalController.submit(createInTimeReview(), Optional.empty());
Mockito.verify(eventBus).post(Matchers.isA(SecondPeerReviewCompletedEvent.class));
Mockito.verify(eventBus).post(ArgumentMatchers.isA(SecondPeerReviewCompletedEvent.class));
}
@Test

@ -7,7 +7,7 @@ import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.runners.MockitoJUnitRunner;
import org.mockito.junit.MockitoJUnitRunner;
import org.mockito.stubbing.Answer;
import se.su.dsv.scipro.system.DegreeType;
import se.su.dsv.scipro.system.ProjectType;

Some files were not shown because too many files have changed in this diff Show More