<surefireAggregatedReport _class='hudson.maven.reporters.SurefireAggregatedReport'><failCount>0</failCount><skipCount>0</skipCount><totalCount>46</totalCount><urlName>testReport</urlName><childReport><child _class='hudson.maven.MavenBuild'><action _class='hudson.maven.reporters.SurefireReport'><failCount>0</failCount><skipCount>0</skipCount><totalCount>31</totalCount><urlName>testReport</urlName></action><action></action><action _class='hudson.maven.reporters.MavenArtifactRecord'><url>http://sing.ei.uvigo.es/dt/jenkins/job/microstories-2526-teamA/es.uvigo.esei.dgss.teamA.microstories$dgss2526-teamA-microstories-rest/76/mavenArtifacts/</url></action><action></action><artifact><displayPath>dgss2526-teamA-microstories-rest-0.1.0-SNAPSHOT-javadoc.jar</displayPath><fileName>dgss2526-teamA-microstories-rest-0.1.0-SNAPSHOT-javadoc.jar</fileName><relativePath>es.uvigo.esei.dgss.teamA.microstories/dgss2526-teamA-microstories-rest/0.1.0-SNAPSHOT/dgss2526-teamA-microstories-rest-0.1.0-SNAPSHOT-javadoc.jar</relativePath></artifact><artifact><displayPath>dgss2526-teamA-microstories-rest-0.1.0-SNAPSHOT-sources.jar</displayPath><fileName>dgss2526-teamA-microstories-rest-0.1.0-SNAPSHOT-sources.jar</fileName><relativePath>es.uvigo.esei.dgss.teamA.microstories/dgss2526-teamA-microstories-rest/0.1.0-SNAPSHOT/dgss2526-teamA-microstories-rest-0.1.0-SNAPSHOT-sources.jar</relativePath></artifact><artifact><displayPath>dgss2526-teamA-microstories-rest-0.1.0-SNAPSHOT.pom</displayPath><fileName>dgss2526-teamA-microstories-rest-0.1.0-SNAPSHOT.pom</fileName><relativePath>es.uvigo.esei.dgss.teamA.microstories/dgss2526-teamA-microstories-rest/0.1.0-SNAPSHOT/dgss2526-teamA-microstories-rest-0.1.0-SNAPSHOT.pom</relativePath></artifact><artifact><displayPath>dgss2526-teamA-microstories-rest-0.1.0-SNAPSHOT.war</displayPath><fileName>dgss2526-teamA-microstories-rest-0.1.0-SNAPSHOT.war</fileName><relativePath>es.uvigo.esei.dgss.teamA.microstories/dgss2526-teamA-microstories-rest/0.1.0-SNAPSHOT/dgss2526-teamA-microstories-rest-0.1.0-SNAPSHOT.war</relativePath></artifact><building>false</building><displayName>#76</displayName><duration>48973</duration><estimatedDuration>70905</estimatedDuration><fullDisplayName>microstories-2526-teamA » REST #76</fullDisplayName><id>76</id><keepLog>false</keepLog><number>76</number><queueId>-1</queueId><result>SUCCESS</result><timestamp>1762901169157</timestamp><url>http://sing.ei.uvigo.es/dt/jenkins/job/microstories-2526-teamA/es.uvigo.esei.dgss.teamA.microstories$dgss2526-teamA-microstories-rest/76/</url><builtOn></builtOn><changeSet _class='hudson.maven.FilteredChangeLogSet'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>jsf/src/main/java/es/uvigo/esei/microstories/jsf/StoryManagedBean.java</affectedPath><affectedPath>service/src/main/java/es/uvigo/esei/microstories/services/StoryService.java</affectedPath><affectedPath>service/src/test/java/es/uvigo/esei/microstories/services/StoryServiceIntegrationTest.java</affectedPath><affectedPath>rest/src/test/java/es/uvigo/esei/microstories/rest/StoryResourceRestTest.java</affectedPath><commitId>9ddb08a7908117a1bceb4f8dbab5c850bb66fc5c</commitId><timestamp>1762900574000</timestamp><author><absoluteUrl>http://sing.ei.uvigo.es/dt/jenkins/user/senrapastorizabreixo</absoluteUrl><fullName>senrapastorizabreixo</fullName></author><authorEmail>senrapastorizabreixo@gmail.com</authorEmail><comment>tsk18: Fix search and pagination logic
Fixed search redirection URL, input validations in StoryService and
pagination logic in search tests (StoryServiceIntegrationTest,
StoryResourceRestTest)
</comment><date>2025-11-11 23:36:14 +0100</date><id>9ddb08a7908117a1bceb4f8dbab5c850bb66fc5c</id><msg>tsk18: Fix search and pagination logic</msg><path><editType>edit</editType><file>service/src/main/java/es/uvigo/esei/microstories/services/StoryService.java</file></path><path><editType>edit</editType><file>service/src/test/java/es/uvigo/esei/microstories/services/StoryServiceIntegrationTest.java</file></path><path><editType>edit</editType><file>rest/src/test/java/es/uvigo/esei/microstories/rest/StoryResourceRestTest.java</file></path><path><editType>edit</editType><file>jsf/src/main/java/es/uvigo/esei/microstories/jsf/StoryManagedBean.java</file></path></item></changeSet><culprit><absoluteUrl>http://sing.ei.uvigo.es/dt/jenkins/user/senrapastorizabreixo</absoluteUrl><fullName>senrapastorizabreixo</fullName></culprit><mavenArtifacts><url>http://sing.ei.uvigo.es/dt/jenkins/job/microstories-2526-teamA/es.uvigo.esei.dgss.teamA.microstories$dgss2526-teamA-microstories-rest/76/mavenArtifacts/</url></mavenArtifacts></child><result _class='hudson.tasks.junit.TestResult'><duration>37.521</duration><empty>false</empty><failCount>0</failCount><passCount>31</passCount><skipCount>0</skipCount><suite><case><age>0</age><className>es.uvigo.esei.microstories.rest.StoryResourceRestTest</className><duration>0.879</duration><failedSince>0</failedSince><name>beforeListRecentStories</name><skipped>false</skipped><status>PASSED</status></case><case><age>0</age><className>es.uvigo.esei.microstories.rest.StoryResourceRestTest</className><duration>5.402</duration><failedSince>0</failedSince><name>listRecentStories</name><skipped>false</skipped><status>PASSED</status></case><case><age>0</age><className>es.uvigo.esei.microstories.rest.StoryResourceRestTest</className><duration>0.859</duration><failedSince>0</failedSince><name>afterListRecentStories</name><skipped>false</skipped><status>PASSED</status></case><case><age>0</age><className>es.uvigo.esei.microstories.rest.StoryResourceRestTest</className><duration>0.127</duration><failedSince>0</failedSince><name>beforeGetStoryById</name><skipped>false</skipped><status>PASSED</status></case><case><age>0</age><className>es.uvigo.esei.microstories.rest.StoryResourceRestTest</className><duration>0.229</duration><failedSince>0</failedSince><name>testGetStoryById_Success</name><skipped>false</skipped><status>PASSED</status></case><case><age>0</age><className>es.uvigo.esei.microstories.rest.StoryResourceRestTest</className><duration>0.277</duration><failedSince>0</failedSince><name>afterGetStoryById</name><skipped>false</skipped><status>PASSED</status></case><case><age>0</age><className>es.uvigo.esei.microstories.rest.StoryResourceRestTest</className><duration>0.146</duration><failedSince>0</failedSince><name>beforeGetNonExistentStory</name><skipped>false</skipped><status>PASSED</status></case><case><age>0</age><className>es.uvigo.esei.microstories.rest.StoryResourceRestTest</className><duration>0.283</duration><failedSince>0</failedSince><name>testGetStoryById_NotFound</name><skipped>false</skipped><status>PASSED</status></case><case><age>0</age><className>es.uvigo.esei.microstories.rest.StoryResourceRestTest</className><duration>0.159</duration><failedSince>0</failedSince><name>afterGetNonExistentStory</name><skipped>false</skipped><status>PASSED</status></case><case><age>0</age><className>es.uvigo.esei.microstories.rest.StoryResourceRestTest</className><duration>0.094</duration><failedSince>0</failedSince><name>beforeSearchStoriesContainsText</name><skipped>false</skipped><status>PASSED</status></case><case><age>0</age><className>es.uvigo.esei.microstories.rest.StoryResourceRestTest</className><duration>0.396</duration><failedSince>0</failedSince><name>testSearchStories_ReturnsResults</name><skipped>false</skipped><status>PASSED</status></case><case><age>0</age><className>es.uvigo.esei.microstories.rest.StoryResourceRestTest</className><duration>0.151</duration><failedSince>0</failedSince><name>afterSearchStoriesContainsText</name><skipped>false</skipped><status>PASSED</status></case><case><age>0</age><className>es.uvigo.esei.microstories.rest.StoryResourceRestTest</className><duration>0.085</duration><failedSince>0</failedSince><name>beforeSearchStoriesInvalidText</name><skipped>false</skipped><status>PASSED</status></case><case><age>0</age><className>es.uvigo.esei.microstories.rest.StoryResourceRestTest</className><duration>0.038</duration><failedSince>0</failedSince><name>testSearchStories_InvalidText_ReturnsBadRequest</name><skipped>false</skipped><status>PASSED</status></case><case><age>0</age><className>es.uvigo.esei.microstories.rest.StoryResourceRestTest</className><duration>0.106</duration><failedSince>0</failedSince><name>beforeFilterStoriesByGenre</name><skipped>false</skipped><status>PASSED</status></case><case><age>0</age><className>es.uvigo.esei.microstories.rest.StoryResourceRestTest</className><duration>0.18</duration><failedSince>0</failedSince><name>listFilteredStoriesByGenre</name><skipped>false</skipped><status>PASSED</status></case><case><age>0</age><className>es.uvigo.esei.microstories.rest.StoryResourceRestTest</className><duration>0.094</duration><failedSince>0</failedSince><name>afterFilterStoriesByGenre</name><skipped>false</skipped><status>PASSED</status></case><case><age>0</age><className>es.uvigo.esei.microstories.rest.StoryResourceRestTest</className><duration>0.054</duration><failedSince>0</failedSince><name>beforeFilterStoriesByTheme</name><skipped>false</skipped><status>PASSED</status></case><case><age>0</age><className>es.uvigo.esei.microstories.rest.StoryResourceRestTest</className><duration>0.645</duration><failedSince>0</failedSince><name>listFilteredStoriesByTheme</name><skipped>false</skipped><status>PASSED</status></case><case><age>0</age><className>es.uvigo.esei.microstories.rest.StoryResourceRestTest</className><duration>0.103</duration><failedSince>0</failedSince><name>afterFilterStoriesByTheme</name><skipped>false</skipped><status>PASSED</status></case><case><age>0</age><className>es.uvigo.esei.microstories.rest.StoryResourceRestTest</className><duration>0.086</duration><failedSince>0</failedSince><name>beforeFilterStoriesByPublicationDate</name><skipped>false</skipped><status>PASSED</status></case><case><age>0</age><className>es.uvigo.esei.microstories.rest.StoryResourceRestTest</className><duration>0.121</duration><failedSince>0</failedSince><name>listFilteredStoriesByPublication</name><skipped>false</skipped><status>PASSED</status></case><case><age>0</age><className>es.uvigo.esei.microstories.rest.StoryResourceRestTest</className><duration>0.093</duration><failedSince>0</failedSince><name>afterFilterStoriesByPublicationDate</name><skipped>false</skipped><status>PASSED</status></case><case><age>0</age><className>es.uvigo.esei.microstories.rest.StoryResourceRestTest</className><duration>0.124</duration><failedSince>0</failedSince><name>beforeFilterStoriesByGenreThemeAndPublication</name><skipped>false</skipped><status>PASSED</status></case><case><age>0</age><className>es.uvigo.esei.microstories.rest.StoryResourceRestTest</className><duration>0.076</duration><failedSince>0</failedSince><name>listFilteredStoriesByGenreThemeAndPublication</name><skipped>false</skipped><status>PASSED</status></case><case><age>0</age><className>es.uvigo.esei.microstories.rest.StoryResourceRestTest</className><duration>0.087</duration><failedSince>0</failedSince><name>afterFilterStoriesByGenreThemeAndPublication</name><skipped>false</skipped><status>PASSED</status></case><case><age>0</age><className>es.uvigo.esei.microstories.rest.StoryResourceRestTest</className><duration>0.085</duration><failedSince>0</failedSince><name>beforeGetTop2ReadStoriesLastMonthByGenre</name><skipped>false</skipped><status>PASSED</status></case><case><age>0</age><className>es.uvigo.esei.microstories.rest.StoryResourceRestTest</className><duration>0.134</duration><failedSince>0</failedSince><name>getTop2ReadStoriesLastMonthByGenre</name><skipped>false</skipped><status>PASSED</status></case><case><age>0</age><className>es.uvigo.esei.microstories.rest.StoryResourceRestTest</className><duration>0.094</duration><failedSince>0</failedSince><name>afterGetTop2ReadStoriesLastMonthByGenre</name><skipped>false</skipped><status>PASSED</status></case><case><age>0</age><className>es.uvigo.esei.microstories.rest.StoryResourceRestTest</className><duration>0.059</duration><failedSince>0</failedSince><name>beforeGetTop2ReadStoriesLastMonthByGenre_empty</name><skipped>false</skipped><status>PASSED</status></case><case><age>0</age><className>es.uvigo.esei.microstories.rest.StoryResourceRestTest</className><duration>0.04</duration><failedSince>0</failedSince><name>getTop2ReadStoriesLastMonthByGenre_empty</name><skipped>false</skipped><status>PASSED</status></case><duration>37.521</duration><name>es.uvigo.esei.microstories.rest.ResourceUnitTestSuite</name></suite></result></childReport><childReport><child _class='hudson.maven.MavenBuild'><action _class='hudson.maven.reporters.SurefireReport'><failCount>0</failCount><skipCount>0</skipCount><totalCount>15</totalCount><urlName>testReport</urlName></action><action></action><action _class='hudson.maven.reporters.MavenArtifactRecord'><url>http://sing.ei.uvigo.es/dt/jenkins/job/microstories-2526-teamA/es.uvigo.esei.dgss.teamA.microstories$dgss2526-teamA-microstories-service/76/mavenArtifacts/</url></action><action></action><artifact><displayPath>dgss2526-teamA-microstories-service-0.1.0-SNAPSHOT-javadoc.jar</displayPath><fileName>dgss2526-teamA-microstories-service-0.1.0-SNAPSHOT-javadoc.jar</fileName><relativePath>es.uvigo.esei.dgss.teamA.microstories/dgss2526-teamA-microstories-service/0.1.0-SNAPSHOT/dgss2526-teamA-microstories-service-0.1.0-SNAPSHOT-javadoc.jar</relativePath></artifact><artifact><displayPath>dgss2526-teamA-microstories-service-0.1.0-SNAPSHOT-sources.jar</displayPath><fileName>dgss2526-teamA-microstories-service-0.1.0-SNAPSHOT-sources.jar</fileName><relativePath>es.uvigo.esei.dgss.teamA.microstories/dgss2526-teamA-microstories-service/0.1.0-SNAPSHOT/dgss2526-teamA-microstories-service-0.1.0-SNAPSHOT-sources.jar</relativePath></artifact><artifact><displayPath>dgss2526-teamA-microstories-service-0.1.0-SNAPSHOT-tests.jar</displayPath><fileName>dgss2526-teamA-microstories-service-0.1.0-SNAPSHOT-tests.jar</fileName><relativePath>es.uvigo.esei.dgss.teamA.microstories/dgss2526-teamA-microstories-service/0.1.0-SNAPSHOT/dgss2526-teamA-microstories-service-0.1.0-SNAPSHOT-tests.jar</relativePath></artifact><artifact><displayPath>dgss2526-teamA-microstories-service-0.1.0-SNAPSHOT.jar</displayPath><fileName>dgss2526-teamA-microstories-service-0.1.0-SNAPSHOT.jar</fileName><relativePath>es.uvigo.esei.dgss.teamA.microstories/dgss2526-teamA-microstories-service/0.1.0-SNAPSHOT/dgss2526-teamA-microstories-service-0.1.0-SNAPSHOT.jar</relativePath></artifact><artifact><displayPath>dgss2526-teamA-microstories-service-0.1.0-SNAPSHOT.pom</displayPath><fileName>dgss2526-teamA-microstories-service-0.1.0-SNAPSHOT.pom</fileName><relativePath>es.uvigo.esei.dgss.teamA.microstories/dgss2526-teamA-microstories-service/0.1.0-SNAPSHOT/dgss2526-teamA-microstories-service-0.1.0-SNAPSHOT.pom</relativePath></artifact><building>false</building><displayName>#76</displayName><duration>46569</duration><estimatedDuration>63778</estimatedDuration><fullDisplayName>microstories-2526-teamA » Service #76</fullDisplayName><id>76</id><keepLog>false</keepLog><number>76</number><queueId>-1</queueId><result>SUCCESS</result><timestamp>1762901169156</timestamp><url>http://sing.ei.uvigo.es/dt/jenkins/job/microstories-2526-teamA/es.uvigo.esei.dgss.teamA.microstories$dgss2526-teamA-microstories-service/76/</url><builtOn></builtOn><changeSet _class='hudson.maven.FilteredChangeLogSet'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>jsf/src/main/java/es/uvigo/esei/microstories/jsf/StoryManagedBean.java</affectedPath><affectedPath>service/src/main/java/es/uvigo/esei/microstories/services/StoryService.java</affectedPath><affectedPath>service/src/test/java/es/uvigo/esei/microstories/services/StoryServiceIntegrationTest.java</affectedPath><affectedPath>rest/src/test/java/es/uvigo/esei/microstories/rest/StoryResourceRestTest.java</affectedPath><commitId>9ddb08a7908117a1bceb4f8dbab5c850bb66fc5c</commitId><timestamp>1762900574000</timestamp><author><absoluteUrl>http://sing.ei.uvigo.es/dt/jenkins/user/senrapastorizabreixo</absoluteUrl><fullName>senrapastorizabreixo</fullName></author><authorEmail>senrapastorizabreixo@gmail.com</authorEmail><comment>tsk18: Fix search and pagination logic
Fixed search redirection URL, input validations in StoryService and
pagination logic in search tests (StoryServiceIntegrationTest,
StoryResourceRestTest)
</comment><date>2025-11-11 23:36:14 +0100</date><id>9ddb08a7908117a1bceb4f8dbab5c850bb66fc5c</id><msg>tsk18: Fix search and pagination logic</msg><path><editType>edit</editType><file>service/src/main/java/es/uvigo/esei/microstories/services/StoryService.java</file></path><path><editType>edit</editType><file>service/src/test/java/es/uvigo/esei/microstories/services/StoryServiceIntegrationTest.java</file></path><path><editType>edit</editType><file>rest/src/test/java/es/uvigo/esei/microstories/rest/StoryResourceRestTest.java</file></path><path><editType>edit</editType><file>jsf/src/main/java/es/uvigo/esei/microstories/jsf/StoryManagedBean.java</file></path></item></changeSet><culprit><absoluteUrl>http://sing.ei.uvigo.es/dt/jenkins/user/senrapastorizabreixo</absoluteUrl><fullName>senrapastorizabreixo</fullName></culprit><mavenArtifacts><url>http://sing.ei.uvigo.es/dt/jenkins/job/microstories-2526-teamA/es.uvigo.esei.dgss.teamA.microstories$dgss2526-teamA-microstories-service/76/mavenArtifacts/</url></mavenArtifacts></child><result _class='hudson.tasks.junit.TestResult'><duration>33.38</duration><empty>false</empty><failCount>0</failCount><passCount>15</passCount><skipCount>0</skipCount><suite><case><age>0</age><className>es.uvigo.esei.microstories.services.StoryServiceIntegrationTest</className><duration>3.86</duration><failedSince>0</failedSince><name>testGetStoryById</name><skipped>false</skipped><status>PASSED</status></case><case><age>0</age><className>es.uvigo.esei.microstories.services.StoryServiceIntegrationTest</className><duration>0.49</duration><failedSince>0</failedSince><name>testGetTop2ReadStoriesLastMonthByGenre</name><skipped>false</skipped><status>PASSED</status></case><case><age>0</age><className>es.uvigo.esei.microstories.services.StoryServiceIntegrationTest</className><duration>0.456</duration><failedSince>0</failedSince><name>testSearchStories_InvalidPage</name><skipped>false</skipped><status>PASSED</status></case><case><age>0</age><className>es.uvigo.esei.microstories.services.StoryServiceIntegrationTest</className><duration>0.232</duration><failedSince>0</failedSince><name>testSearchStories_InvalidSize</name><skipped>false</skipped><status>PASSED</status></case><case><age>0</age><className>es.uvigo.esei.microstories.services.StoryServiceIntegrationTest</className><duration>0.192</duration><failedSince>0</failedSince><name>testSearchStories_InvalidText</name><skipped>false</skipped><status>PASSED</status></case><case><age>0</age><className>es.uvigo.esei.microstories.services.StoryServiceIntegrationTest</className><duration>0.147</duration><failedSince>0</failedSince><name>testGetStoryById_NotFound</name><skipped>false</skipped><status>PASSED</status></case><case><age>0</age><className>es.uvigo.esei.microstories.services.StoryServiceIntegrationTest</className><duration>0.103</duration><failedSince>0</failedSince><name>getFilteredStoriesByDateWithInitialDateAfterFinalDate</name><skipped>false</skipped><status>PASSED</status></case><case><age>0</age><className>es.uvigo.esei.microstories.services.StoryServiceIntegrationTest</className><duration>0.144</duration><failedSince>0</failedSince><name>getFilteredStoriesByDateWithOnlyInitialDate</name><skipped>false</skipped><status>PASSED</status></case><case><age>0</age><className>es.uvigo.esei.microstories.services.StoryServiceIntegrationTest</className><duration>0.305</duration><failedSince>0</failedSince><name>getFilteredStoriesByDate</name><skipped>false</skipped><status>PASSED</status></case><case><age>0</age><className>es.uvigo.esei.microstories.services.StoryServiceIntegrationTest</className><duration>0.095</duration><failedSince>0</failedSince><name>testGetTop2ReadStoriesLastMonthByGenre_NoStories</name><skipped>false</skipped><status>PASSED</status></case><case><age>0</age><className>es.uvigo.esei.microstories.services.StoryServiceIntegrationTest</className><duration>0.171</duration><failedSince>0</failedSince><name>getFilteredStoriesByDateWithOnlyFinalDate</name><skipped>false</skipped><status>PASSED</status></case><case><age>0</age><className>es.uvigo.esei.microstories.services.StoryServiceIntegrationTest</className><duration>0.161</duration><failedSince>0</failedSince><name>testSearchStories</name><skipped>false</skipped><status>PASSED</status></case><case><age>0</age><className>es.uvigo.esei.microstories.services.StoryServiceIntegrationTest</className><duration>0.169</duration><failedSince>0</failedSince><name>getFilteredStoriesByGenre</name><skipped>false</skipped><status>PASSED</status></case><case><age>0</age><className>es.uvigo.esei.microstories.services.StoryServiceIntegrationTest</className><duration>0.183</duration><failedSince>0</failedSince><name>getFilteredStoriesByTheme</name><skipped>false</skipped><status>PASSED</status></case><case><age>0</age><className>es.uvigo.esei.microstories.services.StoryServiceIntegrationTest</className><duration>0.152</duration><failedSince>0</failedSince><name>testGetRecentStories</name><skipped>false</skipped><status>PASSED</status></case><duration>33.38</duration><name>es.uvigo.esei.microstories.services.ServiceIntegrationTestSuite</name></suite></result></childReport></surefireAggregatedReport>