diff --git a/igor-web/src/main/java/com/netflix/spinnaker/igor/gcb/GoogleCloudBuildController.java b/igor-web/src/main/java/com/netflix/spinnaker/igor/gcb/GoogleCloudBuildController.java index b8c524f90..61e7d6cc5 100644 --- a/igor-web/src/main/java/com/netflix/spinnaker/igor/gcb/GoogleCloudBuildController.java +++ b/igor-web/src/main/java/com/netflix/spinnaker/igor/gcb/GoogleCloudBuildController.java @@ -19,8 +19,9 @@ import com.google.api.services.cloudbuild.v1.model.Build; import com.google.api.services.cloudbuild.v1.model.BuildTrigger; import com.google.api.services.cloudbuild.v1.model.RepoSource; -import com.google.common.collect.ImmutableList; +import com.google.common.collect.Lists; import com.netflix.spinnaker.kork.artifacts.model.Artifact; +import java.util.List; import lombok.RequiredArgsConstructor; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.http.MediaType; @@ -39,8 +40,8 @@ public class GoogleCloudBuildController { @RequestMapping(value = "/accounts", method = RequestMethod.GET) @PostFilter("hasPermission(filterObject, 'BUILD_SERVICE', 'READ')") - public ImmutableList getAccounts() { - return googleCloudBuildAccountRepository.getAccounts(); + public List getAccounts() { + return Lists.newArrayList(googleCloudBuildAccountRepository.getAccounts()); } @RequestMapping( @@ -75,25 +76,27 @@ public Build getBuild(@PathVariable String account, @PathVariable String buildId @RequestMapping(value = "/builds/{account}/{buildId}/artifacts", method = RequestMethod.GET) @PreAuthorize("hasPermission(#account, 'BUILD_SERVICE', 'READ')") - public ImmutableList getArtifacts( - @PathVariable String account, @PathVariable String buildId) { - return googleCloudBuildAccountRepository.getGoogleCloudBuild(account).getArtifacts(buildId); + public List getArtifacts(@PathVariable String account, @PathVariable String buildId) { + return Lists.newArrayList( + googleCloudBuildAccountRepository.getGoogleCloudBuild(account).getArtifacts(buildId)); } @RequestMapping( value = "/artifacts/extract/{account}", method = RequestMethod.PUT, consumes = MediaType.APPLICATION_JSON_VALUE) - public ImmutableList extractArtifacts( + public List extractArtifacts( @PathVariable String account, @RequestBody String serializedBuild) { Build build = googleCloudBuildParser.parse(serializedBuild, Build.class); - return googleCloudBuildAccountRepository.getGoogleCloudBuild(account).extractArtifacts(build); + return Lists.newArrayList( + googleCloudBuildAccountRepository.getGoogleCloudBuild(account).extractArtifacts(build)); } @RequestMapping(value = "/triggers/{account}", method = RequestMethod.GET) @PreAuthorize("hasPermission(#account, 'BUILD_SERVICE', 'READ')") - public ImmutableList listTriggers(@PathVariable String account) { - return googleCloudBuildAccountRepository.getGoogleCloudBuild(account).listTriggers(); + public List listTriggers(@PathVariable String account) { + return Lists.newArrayList( + googleCloudBuildAccountRepository.getGoogleCloudBuild(account).listTriggers()); } @RequestMapping( diff --git a/igor-web/src/test/groovy/com/netflix/spinnaker/igor/gcb/GoogleCloudBuildTest.java b/igor-web/src/test/groovy/com/netflix/spinnaker/igor/gcb/GoogleCloudBuildTest.java index 00433217d..4e5b55033 100644 --- a/igor-web/src/test/groovy/com/netflix/spinnaker/igor/gcb/GoogleCloudBuildTest.java +++ b/igor-web/src/test/groovy/com/netflix/spinnaker/igor/gcb/GoogleCloudBuildTest.java @@ -37,9 +37,9 @@ import com.google.api.services.cloudbuild.v1.model.ListBuildTriggersResponse; import com.google.api.services.cloudbuild.v1.model.Operation; import com.google.api.services.cloudbuild.v1.model.RepoSource; +import com.netflix.spinnaker.hystrix.spectator.HystrixSpectatorPublisher; import com.netflix.spinnaker.igor.RedisConfig; import com.netflix.spinnaker.igor.config.LockManagerConfig; -import com.netflix.spinnaker.kork.web.exceptions.GenericExceptionHandlers; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -54,6 +54,8 @@ import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.TestConfiguration; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.context.annotation.ComponentScan; import org.springframework.core.annotation.Order; import org.springframework.http.MediaType; import org.springframework.security.config.annotation.web.builders.HttpSecurity; @@ -67,19 +69,20 @@ @RunWith(SpringRunner.class) @AutoConfigureMockMvc @EnableWebMvc +@ComponentScan({"com.netflix.spinnaker.config", "com.netflix.spinnaker.igor"}) @SpringBootTest( classes = { GoogleCloudBuildConfig.class, - GoogleCloudBuildController.class, RedisConfig.class, LockManagerConfig.class, - GenericExceptionHandlers.class, GoogleCloudBuildTestConfig.class }) @TestPropertySource(properties = {"spring.config.location=classpath:gcb/gcb-test.yml"}) public class GoogleCloudBuildTest { @Autowired private MockMvc mockMvc; + @MockBean HystrixSpectatorPublisher hystrixSpectatorPublisher; + @Autowired @Qualifier("stubCloudBuildService") private WireMockServer stubCloudBuildService; diff --git a/igor-web/src/test/java/com/netflix/spinnaker/igor/MainTest.java b/igor-web/src/test/java/com/netflix/spinnaker/igor/MainTest.java index 7e1774ea4..e77f17de4 100644 --- a/igor-web/src/test/java/com/netflix/spinnaker/igor/MainTest.java +++ b/igor-web/src/test/java/com/netflix/spinnaker/igor/MainTest.java @@ -16,28 +16,18 @@ package com.netflix.spinnaker.igor; -import com.netflix.hystrix.Hystrix; -import org.junit.AfterClass; -import org.junit.BeforeClass; +import com.netflix.spinnaker.hystrix.spectator.HystrixSpectatorPublisher; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @SpringBootTest(classes = {RedisConfig.class, Main.class}) public class MainTest { - - @BeforeClass - public static void setUp() { - Hystrix.reset(); - } + @MockBean HystrixSpectatorPublisher hystrixSpectatorPublisher; @Test public void startupTest() {} - - @AfterClass - public static void tearDown() { - Hystrix.reset(); - } }