2020-10-01 17:08:10 +02:00
|
|
|
package com.plannaplan.services;
|
|
|
|
|
2020-10-02 17:55:42 +02:00
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
2020-10-01 17:08:10 +02:00
|
|
|
import org.springframework.boot.test.context.SpringBootTest;
|
|
|
|
import org.springframework.test.context.ContextConfiguration;
|
|
|
|
import org.springframework.test.context.junit4.SpringRunner;
|
|
|
|
|
|
|
|
import static org.junit.Assert.assertTrue;
|
|
|
|
|
2020-11-14 16:52:22 +01:00
|
|
|
import com.plannaplan.entities.Assignment;
|
2020-10-02 17:55:42 +02:00
|
|
|
import com.plannaplan.entities.Commision;
|
|
|
|
import com.plannaplan.entities.User;
|
2020-11-14 16:52:22 +01:00
|
|
|
import com.plannaplan.types.UserRoles;
|
2020-10-02 17:55:42 +02:00
|
|
|
|
2020-10-01 17:08:10 +02:00
|
|
|
import org.junit.Test;
|
|
|
|
import org.junit.runner.RunWith;
|
|
|
|
|
|
|
|
@RunWith(SpringRunner.class)
|
|
|
|
@SpringBootTest
|
|
|
|
@ContextConfiguration
|
|
|
|
public class CommisionServiceTest {
|
|
|
|
|
2020-10-02 17:55:42 +02:00
|
|
|
@Autowired
|
|
|
|
private CommisionService service;
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
private UserService userService;
|
2020-10-01 17:08:10 +02:00
|
|
|
|
2020-11-14 16:52:22 +01:00
|
|
|
@Autowired
|
|
|
|
private AssignmentService assignmentService;
|
|
|
|
|
2020-10-01 17:08:10 +02:00
|
|
|
@Test
|
|
|
|
public void shouldSaveCommision() {
|
2020-11-14 16:52:22 +01:00
|
|
|
User usr = new User();
|
|
|
|
this.userService.save(usr);
|
2020-10-02 17:55:42 +02:00
|
|
|
long beginState = this.service.getCommisionsAmmount();
|
2020-11-14 16:52:22 +01:00
|
|
|
this.service.save(new Commision(usr));
|
2020-10-02 17:55:42 +02:00
|
|
|
assertTrue("Commision ammount should have changed", this.service.getCommisionsAmmount() > beginState);
|
2020-10-01 17:08:10 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
@Test
|
|
|
|
public void shouldGetUserCommisions() {
|
2020-10-02 17:55:42 +02:00
|
|
|
User usr = new User();
|
|
|
|
this.userService.save(usr);
|
|
|
|
this.service.save(new Commision(usr));
|
|
|
|
|
|
|
|
assertTrue("User should have one commision", this.service.getUsersCommisions(usr).size() == 1);
|
2020-10-01 17:08:10 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
@Test
|
2020-10-02 17:55:42 +02:00
|
|
|
public void shouldGetNewestCommision() throws NullPointerException, InterruptedException {
|
|
|
|
User usr = new User();
|
|
|
|
this.userService.save(usr);
|
|
|
|
this.service.save(new Commision(usr));
|
|
|
|
|
|
|
|
Thread.sleep(2000);
|
|
|
|
|
|
|
|
final Commision newestCommision = new Commision(usr);
|
|
|
|
this.service.save(newestCommision);
|
|
|
|
|
|
|
|
final Commision result = this.service.getNewestCommision(usr)
|
|
|
|
.orElseThrow(() -> new NullPointerException("There was no commision"));
|
|
|
|
|
2020-10-02 18:01:51 +02:00
|
|
|
assertTrue("Wrong commision was returned", result.getId().equals(newestCommision.getId()));
|
2020-10-01 17:08:10 +02:00
|
|
|
}
|
|
|
|
|
2020-11-14 16:52:22 +01:00
|
|
|
@Test
|
|
|
|
public void shouldMarkAssignmentsOfPreviousCommisionPast() {
|
|
|
|
final User usr = new User("Trevor", "Hammolt",
|
|
|
|
"shouldMarkAssignmentsOfPreviousCommisionPast@commisionservice.test", UserRoles.STUDENT);
|
|
|
|
this.userService.save(usr);
|
|
|
|
|
|
|
|
final Commision firstCommision = new Commision(usr);
|
|
|
|
this.service.save(firstCommision);
|
|
|
|
|
|
|
|
Assignment firstCommisionAssignment = this.assignmentService.save(new Assignment(null, firstCommision));
|
|
|
|
|
|
|
|
assertTrue("FirstCommisionAssignment should be flaged as present assignment",
|
|
|
|
!firstCommisionAssignment.isPastAssignment());
|
|
|
|
|
|
|
|
final Commision secondCommision = new Commision(usr);
|
|
|
|
this.service.save(secondCommision);
|
|
|
|
|
|
|
|
Assignment secondCommisionAssignment = new Assignment(null, secondCommision);
|
|
|
|
this.assignmentService.save(secondCommisionAssignment);
|
|
|
|
|
|
|
|
assertTrue("SecondCommisionAssignment should be flaged as present assignment",
|
|
|
|
!secondCommisionAssignment.isPastAssignment());
|
|
|
|
assertTrue("FirstCommisionAssignment should be flaged as past assignment",
|
|
|
|
this.assignmentService.getById(firstCommisionAssignment.getId()).get().isPastAssignment());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
2020-10-01 17:08:10 +02:00
|
|
|
}
|