// Copyright 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 package software.aws.toolkits.jetbrains.gateway.welcomescreen // TODO: fixme // // import com.intellij.testFramework.ApplicationRule // import com.intellij.testFramework.RuleChain // import org.assertj.core.api.Assertions.assertThat // import org.junit.Ignore // import org.junit.Rule // import org.junit.Test // import org.mockito.kotlin.any // import org.mockito.kotlin.argumentCaptor // import org.mockito.kotlin.mock // import org.mockito.kotlin.times // import org.mockito.kotlin.verify // import software.amazon.awssdk.services.mde.MdeClient // import software.amazon.awssdk.services.mde.model.EnvironmentStatus // import software.amazon.awssdk.services.mde.model.GetEnvironmentMetadataResponse // import software.amazon.awssdk.services.mde.model.IdeConfiguration // import software.amazon.awssdk.services.mde.model.InstanceType // import software.amazon.awssdk.services.mde.model.StartEnvironmentRequest // import software.amazon.awssdk.services.mde.model.TagResourceRequest // import software.amazon.awssdk.services.mde.model.UntagResourceRequest // import software.aws.toolkits.jetbrains.core.MockClientManagerRule // import software.aws.toolkits.jetbrains.gateway.GatewayProduct // // class ConfigureActionTest { // val applicationRule = ApplicationRule() // val mockClientManagerRule = MockClientManagerRule() // // @JvmField // @Rule // val ruleChain = RuleChain(applicationRule, mockClientManagerRule) // // @Test // fun `noop if no changes`() { // val client = mockClientManagerRule.create<MdeClient>() // val initialState = GetEnvironmentMetadataResponse.builder() // .id("id") // .arn("arn") // .status(EnvironmentStatus.RUNNING) // .instanceType(InstanceType.DEV_STANDARD1_MICRO) // .tags(listOf("3", "2", "1").associateWith { "" }) // .build() // val context = ConfigureAction.ReconfigureEnvironmentSettings( // labels = "1,2,3", // type = InstanceType.DEV_STANDARD1_MICRO // ) // // ConfigureAction.reconfigureIdeFromContext(client, initialState, context, mock()) // } // // @Test // fun `untag removed tags`() { // val client = mockClientManagerRule.create<MdeClient>() // val initialState = GetEnvironmentMetadataResponse.builder() // .id("id") // .arn("arn") // .status(EnvironmentStatus.RUNNING) // .instanceType(InstanceType.DEV_STANDARD1_MICRO) // .tags(listOf("3", "2", "1").associateWith { "" }) // .build() // val context = ConfigureAction.ReconfigureEnvironmentSettings( // labels = "1", // type = InstanceType.DEV_STANDARD1_MICRO // ) // // ConfigureAction.reconfigureIdeFromContext(client, initialState, context, mock()) // // argumentCaptor<UntagResourceRequest>().apply { // verify(client).untagResource(capture()) // verify(client, times(0)).tagResource(any<TagResourceRequest>()) // // assertThat(firstValue.tagKeys()).containsExactlyInAnyOrder("2", "3") // } // } // // @Test // fun `tag new tags`() { // val client = mockClientManagerRule.create<MdeClient>() // val initialState = GetEnvironmentMetadataResponse.builder() // .id("id") // .arn("arn") // .status(EnvironmentStatus.RUNNING) // .instanceType(InstanceType.DEV_STANDARD1_MICRO) // .tags(listOf("3", "2", "1").associateWith { "" }) // .build() // val context = ConfigureAction.ReconfigureEnvironmentSettings( // labels = "1,2,3,4,5,6", // type = InstanceType.DEV_STANDARD1_MICRO // ) // // ConfigureAction.reconfigureIdeFromContext(client, initialState, context, mock()) // // argumentCaptor<TagResourceRequest>().apply { // verify(client).tagResource(capture()) // verify(client, times(0)).untagResource(any<UntagResourceRequest>()) // // assertThat(firstValue.tags().keys).containsExactlyInAnyOrder("4", "5", "6") // } // } // // @Test // @Ignore // fun `changes instance type`() { // val client = mockClientManagerRule.create<MdeClient>() // val initialState = GetEnvironmentMetadataResponse.builder() // .id("id") // .arn("arn") // .status(EnvironmentStatus.RUNNING) // .instanceType(InstanceType.DEV_STANDARD1_MICRO) // .build() // val context = ConfigureAction.ReconfigureEnvironmentSettings( // labels = "1,2,3,4,5,6", // type = InstanceType.DEV_STANDARD1_LARGE // ) // // ConfigureAction.reconfigureIdeFromContext(client, initialState, context, mock()) // // argumentCaptor<StartEnvironmentRequest>().apply { // verify(client).startEnvironment(capture()) // // assertThat(firstValue.instanceType()).isEqualTo(InstanceType.DEV_STANDARD1_LARGE) // } // } // // @Test // @Ignore // fun `changes IDE`() { // val client = mockClientManagerRule.create<MdeClient>() // val initialState = GetEnvironmentMetadataResponse.builder() // .id("id") // .arn("arn") // .status(EnvironmentStatus.RUNNING) // .instanceType(InstanceType.DEV_STANDARD1_MICRO) // .build() // val context = ConfigureAction.ReconfigureEnvironmentSettings( // labels = "1,2,3,4,5,6", // type = InstanceType.DEV_STANDARD1_LARGE, // ide = GatewayProduct("ecrImage", "build", "product", "name", emptyList()) // ) // // ConfigureAction.reconfigureIdeFromContext(client, initialState, context, mock()) // // argumentCaptor<StartEnvironmentRequest>().apply { // verify(client).startEnvironment(capture()) // // assertThat(firstValue.ides()).satisfies { // assertThat(it.size).isEqualTo(1) // assertThat(it.first()).isEqualTo(IdeConfiguration.builder().runtime("ecrImage").build()) // } // } // } // }