package de.flower.rmt.service;
import de.flower.rmt.model.db.entity.Invitation;
import de.flower.rmt.model.db.entity.Player;
import de.flower.rmt.model.db.entity.event.Event;
import de.flower.rmt.model.db.type.RSVPStatus;
import de.flower.rmt.test.AbstractRMTIntegrationTests;
import org.testng.annotations.Test;
import java.util.List;
import static org.testng.Assert.*;
/**
* @author flowerrrr
*/
public class ResponseManagerTest extends AbstractRMTIntegrationTests {
@Test
public void testFindResponder() {
Event event = testData.createEvent();
List<Player> players = event.getTeam().getPlayers();
assertTrue(invitationManager.findAllByEventAndStatus(event, RSVPStatus.ACCEPTED).isEmpty());
Invitation invitation = responseManager.respond(event.getId(), players.get(0).getUser().getId(), RSVPStatus.ACCEPTED);
List<Invitation> invitations = invitationManager.findAllByEventAndStatus(event, RSVPStatus.ACCEPTED);
assertEquals(invitation, invitations.get(0));
assertEquals((long) invitationManager.numByEventAndStatus(event, RSVPStatus.ACCEPTED), invitations.size());
responseManager.respond(event.getId(), players.get(1).getUser().getId(), RSVPStatus.ACCEPTED);
invitations = invitationManager.findAllByEventAndStatus(event, RSVPStatus.ACCEPTED);
assertTrue(invitations.size() == 2);
assertEquals((long) invitationManager.numByEventAndStatus(event, RSVPStatus.ACCEPTED), invitations.size());
}
@Test
public void testRespond() {
Event event = testData.createEvent();
Player player = event.getTeam().getPlayers().get(0);
RSVPStatus status = RSVPStatus.ACCEPTED;
// first initial invitation
Invitation invitation = responseManager.respond(event.getId(), player.getUser().getId(), status);
assertEquals(invitation.getStatus(), status);
// update invitation for player
status = RSVPStatus.DECLINED;
invitation = responseManager.respond(event.getId(), player.getUser().getId(), status);
assertEquals(invitation.getStatus(), status);
}
}