fix review findings

This commit is contained in:
Eduard Heimbuch
2020-09-24 10:26:07 +02:00
parent ff6aaf7bc5
commit 804a6498a7
19 changed files with 176 additions and 128 deletions

View File

@@ -55,10 +55,10 @@ class ReleaseFeedParserTest {
when(client.get(url).request().contentFromXml(ReleaseFeedDto.class)).thenReturn(createReleaseFeedDto());
Optional<ReleaseInfo> release = releaseFeedParser.findLatestRelease(url);
Optional<UpdateInfo> release = releaseFeedParser.findLatestRelease(url);
assertThat(release).isPresent();
assertThat(release.get().getVersion()).isEqualTo("3");
assertThat(release.get().getLatestVersion()).isEqualTo("3");
assertThat(release.get().getLink()).isEqualTo("download-3");
}
@@ -66,7 +66,7 @@ class ReleaseFeedParserTest {
ReleaseFeedDto.Release release1 = createRelease("1", "download-1", new Date(1000000000L));
ReleaseFeedDto.Release release2 = createRelease("2", "download-2", new Date(2000000000L));
ReleaseFeedDto.Release release3 = createRelease("3", "download-3", new Date(3000000000L));
ReleaseFeedDto.Channel channel = new ReleaseFeedDto.Channel("scm", "scm releases", "scm-download", "gatsby", new Date(1L), ImmutableList.of(release1, release2, release3));
ReleaseFeedDto.Channel channel = new ReleaseFeedDto.Channel(ImmutableList.of(release1, release2, release3));
return new ReleaseFeedDto(channel);
}

View File

@@ -60,40 +60,40 @@ class ReleaseVersionCheckerTest {
}
@Test
void shouldReturnEmptyOptional() throws IOException {
void shouldReturnEmptyOptional() {
when(scmConfiguration.getReleaseFeedUrl()).thenReturn("releaseFeed");
when(feedReader.findLatestRelease("releaseFeed")).thenReturn(Optional.empty());
Optional<ReleaseInfo> releaseInfo = checker.checkForNewerVersion();
Optional<UpdateInfo> updateInfo = checker.checkForNewerVersion();
assertThat(releaseInfo).isNotPresent();
assertThat(updateInfo).isNotPresent();
}
@Test
void shouldReturnReleaseInfoFromCache() {
ReleaseInfo cachedReleaseInfo = new ReleaseInfo("1.42.9", "download-link");
Cache<String, ReleaseInfo> cache = new MapCacheManager().getCache("sonia.cache.releaseInfo");
cache.put("latest", cachedReleaseInfo);
void shouldReturnUpdateInfoFromCache() {
UpdateInfo cachedUpdateInfo = new UpdateInfo("1.42.9", "download-link");
Cache<String, Optional<UpdateInfo>> cache = new MapCacheManager().getCache("sonia.cache.updateInfo");
cache.put("latestRelease", Optional.of(cachedUpdateInfo));
checker.setCache(cache);
Optional<ReleaseInfo> releaseInfo = checker.checkForNewerVersion();
Optional<UpdateInfo> updateInfo = checker.checkForNewerVersion();
assertThat(releaseInfo).isPresent();
assertThat(releaseInfo.get().getVersion()).isEqualTo("1.42.9");
assertThat(releaseInfo.get().getLink()).isEqualTo("download-link");
assertThat(updateInfo).isPresent();
assertThat(updateInfo.get().getLatestVersion()).isEqualTo("1.42.9");
assertThat(updateInfo.get().getLink()).isEqualTo("download-link");
}
@Test
void shouldReturnReleaseInfo() throws IOException {
ReleaseInfo releaseInfo = new ReleaseInfo("2.5.0", "download-link");
void shouldReturnUpdateInfo() {
UpdateInfo updateInfo = new UpdateInfo("2.5.0", "download-link");
when(scmConfiguration.getReleaseFeedUrl()).thenReturn("releaseFeed");
when(feedReader.findLatestRelease("releaseFeed")).thenReturn(Optional.of(releaseInfo));
when(feedReader.findLatestRelease("releaseFeed")).thenReturn(Optional.of(updateInfo));
when(contextProvider.getVersion()).thenReturn("1.9.0");
Optional<ReleaseInfo> latestRelease = checker.checkForNewerVersion();
Optional<UpdateInfo> latestRelease = checker.checkForNewerVersion();
assertThat(latestRelease).isPresent();
assertThat(latestRelease.get().getVersion()).isEqualTo("2.5.0");
assertThat(latestRelease.get().getLatestVersion()).isEqualTo("2.5.0");
assertThat(latestRelease.get().getLink()).isEqualTo("download-link");
}
}

View File

@@ -22,25 +22,41 @@
* SOFTWARE.
*/
package sonia.scm.admin;
package sonia.scm.api.v2.resources;
import org.junit.jupiter.api.Test;
import sonia.scm.api.v2.resources.ReleaseInfoDto;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
import org.mockito.junit.jupiter.MockitoExtension;
import sonia.scm.admin.UpdateInfo;
import sonia.scm.api.v2.resources.UpdateInfoDto;
import sonia.scm.api.v2.resources.UpdateInfoMapper;
import sonia.scm.api.v2.resources.UpdateInfoMapperImpl;
import sonia.scm.api.v2.resources.ResourceLinks;
import sonia.scm.api.v2.resources.ResourceLinksMock;
import java.time.Instant;
import java.net.URI;
import static org.assertj.core.api.Assertions.assertThat;
class ReleaseInfoMapperTest {
@ExtendWith(MockitoExtension.class)
class UpdateInfoMapperTest {
ReleaseInfoMapper mapper = new ReleaseInfoMapperImpl();
private final URI baseUri = URI.create("https://hitchhiker.com/scm/");
@SuppressWarnings("unused") // Is injected
private final ResourceLinks resourceLinks = ResourceLinksMock.createMock(baseUri);
@InjectMocks
private UpdateInfoMapperImpl mapper;
@Test
void shouldMapToDto() {
ReleaseInfo releaseInfo = new ReleaseInfo("1.2.3", "download-link");
ReleaseInfoDto dto = mapper.map(releaseInfo);
UpdateInfo updateInfo = new UpdateInfo("1.2.3", "download-link");
UpdateInfoDto dto = mapper.map(updateInfo);
assertThat(dto.getLink()).isEqualTo(releaseInfo.getLink());
assertThat(dto.getVersion()).isEqualTo(releaseInfo.getVersion());
assertThat(dto.getLink()).isEqualTo(updateInfo.getLink());
assertThat(dto.getLatestVersion()).isEqualTo(updateInfo.getLatestVersion());
assertThat(dto.getLinks().getLinkBy("self").get().getHref()).isEqualTo("https://hitchhiker.com/scm/updateInfo");
}
}