searchservice test
This commit is contained in:
@ -0,0 +1,116 @@
|
|||||||
|
package mops.gruppen2.domain.service;
|
||||||
|
|
||||||
|
import mops.gruppen2.GroupBuilder;
|
||||||
|
import mops.gruppen2.domain.model.group.Group;
|
||||||
|
import mops.gruppen2.domain.model.group.Type;
|
||||||
|
import mops.gruppen2.infrastructure.GroupCache;
|
||||||
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
import static org.mockito.Mockito.mock;
|
||||||
|
|
||||||
|
class SearchServiceTest {
|
||||||
|
|
||||||
|
GroupCache groupCache;
|
||||||
|
SearchService searchService;
|
||||||
|
|
||||||
|
@BeforeEach
|
||||||
|
void setUp() {
|
||||||
|
groupCache = new GroupCache(mock(EventStoreService.class));
|
||||||
|
searchService = new SearchService(groupCache);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void searchString_noResult() {
|
||||||
|
assertThat(searchService.searchString("", "TEST")).isEmpty();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void searchString_noResult_onePrivate_emptyString() {
|
||||||
|
GroupBuilder.get(groupCache, 1).group();
|
||||||
|
|
||||||
|
assertThat(searchService.searchString("", "TEST")).isEmpty();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void searchString_noResult_onePublic_emptyString_principalMember() {
|
||||||
|
GroupBuilder.get(groupCache, 1).group().testadmin().publik();
|
||||||
|
|
||||||
|
assertThat(searchService.searchString("", "TEST")).isEmpty();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void searchString_oneResult_onePublic_emptyString_principalNoMember() {
|
||||||
|
GroupBuilder.get(groupCache, 1).group().testadmin().publik();
|
||||||
|
|
||||||
|
assertThat(searchService.searchString("", "PETER")).hasSize(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void searchString_oneResult_multiple_emptyString() {
|
||||||
|
Group groupA = GroupBuilder.get(groupCache, 1).group().testadmin().lecture().build();
|
||||||
|
GroupBuilder.get(groupCache, 2).group().testadmin().publik().limit(2).add("PETER");
|
||||||
|
GroupBuilder.get(groupCache, 3).group().testadmin().publik().limit(2).add("PETER");
|
||||||
|
GroupBuilder.get(groupCache, 4).group().testadmin().privat();
|
||||||
|
|
||||||
|
assertThat(searchService.searchString("", "PETER")).containsExactly(groupA);
|
||||||
|
assertThat(searchService.searchString("", "TEST")).isEmpty();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void searchString_noPrivates() {
|
||||||
|
Group groupA = GroupBuilder.get(groupCache, 1).group().testadmin().lecture().build();
|
||||||
|
Group groupB = GroupBuilder.get(groupCache, 2).group().testadmin().publik().limit(2).add("PETER").build();
|
||||||
|
Group groupC = GroupBuilder.get(groupCache, 3).group().testadmin().publik().limit(2).add("PETER").build();
|
||||||
|
GroupBuilder.get(groupCache, 4).group().testadmin().privat();
|
||||||
|
GroupBuilder.get(groupCache, 5).group().testadmin().privat();
|
||||||
|
GroupBuilder.get(groupCache, 6).group().testadmin().privat();
|
||||||
|
|
||||||
|
assertThat(searchService.searchString("", "PETER")).containsExactly(groupA);
|
||||||
|
assertThat(searchService.searchString("", "PRRR")).containsOnly(groupA, groupB, groupC);
|
||||||
|
assertThat(searchService.searchString("", "TEST")).isEmpty();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void searchString_matchString_title() {
|
||||||
|
Group groupA = GroupBuilder.get(groupCache, 1).group().testadmin().lecture().title("A").build();
|
||||||
|
Group groupB = GroupBuilder.get(groupCache, 2).group().testadmin().lecture().title("B").build();
|
||||||
|
Group groupC = GroupBuilder.get(groupCache, 3).group().testadmin().lecture().title("C").build();
|
||||||
|
Group groupD = GroupBuilder.get(groupCache, 4).group().testadmin().lecture().title("CAESAR").build();
|
||||||
|
|
||||||
|
assertThat(searchService.searchString("C", "PETER")).containsExactly(groupC, groupD);
|
||||||
|
assertThat(searchService.searchString("C", "TEST")).isEmpty();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void searchString_matchString_desc() {
|
||||||
|
Group groupA = GroupBuilder.get(groupCache, 1).group().testadmin().lecture().desc("A").build();
|
||||||
|
Group groupB = GroupBuilder.get(groupCache, 2).group().testadmin().lecture().desc("B").build();
|
||||||
|
Group groupC = GroupBuilder.get(groupCache, 3).group().testadmin().lecture().desc("C").build();
|
||||||
|
Group groupD = GroupBuilder.get(groupCache, 4).group().testadmin().lecture().desc("CAESAR").build();
|
||||||
|
|
||||||
|
assertThat(searchService.searchString("C", "PETER")).containsExactly(groupC, groupD);
|
||||||
|
assertThat(searchService.searchString("C", "TEST")).isEmpty();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void searchType_noGroup() {
|
||||||
|
assertThat(searchService.searchType(Type.LECTURE, "PETER")).isEmpty();
|
||||||
|
assertThat(searchService.searchType(Type.PUBLIC, "PETER")).isEmpty();
|
||||||
|
assertThat(searchService.searchType(Type.PRIVATE, "PETER")).isEmpty();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void searchType_noPrivates() {
|
||||||
|
GroupBuilder.get(groupCache, 1).group().testadmin().lecture();
|
||||||
|
GroupBuilder.get(groupCache, 2).group().testadmin().publik();
|
||||||
|
GroupBuilder.get(groupCache, 3).group().testadmin().privat();
|
||||||
|
GroupBuilder.get(groupCache, 4).group().testadmin().privat();
|
||||||
|
GroupBuilder.get(groupCache, 5).group().testadmin().lecture();
|
||||||
|
|
||||||
|
assertThat(searchService.searchType(Type.LECTURE, "PETER")).hasSize(2);
|
||||||
|
assertThat(searchService.searchType(Type.PUBLIC, "PETER")).hasSize(1);
|
||||||
|
assertThat(searchService.searchType(Type.PRIVATE, "PETER")).isEmpty();
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user