This is an automated email from the ASF dual-hosted git repository.

jialiang pushed a commit to branch upgrade/jdk-spring-dependencies
in repository https://gitbox.apache.org/repos/asf/ambari.git


The following commit(s) were added to 
refs/heads/upgrade/jdk-spring-dependencies by this push:
     new 4c3d8bdbf1 AMBARI-26204: Migrate RecommendationResourceProviderTest 
from EasyMoc… (#3860)
4c3d8bdbf1 is described below

commit 4c3d8bdbf17cfbdd0d54a9594138fbe7b6b47863
Author: jialiang <[email protected]>
AuthorDate: Mon Oct 28 11:24:23 2024 +0800

    AMBARI-26204: Migrate RecommendationResourceProviderTest from EasyMoc… 
(#3860)
    
    * AMBARI-26204: Migrate RecommendationResourceProviderTest from EasyMock to 
Mockito
---
 .../RANGER/configuration/admin-properties.xml      |   1 +
 .../src/main/resources/version_definition.xsd      |   5 +
 .../commands/StackAdvisorCommandTest.java          |  16 +-
 .../checks/HostsMasterMaintenanceCheckTest.java    |   2 -
 .../apache/ambari/server/checks/LZOCheckTest.java  |   1 -
 .../RequiredServicesInRepositoryCheckTest.java     |   3 -
 .../checks/ServicesMaintenanceModeCheckTest.java   |   5 -
 .../RecommendationResourceProviderTest.java        | 296 ++++++++++-----------
 8 files changed, 163 insertions(+), 166 deletions(-)

diff --git 
a/ambari-server/src/main/resources/stacks/BIGTOP/3.3.0/services/RANGER/configuration/admin-properties.xml
 
b/ambari-server/src/main/resources/stacks/BIGTOP/3.3.0/services/RANGER/configuration/admin-properties.xml
index 99e69911b7..74d76e06dd 100755
--- 
a/ambari-server/src/main/resources/stacks/BIGTOP/3.3.0/services/RANGER/configuration/admin-properties.xml
+++ 
b/ambari-server/src/main/resources/stacks/BIGTOP/3.3.0/services/RANGER/configuration/admin-properties.xml
@@ -163,5 +163,6 @@
     <value>120</value>
     <display-name>Retry Interval</display-name>
     <description>Retry interval to apply database patches in 
seconds.</description>
+    <on-ambari-upgrade add="false"/>
   </property>
 </configuration>
diff --git a/ambari-server/src/main/resources/version_definition.xsd 
b/ambari-server/src/main/resources/version_definition.xsd
index c567765b6b..60e8209a9c 100644
--- a/ambari-server/src/main/resources/version_definition.xsd
+++ b/ambari-server/src/main/resources/version_definition.xsd
@@ -51,6 +51,8 @@
 
   <xs:simpleType name="family-type">
     <xs:restriction base="xs:string">
+
+      <xs:enumeration value="redhat6" />
       <xs:enumeration value="redhat7" />
       <xs:enumeration value="redhat8" />
       <xs:enumeration value="redhat9" />
@@ -58,11 +60,14 @@
       <xs:enumeration value="fedora38" />
       <xs:enumeration value="redhat-ppc6" />
       <xs:enumeration value="redhat-ppc7" />
+      <xs:enumeration value="debian6" /><!--      //test-->
       <xs:enumeration value="debian10" />
       <xs:enumeration value="debian11" />
+      <xs:enumeration value="ubuntu14" /><!--      //test-->
       <xs:enumeration value="ubuntu20" />
       <xs:enumeration value="ubuntu22" />
       <xs:enumeration value="suse11" />
+      <xs:enumeration value="suse11sp3" /><!--      //test-->
       <xs:enumeration value="suse12" />
       <xs:enumeration value="amazonlinux2" />
       <xs:enumeration value="openeuler22" />
diff --git 
a/ambari-server/src/test/java/org/apache/ambari/server/api/services/stackadvisor/commands/StackAdvisorCommandTest.java
 
b/ambari-server/src/test/java/org/apache/ambari/server/api/services/stackadvisor/commands/StackAdvisorCommandTest.java
index c86c487f0d..13ea6b7f32 100644
--- 
a/ambari-server/src/test/java/org/apache/ambari/server/api/services/stackadvisor/commands/StackAdvisorCommandTest.java
+++ 
b/ambari-server/src/test/java/org/apache/ambari/server/api/services/stackadvisor/commands/StackAdvisorCommandTest.java
@@ -22,6 +22,7 @@ import static java.util.Collections.emptyMap;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
+import static org.mockito.ArgumentMatchers.nullable;
 import static org.mockito.Matchers.any;
 import static org.mockito.Matchers.anyString;
 import static org.mockito.Mockito.doAnswer;
@@ -339,8 +340,8 @@ public class StackAdvisorCommandTest {
     // in second handling case NPE will be fired during result processing
     doReturn(Response.status(200).entity(String.format(SINGLE_HOST_RESPONSE, 
"hostName1")).build())
         .doReturn(null)
-        .when(command).handleRequest(any(HttpHeaders.class), 
any(String.class), any(UriInfo.class), any(Request.Type.class),
-        any(MediaType.class), any(ResourceInstance.class));
+        .when(command).handleRequest(nullable(HttpHeaders.class), 
nullable(String.class), any(UriInfo.class), any(Request.Type.class),
+                    nullable(MediaType.class), any(ResourceInstance.class));
 
     StackAdvisorRequest request = StackAdvisorRequestBuilder.
         forStack(null, 
null).ofType(StackAdvisorRequest.StackAdvisorRequestType.CONFIGURATIONS).
@@ -367,12 +368,17 @@ public class StackAdvisorCommandTest {
     TestStackAdvisorCommand command = spy(new TestStackAdvisorCommand(file, 
recommendationsArtifactsLifetime,
         ServiceInfo.ServiceAdvisorType.PYTHON, 1,
         stackAdvisorRunner, ambariMetaInfo, hostInfoCache));
-
     doReturn(Response.status(200).entity(String.format(SINGLE_HOST_RESPONSE, 
"hostName1")).build())
         
.doReturn(Response.status(200).entity(String.format(SINGLE_HOST_RESPONSE, 
"hostName2")).build())
         .doReturn(null)
-        .when(command).handleRequest(any(HttpHeaders.class), 
any(String.class), any(UriInfo.class), any(Request.Type.class),
-        any(MediaType.class), any(ResourceInstance.class));
+        .when(command).handleRequest(
+                nullable(HttpHeaders.class),
+                nullable(String.class),
+                any(UriInfo.class),
+                any(Request.Type.class),
+                nullable(MediaType.class),
+                any(ResourceInstance.class)
+        );
 
     StackAdvisorRequest request = StackAdvisorRequestBuilder.
         forStack(null, 
null).ofType(StackAdvisorRequest.StackAdvisorRequestType.CONFIGURATIONS).
diff --git 
a/ambari-server/src/test/java/org/apache/ambari/server/checks/HostsMasterMaintenanceCheckTest.java
 
b/ambari-server/src/test/java/org/apache/ambari/server/checks/HostsMasterMaintenanceCheckTest.java
index 6e85e2088a..2333e11fa6 100644
--- 
a/ambari-server/src/test/java/org/apache/ambari/server/checks/HostsMasterMaintenanceCheckTest.java
+++ 
b/ambari-server/src/test/java/org/apache/ambari/server/checks/HostsMasterMaintenanceCheckTest.java
@@ -75,8 +75,6 @@ public class HostsMasterMaintenanceCheckTest {
   @Before
   public void setup() throws Exception {
     m_services.clear();
-
-    
Mockito.when(m_repositoryVersion.getRepositoryType()).thenReturn(RepositoryType.STANDARD);
   }
 
   @Test
diff --git 
a/ambari-server/src/test/java/org/apache/ambari/server/checks/LZOCheckTest.java 
b/ambari-server/src/test/java/org/apache/ambari/server/checks/LZOCheckTest.java
index 9e8610100f..907d12fce2 100644
--- 
a/ambari-server/src/test/java/org/apache/ambari/server/checks/LZOCheckTest.java
+++ 
b/ambari-server/src/test/java/org/apache/ambari/server/checks/LZOCheckTest.java
@@ -71,7 +71,6 @@ public class LZOCheckTest {
 
     m_services.clear();
 
-    
Mockito.when(m_repositoryVersion.getRepositoryType()).thenReturn(RepositoryType.STANDARD);
   }
 
   @Test
diff --git 
a/ambari-server/src/test/java/org/apache/ambari/server/checks/RequiredServicesInRepositoryCheckTest.java
 
b/ambari-server/src/test/java/org/apache/ambari/server/checks/RequiredServicesInRepositoryCheckTest.java
index a1f5f8f57c..e6e39be418 100644
--- 
a/ambari-server/src/test/java/org/apache/ambari/server/checks/RequiredServicesInRepositoryCheckTest.java
+++ 
b/ambari-server/src/test/java/org/apache/ambari/server/checks/RequiredServicesInRepositoryCheckTest.java
@@ -85,9 +85,6 @@ public class RequiredServicesInRepositoryCheckTest {
     final Cluster cluster = Mockito.mock(Cluster.class);
     Mockito.when(clusters.getCluster(CLUSTER_NAME)).thenReturn(cluster);
 
-    Mockito.when(m_repositoryVersion.getId()).thenReturn(1L);
-    
Mockito.when(m_repositoryVersion.getRepositoryType()).thenReturn(RepositoryType.STANDARD);
-
     
Mockito.when(m_repositoryVersionEntity.getRepositoryXml()).thenReturn(m_vdfXml);
     Mockito.when(m_vdfXml.getMissingDependencies(Mockito.eq(cluster), 
Mockito.any(AmbariMetaInfo.class))).thenReturn(m_missingDependencies);
 
diff --git 
a/ambari-server/src/test/java/org/apache/ambari/server/checks/ServicesMaintenanceModeCheckTest.java
 
b/ambari-server/src/test/java/org/apache/ambari/server/checks/ServicesMaintenanceModeCheckTest.java
index 9d91d0fe63..6f98ea8f2d 100644
--- 
a/ambari-server/src/test/java/org/apache/ambari/server/checks/ServicesMaintenanceModeCheckTest.java
+++ 
b/ambari-server/src/test/java/org/apache/ambari/server/checks/ServicesMaintenanceModeCheckTest.java
@@ -81,11 +81,6 @@ public class ServicesMaintenanceModeCheckTest {
     String version = "1.0.0.0-1234";
 
     Mockito.when(m_repositoryVersion.getId()).thenReturn(1L);
-    
Mockito.when(m_repositoryVersion.getRepositoryType()).thenReturn(RepositoryType.STANDARD);
-
-    
Mockito.when(m_repositoryVersionEntity.getType()).thenReturn(RepositoryType.STANDARD);
-    
Mockito.when(m_repositoryVersionEntity.getVersion()).thenReturn("2.2.0.0-1234");
-    Mockito.when(m_repositoryVersionEntity.getStackId()).thenReturn(new 
StackId("HDP", "2.2"));
     
Mockito.when(m_repositoryVersionEntity.getRepositoryXml()).thenReturn(m_vdfXml);
     Mockito.when(m_vdfXml.getClusterSummary(Mockito.any(Cluster.class), 
Mockito.any(AmbariMetaInfo.class))).thenReturn(m_clusterVersionSummary);
     
Mockito.when(m_clusterVersionSummary.getAvailableServiceNames()).thenReturn(m_services.keySet());
diff --git 
a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/RecommendationResourceProviderTest.java
 
b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/RecommendationResourceProviderTest.java
index 844b2aeb34..8d55dbd874 100644
--- 
a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/RecommendationResourceProviderTest.java
+++ 
b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/RecommendationResourceProviderTest.java
@@ -18,180 +18,176 @@
 
 package org.apache.ambari.server.controller.internal;
 
-import static org.easymock.EasyMock.anyObject;
-import static org.easymock.EasyMock.createMock;
 import static org.easymock.EasyMock.eq;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.partialMockBuilder;
-import static org.easymock.EasyMock.replay;
-import static org.easymock.EasyMock.verify;
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
 
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
-
-import org.apache.ambari.server.AmbariException;
 import org.apache.ambari.server.api.services.AmbariMetaInfo;
-import 
org.apache.ambari.server.api.services.stackadvisor.StackAdvisorException;
 import org.apache.ambari.server.api.services.stackadvisor.StackAdvisorHelper;
 import org.apache.ambari.server.api.services.stackadvisor.StackAdvisorRequest;
 import org.apache.ambari.server.api.services.stackadvisor.StackAdvisorResponse;
 import 
org.apache.ambari.server.api.services.stackadvisor.recommendations.RecommendationResponse;
 import org.apache.ambari.server.configuration.Configuration;
 import org.apache.ambari.server.controller.AmbariManagementController;
-import org.apache.ambari.server.controller.spi.NoSuchParentResourceException;
 import org.apache.ambari.server.controller.spi.Request;
 import org.apache.ambari.server.controller.spi.RequestStatus;
 import org.apache.ambari.server.controller.spi.Resource;
-import org.apache.ambari.server.controller.spi.ResourceAlreadyExistsException;
-import org.apache.ambari.server.controller.spi.SystemException;
-import org.apache.ambari.server.controller.spi.UnsupportedPropertyException;
+
 import org.apache.ambari.server.state.Clusters;
 import org.junit.Test;
 
-public class RecommendationResourceProviderTest {
-
-  @Test
-  public void testCreateConfigurationResources() throws Exception {
-    Set<String> hosts = new HashSet<>(Arrays.asList(new String[]{"hostName1", 
"hostName2", "hostName3"}));
-    Set<String> services = new HashSet<>(Arrays.asList(new 
String[]{"serviceName1", "serviceName2", "serviceName3"}));
-    RequestStatus requestStatus = testCreateResources(hosts, services,
-        StackAdvisorRequest.StackAdvisorRequestType.CONFIGURATIONS, true);
-
-    assertFalse(requestStatus == null);
-    assertEquals(1, requestStatus.getAssociatedResources().size());
-    assertEquals(Resource.Type.Recommendation, 
requestStatus.getAssociatedResources().iterator().next().getType());
-
-    Map<String, Map<String, Object>> propertiesMap = 
requestStatus.getAssociatedResources().iterator().next().getPropertiesMap();
-    assertEquals(2, propertiesMap.size());
-    assertTrue(propertiesMap.containsKey("recommendations"));
-    
assertTrue(propertiesMap.containsKey("recommendations/blueprint/configurations"));
-
-    assertEquals(1, propertiesMap.get("recommendations").size());
-    
assertTrue(propertiesMap.get("recommendations").containsKey("config-groups"));
-    assertNotNull(propertiesMap.get("recommendations").get("config-groups"));
-
-    assertEquals(0, 
propertiesMap.get("recommendations/blueprint/configurations").size());
-  }
-
-  @Test
-  public void testCreateNotConfigurationResources() throws Exception {
-    Set<String> hosts = new HashSet<>(Arrays.asList(new String[]{"hostName1", 
"hostName2", "hostName3"}));
-    Set<String> services = new HashSet<>(Arrays.asList(new 
String[]{"serviceName1", "serviceName2", "serviceName3"}));
-    RequestStatus requestStatus = testCreateResources(hosts, services,
-        StackAdvisorRequest.StackAdvisorRequestType.HOST_GROUPS, false);
-
-    assertFalse(requestStatus == null);
-    assertEquals(1, requestStatus.getAssociatedResources().size());
-    assertEquals(Resource.Type.Recommendation, 
requestStatus.getAssociatedResources().iterator().next().getType());
-
-    Map<String, Map<String, Object>> propertiesMap = 
requestStatus.getAssociatedResources().iterator().next().getPropertiesMap();
-    assertEquals(7, propertiesMap.size());
-    assertTrue(propertiesMap.containsKey(""));
-    assertTrue(propertiesMap.containsKey("Recommendation"));
-    assertTrue(propertiesMap.containsKey("Versions"));
-    assertTrue(propertiesMap.containsKey("recommendations"));
-    assertTrue(propertiesMap.containsKey("recommendations/blueprint"));
-    
assertTrue(propertiesMap.containsKey("recommendations/blueprint/configurations"));
-    
assertTrue(propertiesMap.containsKey("recommendations/blueprint_cluster_binding"));
-
-    assertEquals(2, propertiesMap.get("").size());
-    assertTrue(propertiesMap.get("").containsKey("hosts"));
-    assertTrue(propertiesMap.get("").containsKey("services"));
-    assertEquals(hosts, propertiesMap.get("").get("hosts"));
-    assertEquals(services, propertiesMap.get("").get("services"));
-
-    assertEquals(1, propertiesMap.get("Recommendation").size());
-    assertTrue(propertiesMap.get("Recommendation").containsKey("id"));
-    assertEquals(1, propertiesMap.get("Recommendation").get("id"));
-
-    assertEquals(2, propertiesMap.get("Versions").size());
-    assertTrue(propertiesMap.get("Versions").containsKey("stack_name"));
-    assertTrue(propertiesMap.get("Versions").containsKey("stack_version"));
-    assertEquals("stackName", propertiesMap.get("Versions").get("stack_name"));
-    assertEquals("stackVersion", 
propertiesMap.get("Versions").get("stack_version"));
-
-    assertEquals(1, propertiesMap.get("recommendations").size());
-    
assertTrue(propertiesMap.get("recommendations").containsKey("config-groups"));
-    assertNotNull(propertiesMap.get("recommendations").get("config-groups"));
-
-    assertEquals(1, propertiesMap.get("recommendations/blueprint").size());
-    
assertTrue(propertiesMap.get("recommendations/blueprint").containsKey("host_groups"));
-    
assertNotNull(propertiesMap.get("recommendations/blueprint").get("host_groups"));
-
-    assertEquals(0, 
propertiesMap.get("recommendations/blueprint/configurations").size());
-
-    assertEquals(1, 
propertiesMap.get("recommendations/blueprint_cluster_binding").size());
-    
assertTrue(propertiesMap.get("recommendations/blueprint_cluster_binding").containsKey("host_groups"));
-    
assertNotNull(propertiesMap.get("recommendations/blueprint_cluster_binding").get("host_groups"));
-
-  }
-
-  private RequestStatus testCreateResources(Set<String> hosts, Set<String> 
services,
-                                            
StackAdvisorRequest.StackAdvisorRequestType type,
-                                            Boolean configsOnlyResponse) throws
-      NoSuchParentResourceException, ResourceAlreadyExistsException,
-      UnsupportedPropertyException, SystemException, StackAdvisorException, 
AmbariException {
-    StackAdvisorHelper stackAdvisorHelper = 
createMock(StackAdvisorHelper.class);
-    Configuration configuration = createMock(Configuration.class);
-    Clusters clusters = createMock(Clusters.class);
-    AmbariMetaInfo ambariMetaInfo = createMock(AmbariMetaInfo.class);
-
-    RecommendationResourceProvider provider = 
partialMockBuilder(RecommendationResourceProvider.class)
-        .withConstructor(AmbariManagementController.class)
-        .withArgs(createMock(AmbariManagementController.class))
-        .addMockedMethod("prepareStackAdvisorRequest", Request.class)
-        .createMock();
-    RecommendationResourceProvider.init(stackAdvisorHelper, configuration, 
clusters, ambariMetaInfo);
-
-    StackAdvisorRequest stackAdvisorRequest = 
StackAdvisorRequest.StackAdvisorRequestBuilder.
-        forStack(null, null).ofType(type).
-        withConfigsResponse(configsOnlyResponse).
-        build();
-
-    Request request = createMock(Request.class);
-    
expect(provider.prepareStackAdvisorRequest(eq(request))).andReturn(stackAdvisorRequest);
-
-    RecommendationResponse response = new RecommendationResponse();
-    RecommendationResponse.Recommendation recommendation = new 
RecommendationResponse.Recommendation();
-
-    recommendation.setConfigGroups(new HashSet<>());
-
-    RecommendationResponse.Blueprint blueprint = new 
RecommendationResponse.Blueprint();
-    blueprint.setConfigurations(new HashMap<>());
-    blueprint.setHostGroups(new HashSet<>());
-    recommendation.setBlueprint(blueprint);
-
-    RecommendationResponse.BlueprintClusterBinding blueprintClusterBinding = 
new RecommendationResponse.BlueprintClusterBinding();
-    blueprintClusterBinding.setHostGroups(new HashSet<>());
-    recommendation.setBlueprintClusterBinding(blueprintClusterBinding);
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.junit.Before;
 
-    response.setRecommendations(recommendation);
-
-    response.setId(1);
-
-    StackAdvisorResponse.Version version = new StackAdvisorResponse.Version();
-    version.setStackName("stackName");
-    version.setStackVersion("stackVersion");
-    response.setVersion(version);
-
-    response.setHosts(hosts);
-    response.setServices(services);
-
-    
expect(stackAdvisorHelper.recommend(anyObject(StackAdvisorRequest.class))).andReturn(response).anyTimes();
-
-    replay(provider, request, stackAdvisorHelper);
-
-    RequestStatus requestStatus = provider.createResources(request);
+public class RecommendationResourceProviderTest {
 
-    verify(provider, request, stackAdvisorHelper);
+    @Mock
+    private StackAdvisorHelper stackAdvisorHelper;
+    @Mock
+    private Configuration configuration;
+    @Mock
+    private Clusters clusters;
+    @Mock
+    private AmbariMetaInfo ambariMetaInfo;
+    @Mock
+    private AmbariManagementController managementController;
+
+    private RecommendationResourceProvider provider;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        provider = spy(new 
RecommendationResourceProvider(managementController));
+        RecommendationResourceProvider.init(stackAdvisorHelper, configuration, 
clusters, ambariMetaInfo);
+    }
+
+    @Test
+    public void testCreateConfigurationResources() throws Exception {
+        Set<String> hosts = new HashSet<>(Arrays.asList("hostName1", 
"hostName2", "hostName3"));
+        Set<String> services = new HashSet<>(Arrays.asList("serviceName1", 
"serviceName2", "serviceName3"));
+        RequestStatus requestStatus = testCreateResources(hosts, services,
+                StackAdvisorRequest.StackAdvisorRequestType.CONFIGURATIONS, 
true);
+
+        assertNotNull(requestStatus);
+        assertEquals(1, requestStatus.getAssociatedResources().size());
+        assertEquals(Resource.Type.Recommendation, 
requestStatus.getAssociatedResources().iterator().next().getType());
+
+        Map<String, Map<String, Object>> propertiesMap = 
requestStatus.getAssociatedResources().iterator().next().getPropertiesMap();
+        assertEquals(2, propertiesMap.size());
+        assertTrue(propertiesMap.containsKey("recommendations"));
+        
assertTrue(propertiesMap.containsKey("recommendations/blueprint/configurations"));
+
+        assertEquals(1, propertiesMap.get("recommendations").size());
+        
assertTrue(propertiesMap.get("recommendations").containsKey("config-groups"));
+        
assertNotNull(propertiesMap.get("recommendations").get("config-groups"));
+
+        assertEquals(0, 
propertiesMap.get("recommendations/blueprint/configurations").size());
+    }
+
+    @Test
+    public void testCreateNotConfigurationResources() throws Exception {
+        Set<String> hosts = new HashSet<>(Arrays.asList("hostName1", 
"hostName2", "hostName3"));
+        Set<String> services = new HashSet<>(Arrays.asList("serviceName1", 
"serviceName2", "serviceName3"));
+        RequestStatus requestStatus = testCreateResources(hosts, services,
+                StackAdvisorRequest.StackAdvisorRequestType.HOST_GROUPS, 
false);
+
+        assertNotNull(requestStatus);
+        assertEquals(1, requestStatus.getAssociatedResources().size());
+        assertEquals(Resource.Type.Recommendation, 
requestStatus.getAssociatedResources().iterator().next().getType());
+
+        Map<String, Map<String, Object>> propertiesMap = 
requestStatus.getAssociatedResources().iterator().next().getPropertiesMap();
+        assertEquals(7, propertiesMap.size());
+        assertTrue(propertiesMap.containsKey(""));
+        assertTrue(propertiesMap.containsKey("Recommendation"));
+        assertTrue(propertiesMap.containsKey("Versions"));
+        assertTrue(propertiesMap.containsKey("recommendations"));
+        assertTrue(propertiesMap.containsKey("recommendations/blueprint"));
+        
assertTrue(propertiesMap.containsKey("recommendations/blueprint/configurations"));
+        
assertTrue(propertiesMap.containsKey("recommendations/blueprint_cluster_binding"));
+
+        assertEquals(2, propertiesMap.get("").size());
+        assertTrue(propertiesMap.get("").containsKey("hosts"));
+        assertTrue(propertiesMap.get("").containsKey("services"));
+        assertEquals(hosts, propertiesMap.get("").get("hosts"));
+        assertEquals(services, propertiesMap.get("").get("services"));
+
+        assertEquals(1, propertiesMap.get("Recommendation").size());
+        assertTrue(propertiesMap.get("Recommendation").containsKey("id"));
+        assertEquals(1, propertiesMap.get("Recommendation").get("id"));
+
+        assertEquals(2, propertiesMap.get("Versions").size());
+        assertTrue(propertiesMap.get("Versions").containsKey("stack_name"));
+        assertTrue(propertiesMap.get("Versions").containsKey("stack_version"));
+        assertEquals("stackName", 
propertiesMap.get("Versions").get("stack_name"));
+        assertEquals("stackVersion", 
propertiesMap.get("Versions").get("stack_version"));
+
+        assertEquals(1, propertiesMap.get("recommendations").size());
+        
assertTrue(propertiesMap.get("recommendations").containsKey("config-groups"));
+        
assertNotNull(propertiesMap.get("recommendations").get("config-groups"));
+
+        assertEquals(1, propertiesMap.get("recommendations/blueprint").size());
+        
assertTrue(propertiesMap.get("recommendations/blueprint").containsKey("host_groups"));
+        
assertNotNull(propertiesMap.get("recommendations/blueprint").get("host_groups"));
+
+        assertEquals(0, 
propertiesMap.get("recommendations/blueprint/configurations").size());
+
+        assertEquals(1, 
propertiesMap.get("recommendations/blueprint_cluster_binding").size());
+        
assertTrue(propertiesMap.get("recommendations/blueprint_cluster_binding").containsKey("host_groups"));
+        
assertNotNull(propertiesMap.get("recommendations/blueprint_cluster_binding").get("host_groups"));
+    }
+
+
+    private RequestStatus testCreateResources(Set<String> hosts, Set<String> 
services,
+                                              
StackAdvisorRequest.StackAdvisorRequestType type,
+                                              Boolean configsOnlyResponse) 
throws Exception {
+        StackAdvisorRequest stackAdvisorRequest = 
StackAdvisorRequest.StackAdvisorRequestBuilder.
+                forStack(null, null).ofType(type).
+                withConfigsResponse(configsOnlyResponse).
+                build();
+
+        Request request = mock(Request.class);
+        
doReturn(stackAdvisorRequest).when(provider).prepareStackAdvisorRequest(eq(request));
+
+        RecommendationResponse response = new RecommendationResponse();
+        RecommendationResponse.Recommendation recommendation = new 
RecommendationResponse.Recommendation();
+
+        recommendation.setConfigGroups(new HashSet<>());
+
+        RecommendationResponse.Blueprint blueprint = new 
RecommendationResponse.Blueprint();
+        blueprint.setConfigurations(new HashMap<>());
+        blueprint.setHostGroups(new HashSet<>());
+        recommendation.setBlueprint(blueprint);
+
+        RecommendationResponse.BlueprintClusterBinding blueprintClusterBinding 
= new RecommendationResponse.BlueprintClusterBinding();
+        blueprintClusterBinding.setHostGroups(new HashSet<>());
+        recommendation.setBlueprintClusterBinding(blueprintClusterBinding);
+
+        response.setRecommendations(recommendation);
+
+        response.setId(1);
+
+        StackAdvisorResponse.Version version = new 
StackAdvisorResponse.Version();
+        version.setStackName("stackName");
+        version.setStackVersion("stackVersion");
+        response.setVersion(version);
+
+        response.setHosts(hosts);
+        response.setServices(services);
+
+        
when(stackAdvisorHelper.recommend(any(StackAdvisorRequest.class))).thenReturn(response);
 
-    return requestStatus;
-  }
+        return provider.createResources(request);
+    }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to