4 |
4 |
import cz.zcu.kiv.backendapi.bibliography.Bibliography;
|
5 |
5 |
import cz.zcu.kiv.backendapi.country.Country;
|
6 |
6 |
import cz.zcu.kiv.backendapi.exception.ApiRequestException;
|
|
7 |
import cz.zcu.kiv.backendapi.path.PathDto;
|
7 |
8 |
import cz.zcu.kiv.backendapi.type.Type;
|
8 |
9 |
import cz.zcu.kiv.backendapi.type.TypeServiceImpl;
|
9 |
10 |
import cz.zcu.kiv.backendapi.writtenform.WrittenForm;
|
10 |
11 |
import org.junit.jupiter.api.BeforeEach;
|
11 |
12 |
import org.junit.jupiter.api.Test;
|
12 |
13 |
import org.junit.jupiter.api.extension.ExtendWith;
|
13 |
|
import org.mockito.*;
|
|
14 |
import org.mockito.ArgumentCaptor;
|
|
15 |
import org.mockito.Mock;
|
14 |
16 |
import org.mockito.junit.jupiter.MockitoExtension;
|
15 |
17 |
|
16 |
|
import java.util.List;
|
17 |
|
import java.util.Optional;
|
18 |
|
import java.util.Set;
|
19 |
|
import java.util.UUID;
|
|
18 |
import java.util.*;
|
|
19 |
import java.util.stream.Collectors;
|
|
20 |
import java.util.stream.Stream;
|
20 |
21 |
|
21 |
22 |
import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
|
22 |
23 |
import static org.assertj.core.api.AssertionsForClassTypes.assertThatThrownBy;
|
... | ... | |
128 |
129 |
|
129 |
130 |
}
|
130 |
131 |
|
|
132 |
@Test
|
|
133 |
void testCanGetCatalogItem() {
|
|
134 |
// given
|
|
135 |
UUID id = UUID.randomUUID();
|
|
136 |
CatalogItem catalogItem = new CatalogItem();
|
|
137 |
catalogItem.setId(id);
|
|
138 |
CatalogItemDto catalogItemDto = new CatalogItemDto();
|
|
139 |
catalogItemDto.setId(id);
|
|
140 |
given(catalogItemRepository.findById(id)).willReturn(Optional.of(catalogItem));
|
|
141 |
|
|
142 |
// when
|
|
143 |
CatalogItemDto retrievedItemDto = underTest.getCatalogItem(id);
|
|
144 |
|
|
145 |
// then
|
|
146 |
verify(catalogItemRepository).findById(id);
|
|
147 |
assertThat(retrievedItemDto).isEqualTo(catalogItemDto);
|
|
148 |
}
|
|
149 |
|
|
150 |
@Test
|
|
151 |
void testCanNotGetCatalogItem() {
|
|
152 |
// given
|
|
153 |
UUID id = UUID.randomUUID();
|
|
154 |
|
|
155 |
// when
|
|
156 |
// then
|
|
157 |
assertThatThrownBy(() -> underTest.getCatalogItem(id))
|
|
158 |
.isInstanceOf(ApiRequestException.class)
|
|
159 |
.hasMessageContaining("Catalog item not found");
|
|
160 |
|
|
161 |
verify(catalogItemRepository).findById(id);
|
|
162 |
}
|
|
163 |
|
131 |
164 |
@Test
|
132 |
165 |
void testCanUpdateCatalogItem() {
|
133 |
166 |
// given
|
... | ... | |
310 |
343 |
|
311 |
344 |
verify(catalogItemRepository).filterCatalog(nameChanged, countryChanged, typeChanged);
|
312 |
345 |
}
|
|
346 |
|
|
347 |
@Test
|
|
348 |
void testSearchedTest() {
|
|
349 |
// given
|
|
350 |
String text = "The city of Azbar was found in first century near the ocean. " +
|
|
351 |
"⌈U-re-me-re⌉, another town, was found " +
|
|
352 |
"in 1956. The location of Huga and Duga is not known, but it was probably near Puga.";
|
|
353 |
String highlightedText = "The <b>city</b> of <span style='color:green'>Azbar</span> was found in first century near the <b>ocean</b>. " +
|
|
354 |
"⌈<span style='color:green'>U-re-me-re</span>⌉, another town, was found " +
|
|
355 |
"in 1956. The location of <span style='color:red'>Huga</span> and <span style='color:red'>Duga</span> is not known, but it was probably near Puga.";
|
|
356 |
|
|
357 |
CatalogItem catalogItem1 = new CatalogItem();
|
|
358 |
catalogItem1.setAlternativeNames(Stream.of(new AlternativeName("Azbar", catalogItem1)).collect(Collectors.toSet()));
|
|
359 |
catalogItem1.setLatitude(5);
|
|
360 |
catalogItem1.setLongitude(5);
|
|
361 |
|
|
362 |
CatalogItem catalogItem2 = new CatalogItem();
|
|
363 |
catalogItem2.setAlternativeNames(Stream.of(new AlternativeName("Azbar", catalogItem2), new AlternativeName("Azbarasdf", catalogItem2)).collect(Collectors.toSet()));
|
|
364 |
catalogItem2.setLatitude(0.0);
|
|
365 |
catalogItem2.setLongitude(0.0);
|
|
366 |
|
|
367 |
CatalogItem catalogItem3 = new CatalogItem();
|
|
368 |
catalogItem3.setAlternativeNames(Stream.of(new AlternativeName("U-re-me-re", catalogItem3)).collect(Collectors.toSet()));
|
|
369 |
catalogItem3.setLatitude(55);
|
|
370 |
catalogItem3.setLongitude(68);
|
|
371 |
|
|
372 |
CatalogItem catalogItem4 = new CatalogItem();
|
|
373 |
catalogItem4.setAlternativeNames(Stream.of(new AlternativeName("Huga", catalogItem4)).collect(Collectors.toSet()));
|
|
374 |
catalogItem4.setLatitude(0.0);
|
|
375 |
catalogItem4.setLongitude(0.0);
|
|
376 |
|
|
377 |
CatalogItem catalogItem5 = new CatalogItem();
|
|
378 |
catalogItem5.setAlternativeNames(Stream.of(new AlternativeName("Huga", catalogItem5), new AlternativeName("Hugaa", catalogItem5)).collect(Collectors.toSet()));
|
|
379 |
catalogItem5.setLatitude(0.0);
|
|
380 |
catalogItem5.setLongitude(0.0);
|
|
381 |
|
|
382 |
CatalogItem catalogItem6 = new CatalogItem();
|
|
383 |
catalogItem6.setAlternativeNames(Stream.of(new AlternativeName("Duga", catalogItem6)).collect(Collectors.toSet()));
|
|
384 |
catalogItem6.setLatitude(0.0);
|
|
385 |
catalogItem6.setLongitude(0.0);
|
|
386 |
|
|
387 |
CatalogItemDto catalogItemDto1 = new CatalogItemDto();
|
|
388 |
catalogItemDto1.setAlternativeNames(Stream.of("Azbar").collect(Collectors.toSet()));
|
|
389 |
catalogItemDto1.setLatitude(5);
|
|
390 |
catalogItemDto1.setLongitude(5);
|
|
391 |
|
|
392 |
CatalogItemDto catalogItemDto2 = new CatalogItemDto();
|
|
393 |
catalogItemDto2.setAlternativeNames(Stream.of("Azbar", "Azbarasdf").collect(Collectors.toSet()));
|
|
394 |
catalogItemDto2.setLatitude(0.0);
|
|
395 |
catalogItemDto2.setLongitude(0.0);
|
|
396 |
|
|
397 |
CatalogItemDto catalogItemDto3 = new CatalogItemDto();
|
|
398 |
catalogItemDto3.setAlternativeNames(Stream.of("U-re-me-re").collect(Collectors.toSet()));
|
|
399 |
catalogItemDto3.setLatitude(55);
|
|
400 |
catalogItemDto3.setLongitude(68);
|
|
401 |
|
|
402 |
CatalogItemDto catalogItemDto4 = new CatalogItemDto();
|
|
403 |
catalogItemDto4.setAlternativeNames(Stream.of("Huga").collect(Collectors.toSet()));
|
|
404 |
catalogItemDto4.setLatitude(0.0);
|
|
405 |
catalogItemDto4.setLongitude(0.0);
|
|
406 |
|
|
407 |
CatalogItemDto catalogItemDto5 = new CatalogItemDto();
|
|
408 |
catalogItemDto5.setAlternativeNames(Stream.of("Huga", "Hugaa").collect(Collectors.toSet()));
|
|
409 |
catalogItemDto5.setLatitude(0.0);
|
|
410 |
catalogItemDto5.setLongitude(0.0);
|
|
411 |
|
|
412 |
CatalogItemDto catalogItemDto6 = new CatalogItemDto();
|
|
413 |
catalogItemDto6.setAlternativeNames(Stream.of("Duga").collect(Collectors.toSet()));
|
|
414 |
catalogItemDto6.setLatitude(0.0);
|
|
415 |
catalogItemDto6.setLongitude(0.0);
|
|
416 |
|
|
417 |
|
|
418 |
given(typeService.getAllTypesAsString()).willReturn(Stream.of("city", "ocean").collect(Collectors.toSet()));
|
|
419 |
given(catalogItemRepository.getItemsByName(anyString())).willReturn(Collections.emptyList());
|
|
420 |
given(catalogItemRepository.getItemsByName("Azbar")).willReturn(Stream.of(catalogItem1, catalogItem2).collect(Collectors.toList()));
|
|
421 |
given(catalogItemRepository.getItemsByName("U-re-me-re")).willReturn(Stream.of(catalogItem3).collect(Collectors.toList()));
|
|
422 |
given(catalogItemRepository.getItemsByName("Huga")).willReturn(Stream.of(catalogItem4, catalogItem5).collect(Collectors.toList()));
|
|
423 |
given(catalogItemRepository.getItemsByName("Duga")).willReturn(Stream.of(catalogItem6).collect(Collectors.toList()));
|
|
424 |
|
|
425 |
// when
|
|
426 |
PathDto pathDto = underTest.getPath(text);
|
|
427 |
|
|
428 |
// then
|
|
429 |
verify(catalogItemRepository).getItemsByName("Azbar");
|
|
430 |
verify(catalogItemRepository).getItemsByName("U-re-me-re");
|
|
431 |
verify(catalogItemRepository).getItemsByName("Huga");
|
|
432 |
verify(catalogItemRepository).getItemsByName("Duga");
|
|
433 |
verify(catalogItemRepository).getItemsByName("Puga");
|
|
434 |
|
|
435 |
assertThat(pathDto.getText()).isEqualTo(highlightedText);
|
|
436 |
|
|
437 |
assertThat(pathDto.getFoundCatalogItems().size()).isEqualTo(4);
|
|
438 |
|
|
439 |
assertThat(pathDto.getFoundCatalogItems().get(0).size()).isEqualTo(2);
|
|
440 |
assertThat(pathDto.getFoundCatalogItems().get(0).get(0)).isEqualTo(catalogItemDto1);
|
|
441 |
assertThat(pathDto.getFoundCatalogItems().get(0).get(1)).isEqualTo(catalogItemDto2);
|
|
442 |
|
|
443 |
assertThat(pathDto.getFoundCatalogItems().get(1).size()).isEqualTo(1);
|
|
444 |
assertThat(pathDto.getFoundCatalogItems().get(1).get(0)).isEqualTo(catalogItemDto3);
|
|
445 |
|
|
446 |
assertThat(pathDto.getFoundCatalogItems().get(2).size()).isEqualTo(2);
|
|
447 |
assertThat(pathDto.getFoundCatalogItems().get(2).get(0)).isEqualTo(catalogItemDto4);
|
|
448 |
assertThat(pathDto.getFoundCatalogItems().get(2).get(1)).isEqualTo(catalogItemDto5);
|
|
449 |
|
|
450 |
assertThat(pathDto.getFoundCatalogItems().get(3).size()).isEqualTo(1);
|
|
451 |
assertThat(pathDto.getFoundCatalogItems().get(3).get(0)).isEqualTo(catalogItemDto6);
|
|
452 |
}
|
313 |
453 |
}
|
Added test for path
re #9490