49 lines
1.7 KiB
Java
49 lines
1.7 KiB
Java
package mops.gruppen2.domain.event;
|
|
|
|
import mops.gruppen2.domain.exception.BadArgumentException;
|
|
import mops.gruppen2.domain.model.group.Group;
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
import static mops.gruppen2.TestBuilder.addUserEvent;
|
|
import static mops.gruppen2.TestBuilder.apply;
|
|
import static mops.gruppen2.TestBuilder.createPublicGroupEvent;
|
|
import static mops.gruppen2.TestBuilder.uuidMock;
|
|
import static org.junit.jupiter.api.Assertions.assertThrows;
|
|
|
|
class SetLimitEventTest {
|
|
|
|
@Test
|
|
void applyEvent() {
|
|
Event createEvent = createPublicGroupEvent(uuidMock(0));
|
|
Event updateEvent = new SetLimitEvent(uuidMock(0), "A", 5L);
|
|
|
|
Group group = apply(createEvent, updateEvent);
|
|
|
|
assertThat(group.getLimit()).isEqualTo(5);
|
|
}
|
|
|
|
@Test
|
|
void applyEvent_badParameter_negative() {
|
|
Event createEvent = createPublicGroupEvent(uuidMock(0));
|
|
Event updateEvent = new SetLimitEvent(uuidMock(0), "A", -5L);
|
|
|
|
Group group = apply(createEvent);
|
|
|
|
assertThrows(BadArgumentException.class, () -> updateEvent.apply(group));
|
|
}
|
|
|
|
@Test
|
|
void applyEvent_badParameter_tooSmall() {
|
|
Event createEvent = createPublicGroupEvent(uuidMock(0));
|
|
Event updateEventA = new SetLimitEvent(uuidMock(0), "A", 5L);
|
|
Event addEventA = addUserEvent(uuidMock(0));
|
|
Event addEventB = addUserEvent(uuidMock(0));
|
|
Event addEventC = addUserEvent(uuidMock(0));
|
|
Event updateEventB = new SetLimitEvent(uuidMock(0), "A", 2L);
|
|
|
|
Group group = apply(createEvent, updateEventA, addEventA, addEventB, addEventC);
|
|
|
|
assertThrows(BadArgumentException.class, () -> updateEventB.apply(group));
|
|
}
|
|
}
|