From 4d4f6d735ba018af12ec2e75608d2c401b9faeb9 Mon Sep 17 00:00:00 2001 From: "michael.breu" <michael.breu@uibk.ac.at> Date: Fri, 9 Apr 2021 14:58:18 +0200 Subject: [PATCH] More Tests --- .../gitsearch/service/SearchServiceIT.java | 2 + .../service/ShoppingBasketServiceIT.java | 53 ++++++++++++++++++- 2 files changed, 54 insertions(+), 1 deletion(-) diff --git a/src/test/java/at/ac/uibk/gitsearch/service/SearchServiceIT.java b/src/test/java/at/ac/uibk/gitsearch/service/SearchServiceIT.java index 38c7dcb44..e5b1e24a1 100644 --- a/src/test/java/at/ac/uibk/gitsearch/service/SearchServiceIT.java +++ b/src/test/java/at/ac/uibk/gitsearch/service/SearchServiceIT.java @@ -20,6 +20,7 @@ import java.util.List; import org.codeability.sharing.plugins.api.SharingPluginConfig; import org.elasticsearch.client.RestHighLevelClient; import org.elasticsearch.node.NodeValidationException; +import org.junit.Assert; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -75,6 +76,7 @@ public class SearchServiceIT { SearchInputDTO searchQuery = new SearchInputDTO(null, searchMetadata, null, null, null, 0); SearchResultsDTO searchResultPage = searchService.searchResultPage(searchQuery, 0, SearchInputDTO.PAGE_SIZE); + Assert.assertTrue("At least one hit?", searchResultPage.getSearchResult().size() >= 1); LOGGER.info("found {} hits for all", searchResultPage.getHitCount()); } diff --git a/src/test/java/at/ac/uibk/gitsearch/service/ShoppingBasketServiceIT.java b/src/test/java/at/ac/uibk/gitsearch/service/ShoppingBasketServiceIT.java index a7e618b34..d1d39710e 100644 --- a/src/test/java/at/ac/uibk/gitsearch/service/ShoppingBasketServiceIT.java +++ b/src/test/java/at/ac/uibk/gitsearch/service/ShoppingBasketServiceIT.java @@ -1,28 +1,52 @@ package at.ac.uibk.gitsearch.service; +import static at.ac.uibk.gitsearch.web.rest.AccountResourceIT.TEST_USER_LOGIN; + import java.io.IOException; import java.io.InputStream; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.codeability.sharing.plugins.api.ShoppingBasket; +import org.elasticsearch.node.NodeValidationException; import org.junit.Assert; +import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.security.test.context.support.WithMockUser; import at.ac.uibk.gitsearch.GitsearchApp; +import at.ac.uibk.gitsearch.repository.search.testESService.ElasticSearchTestServerConfiguration; +import at.ac.uibk.gitsearch.service.ShoppingBasketService.ShoppingBasketInfoDTO; +import at.ac.uibk.gitsearch.service.ShoppingBasketService.ShoppingBasketRedirectInfoDTO; +import at.ac.uibk.gitsearch.service.dto.SearchInputDTO; +import at.ac.uibk.gitsearch.service.dto.SearchInputMetadataDTO; +import at.ac.uibk.gitsearch.service.dto.SearchResultDTO; +import at.ac.uibk.gitsearch.service.dto.SearchResultsDTO; @SpringBootTest(classes = GitsearchApp.class) +@WithMockUser(value = TEST_USER_LOGIN, authorities = "sharing") public class ShoppingBasketServiceIT { private static final String TEST_ZIP_LOCATION = "./testData/junit-quality-tests-exercise-master.zip"; @Autowired protected ShoppingBasketService shoppingBasketService; + @Autowired + private SearchService searchService; + private static final Logger log = LoggerFactory.getLogger(ShoppingBasketServiceIT.class); - + + @BeforeAll + public static void setUpESServer() throws IOException, NodeValidationException { + ElasticSearchTestServerConfiguration.getTestInstance().startTestNode(); + } + @Test public void testRepackage() throws IOException { @@ -45,6 +69,33 @@ public class ShoppingBasketServiceIT { testRepackagedZip.close(); } + + @Test + public void testGetBasket() throws IOException { + + // just load everything from index :-) + final SearchInputMetadataDTO searchMetadata = new SearchInputMetadataDTO(null, null, null, null, null); + SearchInputDTO searchQuery = new SearchInputDTO(null, searchMetadata, null, null, null, 0); + SearchResultsDTO searchResultPage = searchService.searchResultPage(searchQuery, 0, SearchInputDTO.PAGE_SIZE); + Assert.assertTrue("At least one hit?", searchResultPage.getSearchResult().size() >= 1); + + ShoppingBasketInfoDTO sbi = new ShoppingBasketInfoDTO(searchResultPage.getSearchResult().toArray(new SearchResultDTO[] {})); + + ShoppingBasketRedirectInfoDTO redInfo = shoppingBasketService.getRedirectInfo(sbi, "http://unused/unused"); + + Pattern tokenParser = Pattern.compile("/([^/?]*)\\?"); + final Matcher matcher = tokenParser.matcher(redInfo.getRedirectURL()); + Assert.assertTrue(matcher.find()); + String token=matcher.group(1); + final ShoppingBasket basket = shoppingBasketService.getBasket(token); + + int count=0; + for(SearchResultDTO hitResult: searchResultPage.getSearchResult()) { + // we assume same sequence + Assert.assertEquals(basket.exerciseInfo[count].title, hitResult.getMetadata().getTitle()); + count++; + } + } } -- GitLab