http://git-wip-us.apache.org/repos/asf/ambari/blob/f9abdafa/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClusterKerberosDescriptorResourceProviderTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClusterKerberosDescriptorResourceProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClusterKerberosDescriptorResourceProviderTest.java index f551b42..1f91915 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClusterKerberosDescriptorResourceProviderTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClusterKerberosDescriptorResourceProviderTest.java @@ -18,6 +18,7 @@ package org.apache.ambari.server.controller.internal; +import com.google.gson.Gson; import com.google.inject.AbstractModule; import com.google.inject.Guice; import com.google.inject.Injector; @@ -65,6 +66,7 @@ import java.util.List; import java.util.Map; import java.util.Properties; import java.util.Set; +import java.util.TreeMap; import static org.easymock.EasyMock.*; @@ -74,111 +76,105 @@ import static org.easymock.EasyMock.*; @SuppressWarnings("unchecked") public class ClusterKerberosDescriptorResourceProviderTest extends EasyMockSupport { - private static final Map<String, Object> STACK_MAP = - new HashMap<String, Object>() { - { - put("properties", new HashMap<String, Object>() {{ - put("realm", "EXAMPLE.COM"); - put("some.property", "Hello World"); - }}); - - put(AbstractKerberosDescriptor.Type.AUTH_TO_LOCAL_PROPERTY.getDescriptorPluralName(), new ArrayList<String>() {{ - add("global.name.rules"); - }}); - - put(AbstractKerberosDescriptor.Type.SERVICE.getDescriptorPluralName(), new ArrayList<Object>() {{ - add(KerberosServiceDescriptorTest.MAP_VALUE); - }}); - put(AbstractKerberosDescriptor.Type.CONFIGURATION.getDescriptorPluralName(), new ArrayList<Map<String, Object>>() {{ - add(new HashMap<String, Object>() { - { - put("cluster-conf", new HashMap<String, String>() { - { - put("property1", "red"); - } - }); - } - }); - }}); - put(AbstractKerberosDescriptor.Type.IDENTITY.getDescriptorPluralName(), new ArrayList<Object>() {{ - add(new HashMap<String, Object>() { - { - put("name", "shared"); - put("principal", new HashMap<String, Object>(KerberosPrincipalDescriptorTest.MAP_VALUE)); - put("keytab", new HashMap<String, Object>() { - { - put("file", "/etc/security/keytabs/subject.service.keytab"); - - put("owner", new HashMap<String, Object>() {{ - put("name", "root"); - put("access", "rw"); - }}); - - put("group", new HashMap<String, Object>() {{ - put("name", "hadoop"); - put("access", "r"); - }}); - - put("configuration", "service-site/service2.component.keytab.file"); - } - }); - } - }); - }}); - } - }; - - private static final Map<String, Object> USER_MAP = - new HashMap<String, Object>() { - { - put("properties", new HashMap<String, Object>() {{ - put("realm", "HWX.COM"); - put("some.property", "Hello World"); - }}); - - put(AbstractKerberosDescriptor.Type.CONFIGURATION.getDescriptorPluralName(), new ArrayList<Map<String, Object>>() {{ - add(new HashMap<String, Object>() { - { - put("cluster-conf", new HashMap<String, String>() { - { - put("property1", "blue"); - put("property2", "orange"); - } - }); - } - }); - }}); - put(AbstractKerberosDescriptor.Type.IDENTITY.getDescriptorPluralName(), new ArrayList<Object>() {{ - add(new HashMap<String, Object>() { - { - put("name", "shared"); - put("principal", new HashMap<String, Object>(KerberosPrincipalDescriptorTest.MAP_VALUE)); - put("keytab", new HashMap<String, Object>() { - { - put("file", "/etc/security/keytabs/subject.service.keytab"); - - put("owner", new HashMap<String, Object>() {{ - put("name", "root"); - put("access", "rw"); - }}); - - put("group", new HashMap<String, Object>() {{ - put("name", "hadoop"); - put("access", "r"); - }}); - - put("configuration", "service-site/service2.component.keytab.file"); - } - }); - } - }); - }}); - } - }; - - private static final Map<String, Object> COMPOSITE_MAP = new HashMap<String, Object>(); + private static final Gson GSON = new Gson(); + + private static final Map<String, Object> STACK_MAP; + + private static final Map<String, Object> USER_MAP; + + private static final Map<String, Object> COMPOSITE_MAP; static { + TreeMap<String, Object> stackProperties = new TreeMap<String, Object>(); + stackProperties.put("realm", "EXAMPLE.COM"); + stackProperties.put("some.property", "Hello World"); + + Collection<String> authToLocalRules = new ArrayList<String>(); + authToLocalRules.add("global.name.rules"); + + TreeMap<String, Object> stackServices = new TreeMap<String, Object>(); + stackServices.put((String) KerberosServiceDescriptorTest.MAP_VALUE.get("name"), KerberosServiceDescriptorTest.MAP_VALUE); + + TreeMap<String, Object> stackClusterConfProperties = new TreeMap<String, Object>(); + stackClusterConfProperties.put("property1", "red"); + + TreeMap<String, Object> stackClusterConf = new TreeMap<String, Object>(); + stackClusterConf.put("cluster-conf", stackClusterConfProperties); + + TreeMap<String, Object> stackConfigurations = new TreeMap<String, Object>(); + stackConfigurations.put("cluster-conf", stackClusterConf); + + TreeMap<String, Object> stackSharedIdentityKeytabOwner = new TreeMap<String, Object>(); + stackSharedIdentityKeytabOwner.put("name", "root"); + stackSharedIdentityKeytabOwner.put("access", "rw"); + + TreeMap<String, Object> sharedIdentityKeytabGroup = new TreeMap<String, Object>(); + sharedIdentityKeytabGroup.put("name", "hadoop"); + sharedIdentityKeytabGroup.put("access", "r"); + + TreeMap<String, Object> stackSharedIdentityKeytab = new TreeMap<String, Object>(); + stackSharedIdentityKeytab.put("file", "/etc/security/keytabs/subject.service.keytab"); + stackSharedIdentityKeytab.put("owner", stackSharedIdentityKeytabOwner); + stackSharedIdentityKeytab.put("group", sharedIdentityKeytabGroup); + stackSharedIdentityKeytab.put("configuration", "service-site/service2.component.keytab.file"); + + TreeMap<String, Object> stackSharedIdentity = new TreeMap<String, Object>(); + stackSharedIdentity.put("name", "shared"); + stackSharedIdentity.put("principal", new TreeMap<String, Object>(KerberosPrincipalDescriptorTest.MAP_VALUE)); + stackSharedIdentity.put("keytab", stackSharedIdentityKeytab); + + TreeMap<String, Object> stackIdentities = new TreeMap<String, Object>(); + stackIdentities.put("shared", stackSharedIdentity); + + STACK_MAP = new TreeMap<String, Object>(); + STACK_MAP.put("properties", stackProperties); + STACK_MAP.put(AbstractKerberosDescriptor.Type.AUTH_TO_LOCAL_PROPERTY.getDescriptorPluralName(), authToLocalRules); + STACK_MAP.put(AbstractKerberosDescriptor.Type.SERVICE.getDescriptorPluralName(), stackServices.values()); + STACK_MAP.put(AbstractKerberosDescriptor.Type.CONFIGURATION.getDescriptorPluralName(), stackConfigurations.values()); + STACK_MAP.put(AbstractKerberosDescriptor.Type.IDENTITY.getDescriptorPluralName(), stackIdentities.values()); + + TreeMap<String, Object> userProperties = new TreeMap<String, Object>(); + userProperties.put("realm", "HWX.COM"); + userProperties.put("some.property", "Hello World"); + + TreeMap<String, Object> userClusterConfProperties = new TreeMap<String, Object>(); + userClusterConfProperties.put("property1", "blue"); + userClusterConfProperties.put("property2", "orange"); + + TreeMap<String, Object> userClusterConf = new TreeMap<String, Object>(); + userClusterConf.put("cluster-conf", userClusterConfProperties); + + TreeMap<String, Object> userConfigurations = new TreeMap<String, Object>(); + userConfigurations.put("cluster-conf", userClusterConf); + + TreeMap<String, Object> userSharedIdentityKeytabOwner = new TreeMap<String, Object>(); + userSharedIdentityKeytabOwner.put("name", "root"); + userSharedIdentityKeytabOwner.put("access", "rw"); + + TreeMap<String, Object> userSharedIdentityKeytabGroup = new TreeMap<String, Object>(); + userSharedIdentityKeytabGroup.put("name", "hadoop"); + userSharedIdentityKeytabGroup.put("access", "r"); + + TreeMap<String, Object> userSharedIdentityKeytab = new TreeMap<String, Object>(); + userSharedIdentityKeytab.put("file", "/etc/security/keytabs/subject.service.keytab"); + userSharedIdentityKeytab.put("owner", userSharedIdentityKeytabOwner); + userSharedIdentityKeytab.put("group", userSharedIdentityKeytabGroup); + userSharedIdentityKeytab.put("configuration", "service-site/service2.component.keytab.file"); + + TreeMap<String, Object> userSharedIdentity = new TreeMap<String, Object>(); + userSharedIdentity.put("name", "shared"); + userSharedIdentity.put("principal", new TreeMap<String, Object>(KerberosPrincipalDescriptorTest.MAP_VALUE)); + userSharedIdentity.put("keytab", userSharedIdentityKeytab); + + TreeMap<String, Object> userIdentities = new TreeMap<String, Object>(); + userIdentities.put("shared", userSharedIdentity); + + USER_MAP = new TreeMap<String, Object>(); + USER_MAP.put("properties", userProperties); + USER_MAP.put(AbstractKerberosDescriptor.Type.CONFIGURATION.getDescriptorPluralName(), userConfigurations.values()); + USER_MAP.put(AbstractKerberosDescriptor.Type.IDENTITY.getDescriptorPluralName(), userIdentities.values()); + + COMPOSITE_MAP = new TreeMap<String, Object>(); COMPOSITE_MAP.putAll(STACK_MAP); COMPOSITE_MAP.putAll(USER_MAP); } @@ -396,17 +392,7 @@ public class ClusterKerberosDescriptorResourceProviderTest extends EasyMockSuppo results = provider.getResources(request, new AndPredicate(clusterPredicate, typePredicate)); Assert.assertEquals(1, results.size()); - for (Resource result : results) { - Assert.assertEquals("c1", result.getPropertyValue(ClusterKerberosDescriptorResourceProvider.CLUSTER_KERBEROS_DESCRIPTOR_CLUSTER_NAME_PROPERTY_ID)); - Assert.assertEquals("STACK", result.getPropertyValue(ClusterKerberosDescriptorResourceProvider.CLUSTER_KERBEROS_DESCRIPTOR_TYPE_PROPERTY_ID)); - - // Reconstruct the deconstructed Kerberos Descriptor - Map partial1 = result.getPropertiesMap().get(ClusterKerberosDescriptorResourceProvider.CLUSTER_KERBEROS_DESCRIPTOR_DESCRIPTOR_PROPERTY_ID); - Map partial2 = result.getPropertiesMap().get("KerberosDescriptor/kerberos_descriptor/properties"); - partial1.put("properties", partial2); - - Assert.assertEquals(STACK_MAP, partial1); - } + testResults("STACK", STACK_MAP, results); // -------------- // Get the USER Kerberos Descriptor @@ -417,17 +403,7 @@ public class ClusterKerberosDescriptorResourceProviderTest extends EasyMockSuppo results = provider.getResources(request, new AndPredicate(clusterPredicate, typePredicate)); Assert.assertEquals(1, results.size()); - for (Resource result : results) { - Assert.assertEquals("c1", result.getPropertyValue(ClusterKerberosDescriptorResourceProvider.CLUSTER_KERBEROS_DESCRIPTOR_CLUSTER_NAME_PROPERTY_ID)); - Assert.assertEquals("USER", result.getPropertyValue(ClusterKerberosDescriptorResourceProvider.CLUSTER_KERBEROS_DESCRIPTOR_TYPE_PROPERTY_ID)); - - // Reconstruct the deconstructed Kerberos Descriptor - Map partial1 = result.getPropertiesMap().get(ClusterKerberosDescriptorResourceProvider.CLUSTER_KERBEROS_DESCRIPTOR_DESCRIPTOR_PROPERTY_ID); - Map partial2 = result.getPropertiesMap().get("KerberosDescriptor/kerberos_descriptor/properties"); - partial1.put("properties", partial2); - - Assert.assertEquals(USER_MAP, partial1); - } + testResults("USER", USER_MAP, results); // -------------- // Get the COMPOSITE Kerberos Descriptor @@ -438,17 +414,7 @@ public class ClusterKerberosDescriptorResourceProviderTest extends EasyMockSuppo results = provider.getResources(request, new AndPredicate(clusterPredicate, typePredicate)); Assert.assertEquals(1, results.size()); - for (Resource result : results) { - Assert.assertEquals("c1", result.getPropertyValue(ClusterKerberosDescriptorResourceProvider.CLUSTER_KERBEROS_DESCRIPTOR_CLUSTER_NAME_PROPERTY_ID)); - Assert.assertEquals("COMPOSITE", result.getPropertyValue(ClusterKerberosDescriptorResourceProvider.CLUSTER_KERBEROS_DESCRIPTOR_TYPE_PROPERTY_ID)); - - // Reconstruct the deconstructed Kerberos Descriptor - Map partial1 = result.getPropertiesMap().get(ClusterKerberosDescriptorResourceProvider.CLUSTER_KERBEROS_DESCRIPTOR_DESCRIPTOR_PROPERTY_ID); - Map partial2 = result.getPropertiesMap().get("KerberosDescriptor/kerberos_descriptor/properties"); - partial1.put("properties", partial2); - - Assert.assertEquals(COMPOSITE_MAP, partial1); - } + testResults("COMPOSITE", COMPOSITE_MAP, results); verifyAll(); } @@ -553,7 +519,7 @@ public class ClusterKerberosDescriptorResourceProviderTest extends EasyMockSuppo Map partial2 = result.getPropertiesMap().get("KerberosDescriptor/kerberos_descriptor/properties"); partial1.put("properties", partial2); - Assert.assertEquals(STACK_MAP, partial1); + Assert.assertEquals(GSON.toJson(STACK_MAP), GSON.toJson(partial1)); } // -------------- @@ -574,7 +540,7 @@ public class ClusterKerberosDescriptorResourceProviderTest extends EasyMockSuppo Map partial2 = result.getPropertiesMap().get("KerberosDescriptor/kerberos_descriptor/properties"); partial1.put("properties", partial2); - Assert.assertEquals(USER_MAP, partial1); + Assert.assertEquals(GSON.toJson(USER_MAP), GSON.toJson(partial1)); } // -------------- @@ -586,24 +552,14 @@ public class ClusterKerberosDescriptorResourceProviderTest extends EasyMockSuppo results = provider.getResources(request, new AndPredicate(clusterPredicate, typePredicate)); Assert.assertEquals(1, results.size()); - for (Resource result : results) { - Assert.assertEquals("c1", result.getPropertyValue(ClusterKerberosDescriptorResourceProvider.CLUSTER_KERBEROS_DESCRIPTOR_CLUSTER_NAME_PROPERTY_ID)); - Assert.assertEquals("COMPOSITE", result.getPropertyValue(ClusterKerberosDescriptorResourceProvider.CLUSTER_KERBEROS_DESCRIPTOR_TYPE_PROPERTY_ID)); - - // Reconstruct the deconstructed Kerberos Descriptor - Map partial1 = result.getPropertiesMap().get(ClusterKerberosDescriptorResourceProvider.CLUSTER_KERBEROS_DESCRIPTOR_DESCRIPTOR_PROPERTY_ID); - Map partial2 = result.getPropertiesMap().get("KerberosDescriptor/kerberos_descriptor/properties"); - partial1.put("properties", partial2); - - Assert.assertEquals(COMPOSITE_MAP, partial1); - } + testResults("COMPOSITE", COMPOSITE_MAP, results); verifyAll(); List<? extends Collection<String>> capturedValues = captureAdditionalServices.getValues(); Assert.assertEquals(3, capturedValues.size()); - for(Collection<String> capturedValue: capturedValues) { + for (Collection<String> capturedValue : capturedValues) { Assert.assertEquals(3, capturedValue.size()); Assert.assertTrue(capturedValue.contains("HIVE")); Assert.assertTrue(capturedValue.contains("PIG")); @@ -821,5 +777,19 @@ public class ClusterKerberosDescriptorResourceProviderTest extends EasyMockSuppo verifyAll(); } + + private void testResults(String type, Map<String, Object> expectedData, Set<Resource> results) { + for (Resource result : results) { + Assert.assertEquals("c1", result.getPropertyValue(ClusterKerberosDescriptorResourceProvider.CLUSTER_KERBEROS_DESCRIPTOR_CLUSTER_NAME_PROPERTY_ID)); + Assert.assertEquals(type, result.getPropertyValue(ClusterKerberosDescriptorResourceProvider.CLUSTER_KERBEROS_DESCRIPTOR_TYPE_PROPERTY_ID)); + + // Reconstruct the deconstructed Kerberos Descriptor + Map partial1 = result.getPropertiesMap().get(ClusterKerberosDescriptorResourceProvider.CLUSTER_KERBEROS_DESCRIPTOR_DESCRIPTOR_PROPERTY_ID); + Map partial2 = result.getPropertiesMap().get("KerberosDescriptor/kerberos_descriptor/properties"); + partial1.put("properties", partial2); + + Assert.assertEquals(GSON.toJson(expectedData), GSON.toJson(partial1)); + } + } }
http://git-wip-us.apache.org/repos/asf/ambari/blob/f9abdafa/ambari-server/src/test/java/org/apache/ambari/server/state/kerberos/KerberosComponentDescriptorTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/state/kerberos/KerberosComponentDescriptorTest.java b/ambari-server/src/test/java/org/apache/ambari/server/state/kerberos/KerberosComponentDescriptorTest.java index b74f417..201d84e 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/state/kerberos/KerberosComponentDescriptorTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/state/kerberos/KerberosComponentDescriptorTest.java @@ -1,4 +1,4 @@ -/** +/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information @@ -24,11 +24,12 @@ import org.apache.ambari.server.AmbariException; import org.junit.Test; import java.util.ArrayList; -import java.util.HashMap; +import java.util.Collection; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.TreeMap; import java.util.TreeSet; public class KerberosComponentDescriptorTest { @@ -51,34 +52,35 @@ public class KerberosComponentDescriptorTest { " ]" + "}"; - public static final Map<String, Object> MAP_VALUE = - new HashMap<String, Object>() { - { - put("name", "A_DIFFERENT_COMPONENT_NAME"); - put(AbstractKerberosDescriptor.Type.IDENTITY.getDescriptorPluralName(), new ArrayList<Object>() {{ - add(KerberosIdentityDescriptorTest.MAP_VALUE); - add(KerberosIdentityDescriptorTest.MAP_VALUE_ALT); - add(KerberosIdentityDescriptorTest.MAP_VALUE_REFERENCE); - }}); - put(AbstractKerberosDescriptor.Type.CONFIGURATION.getDescriptorPluralName(), new ArrayList<Map<String, Object>>() {{ - add(new HashMap<String, Object>() { - { - put("service-site", new HashMap<String, String>() { - { - put("service.component.property1", "red"); - put("service.component.property", "green"); - } - }); - } - }); - }}); - put(AbstractKerberosDescriptor.Type.AUTH_TO_LOCAL_PROPERTY.getDescriptorPluralName(), new ArrayList<String>() {{ - add("component.name.rules2"); - }}); - } - }; - - public static void validateFromJSON(KerberosComponentDescriptor componentDescriptor) { + static final Map<String, Object> MAP_VALUE; + + static { + Map<String, Object> identitiesMap = new TreeMap<String, Object>(); + identitiesMap.put((String) KerberosIdentityDescriptorTest.MAP_VALUE.get("name"), KerberosIdentityDescriptorTest.MAP_VALUE); + identitiesMap.put((String) KerberosIdentityDescriptorTest.MAP_VALUE_ALT.get("name"), KerberosIdentityDescriptorTest.MAP_VALUE_ALT); + identitiesMap.put((String) KerberosIdentityDescriptorTest.MAP_VALUE_REFERENCE.get("name"), KerberosIdentityDescriptorTest.MAP_VALUE_REFERENCE); + + Map<String, Object> serviceSiteProperties = new TreeMap<String, Object>(); + serviceSiteProperties.put("service.component.property1", "red"); + serviceSiteProperties.put("service.component.property", "green"); + + Map<String, Map<String, Object>> serviceSiteMap = new TreeMap<String, Map<String, Object>>(); + serviceSiteMap.put("service-site", serviceSiteProperties); + + TreeMap<String, Map<String, Map<String, Object>>> configurationsMap = new TreeMap<String, Map<String, Map<String, Object>>>(); + configurationsMap.put("service-site", serviceSiteMap); + + Collection<String> authToLocalRules = new ArrayList<String>(); + authToLocalRules.add("component.name.rules2"); + + MAP_VALUE = new TreeMap<String, Object>(); + MAP_VALUE.put("name", "A_DIFFERENT_COMPONENT_NAME"); + MAP_VALUE.put(AbstractKerberosDescriptor.Type.IDENTITY.getDescriptorPluralName(), new ArrayList<>(identitiesMap.values())); + MAP_VALUE.put(AbstractKerberosDescriptor.Type.CONFIGURATION.getDescriptorPluralName(), configurationsMap.values()); + MAP_VALUE.put(AbstractKerberosDescriptor.Type.AUTH_TO_LOCAL_PROPERTY.getDescriptorPluralName(), authToLocalRules); + } + + static void validateFromJSON(KerberosComponentDescriptor componentDescriptor) { Assert.assertNotNull(componentDescriptor); Assert.assertTrue(componentDescriptor.isContainer()); @@ -112,7 +114,7 @@ public class KerberosComponentDescriptorTest { Assert.assertEquals("component.name.rules1", authToLocalProperties.iterator().next()); } - public static void validateFromMap(KerberosComponentDescriptor componentDescriptor) { + static void validateFromMap(KerberosComponentDescriptor componentDescriptor) { Assert.assertNotNull(componentDescriptor); Assert.assertTrue(componentDescriptor.isContainer()); @@ -146,7 +148,7 @@ public class KerberosComponentDescriptorTest { Assert.assertEquals("component.name.rules2", authToLocalProperties.iterator().next()); } - public static void validateUpdatedData(KerberosComponentDescriptor componentDescriptor) { + private static void validateUpdatedData(KerberosComponentDescriptor componentDescriptor) { Assert.assertNotNull(componentDescriptor); Assert.assertEquals("A_DIFFERENT_COMPONENT_NAME", componentDescriptor.getName()); @@ -213,9 +215,10 @@ public class KerberosComponentDescriptorTest { @Test public void testToMap() throws AmbariException { + Gson gson = new Gson(); KerberosComponentDescriptor descriptor = createFromMap(); Assert.assertNotNull(descriptor); - Assert.assertEquals(MAP_VALUE, descriptor.toMap()); + Assert.assertEquals(gson.toJson(MAP_VALUE), gson.toJson(descriptor.toMap())); } http://git-wip-us.apache.org/repos/asf/ambari/blob/f9abdafa/ambari-server/src/test/java/org/apache/ambari/server/state/kerberos/KerberosConfigurationDescriptorTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/state/kerberos/KerberosConfigurationDescriptorTest.java b/ambari-server/src/test/java/org/apache/ambari/server/state/kerberos/KerberosConfigurationDescriptorTest.java index 6017fae..4f2a2f5 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/state/kerberos/KerberosConfigurationDescriptorTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/state/kerberos/KerberosConfigurationDescriptorTest.java @@ -1,4 +1,4 @@ -/** +/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information @@ -45,37 +45,33 @@ public class KerberosConfigurationDescriptorTest { "}}" + "]"; - private static final Map<String, Map<String, Object>> MAP_SINGLE_VALUE = - new HashMap<String, Map<String, Object>>() { - { - put("configuration-type", new HashMap<String, Object>() { - { - put("property1", "black"); - put("property2", "white"); - } - }); - } - }; - - private static final Collection<Map<String, Map<String, Object>>> MAP_MULTIPLE_VALUES = - new ArrayList<Map<String, Map<String, Object>>>() { - { - add(MAP_SINGLE_VALUE); - add(new HashMap<String, Map<String, Object>>() { - { - put("configuration-type2", new HashMap<String, Object>() { - { - put("property1", "red"); - put("property2", "yellow"); - put("property3", "green"); - } - }); - } - }); - } - }; + private static final Map<String, Map<String, Object>> MAP_SINGLE_VALUE; + private static final Collection<Map<String, Map<String, Object>>> MAP_MULTIPLE_VALUES; + static { + TreeMap<String, Object> configuration_data = new TreeMap<String, Object>(); + configuration_data.put("property1", "black"); + configuration_data.put("property2", "white"); + + MAP_SINGLE_VALUE = new TreeMap<String, Map<String, Object>>(); + MAP_SINGLE_VALUE.put("configuration-type", configuration_data); + + TreeMap<String, Object> configurationType2Properties = new TreeMap<String, Object>(); + configurationType2Properties.put("property1", "red"); + configurationType2Properties.put("property2", "yellow"); + configurationType2Properties.put("property3", "green"); + + Map<String, Map<String, Object>> configurationType2 = new TreeMap<String, Map<String, Object>>(); + configurationType2.put("configuration-type2", configurationType2Properties); + + TreeMap<String, Map<String, Map<String, Object>>> multipleValuesMap = new TreeMap<String, Map<String, Map<String, Object>>>(); + multipleValuesMap.put("configuration-type", MAP_SINGLE_VALUE); + multipleValuesMap.put("configuration-type2", configurationType2); + + MAP_MULTIPLE_VALUES = multipleValuesMap.values(); + } + @Test public void testJSONDeserialize() { Map<String, Map<String, Object>> jsonData = new Gson().fromJson(JSON_SINGLE_VALUE, http://git-wip-us.apache.org/repos/asf/ambari/blob/f9abdafa/ambari-server/src/test/java/org/apache/ambari/server/state/kerberos/KerberosDescriptorTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/state/kerberos/KerberosDescriptorTest.java b/ambari-server/src/test/java/org/apache/ambari/server/state/kerberos/KerberosDescriptorTest.java index 9463749..0070e6d 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/state/kerberos/KerberosDescriptorTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/state/kerberos/KerberosDescriptorTest.java @@ -1,4 +1,4 @@ -/** +/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information @@ -26,11 +26,12 @@ import java.io.File; import java.io.IOException; import java.net.URL; import java.util.ArrayList; -import java.util.HashMap; +import java.util.Collection; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.TreeMap; import java.util.TreeSet; public class KerberosDescriptorTest { @@ -51,59 +52,57 @@ public class KerberosDescriptorTest { " ]" + "}"; - public static final Map<String, Object> MAP_VALUE = - new HashMap<String, Object>() { - { - put("properties", new HashMap<String, Object>() {{ - put("realm", "EXAMPLE.COM"); - put("some.property", "Hello World"); - }}); - - put(AbstractKerberosDescriptor.Type.AUTH_TO_LOCAL_PROPERTY.getDescriptorPluralName(), new ArrayList<String>() {{ - add("global.name.rules"); - }}); - - put(AbstractKerberosDescriptor.Type.SERVICE.getDescriptorPluralName(), new ArrayList<Object>() {{ - add(KerberosServiceDescriptorTest.MAP_VALUE); - }}); - put(AbstractKerberosDescriptor.Type.CONFIGURATION.getDescriptorPluralName(), new ArrayList<Map<String, Object>>() {{ - add(new HashMap<String, Object>() { - { - put("cluster-conf", new HashMap<String, String>() { - { - put("property1", "red"); - } - }); - } - }); - }}); - put(AbstractKerberosDescriptor.Type.IDENTITY.getDescriptorPluralName(), new ArrayList<Object>() {{ - add(new HashMap<String, Object>() { - { - put("name", "shared"); - put("principal", new HashMap<String, Object>(KerberosPrincipalDescriptorTest.MAP_VALUE)); - put("keytab", new HashMap<String, Object>() { - { - put("file", "/etc/security/keytabs/subject.service.keytab"); - - put("owner", new HashMap<String, Object>() {{ - put("name", "root"); - put("access", "rw"); - }}); - - put("group", new HashMap<String, Object>() {{ - put("name", "hadoop"); - put("access", "r"); - }}); - - put("configuration", "service-site/service2.component.keytab.file"); - } - }); - } - }); - }}); - } - }; + public static final Map<String, Object> MAP_VALUE; + + static { + Map<String, Object> keytabOwnerMap = new TreeMap<String, Object>(); + keytabOwnerMap.put("name", "root"); + keytabOwnerMap.put("access", "rw"); + + Map<String, Object> keytabGroupMap = new TreeMap<String, Object>(); + keytabGroupMap.put("name", "hadoop"); + keytabGroupMap.put("access", "r"); + + Map<String, Object> keytabMap = new TreeMap<String, Object>(); + keytabMap.put("file", "/etc/security/keytabs/subject.service.keytab"); + keytabMap.put("owner", keytabOwnerMap); + keytabMap.put("group", keytabGroupMap); + keytabMap.put("configuration", "service-site/service2.component.keytab.file"); + + Map<String, Object> sharedIdentityMap = new TreeMap<String, Object>(); + sharedIdentityMap.put("name", "shared"); + sharedIdentityMap.put("principal", KerberosPrincipalDescriptorTest.MAP_VALUE); + sharedIdentityMap.put("keytab", keytabMap); + + Map<String, Object> servicesMap = new TreeMap<String, Object>(); + servicesMap.put((String) KerberosServiceDescriptorTest.MAP_VALUE.get("name"), KerberosServiceDescriptorTest.MAP_VALUE); + + Map<String, Object> identitiesMap = new TreeMap<String, Object>(); + identitiesMap.put("shared", sharedIdentityMap); + + Map<String, Object> clusterConfigProperties = new TreeMap<String, Object>(); + clusterConfigProperties.put("property1", "red"); + + Map<String, Map<String, Object>> clusterConfigMap = new TreeMap<String, Map<String, Object>>(); + clusterConfigMap.put("cluster-conf", clusterConfigProperties); + + TreeMap<String, Map<String, Map<String, Object>>> configurationsMap = new TreeMap<String, Map<String, Map<String, Object>>>(); + configurationsMap.put("cluster-conf", clusterConfigMap); + + Collection<String> authToLocalRules = new ArrayList<String>(); + authToLocalRules.add("global.name.rules"); + + TreeMap<String, Object> properties = new TreeMap<String, Object>(); + properties.put("realm", "EXAMPLE.COM"); + properties.put("some.property", "Hello World"); + + MAP_VALUE = new TreeMap<String, Object>(); + MAP_VALUE.put("properties", properties); + MAP_VALUE.put(AbstractKerberosDescriptor.Type.AUTH_TO_LOCAL_PROPERTY.getDescriptorPluralName(), authToLocalRules); + MAP_VALUE.put(AbstractKerberosDescriptor.Type.SERVICE.getDescriptorPluralName(), servicesMap.values()); + MAP_VALUE.put(AbstractKerberosDescriptor.Type.CONFIGURATION.getDescriptorPluralName(), configurationsMap.values()); + MAP_VALUE.put(AbstractKerberosDescriptor.Type.IDENTITY.getDescriptorPluralName(), identitiesMap.values()); + } public static void validateFromJSON(KerberosDescriptor descriptor) { Assert.assertNotNull(descriptor); @@ -307,9 +306,10 @@ public class KerberosDescriptorTest { @Test public void testToMap() throws AmbariException { + Gson gson = new Gson(); KerberosDescriptor descriptor = createFromMap(); Assert.assertNotNull(descriptor); - Assert.assertEquals(MAP_VALUE, descriptor.toMap()); + Assert.assertEquals(gson.toJson(MAP_VALUE), gson.toJson(descriptor.toMap())); } @Test @@ -325,7 +325,7 @@ public class KerberosDescriptorTest { validateUpdatedData(descriptor); } - @Test + @Test public void testGetReferencedIdentityDescriptor() throws IOException { URL systemResourceURL = ClassLoader.getSystemResource("kerberos/test_get_referenced_identity_descriptor.json"); Assert.assertNotNull(systemResourceURL); @@ -398,7 +398,7 @@ public class KerberosDescriptorTest { KerberosServiceDescriptor serviceDescriptor = descriptor.getService("SERVICE2"); Assert.assertNotNull(serviceDescriptor); - KerberosComponentDescriptor componentDescriptor = serviceDescriptor.getComponent("SERVICE2_COMPONENT1"); + KerberosComponentDescriptor componentDescriptor = serviceDescriptor.getComponent("SERVICE2_COMPONENT1"); Assert.assertNotNull(componentDescriptor); KerberosIdentityDescriptor identity; @@ -429,8 +429,8 @@ public class KerberosDescriptorTest { Assert.assertNotNull(identities); identityFound = false; - for(KerberosIdentityDescriptor identity : identities) { - if("service2_stack_reference".equals(identity.getName())) { + for (KerberosIdentityDescriptor identity : identities) { + if ("service2_stack_reference".equals(identity.getName())) { // From base identity Assert.assertEquals("stack@${realm}", identity.getPrincipalDescriptor().getValue()); @@ -445,15 +445,15 @@ public class KerberosDescriptorTest { } Assert.assertTrue(identityFound); - KerberosComponentDescriptor componentDescriptor = serviceDescriptor.getComponent("SERVICE2_COMPONENT1"); + KerberosComponentDescriptor componentDescriptor = serviceDescriptor.getComponent("SERVICE2_COMPONENT1"); Assert.assertNotNull(componentDescriptor); identities = componentDescriptor.getIdentities(true, null); Assert.assertNotNull(identities); identityFound = false; - for(KerberosIdentityDescriptor identity : identities) { - if("component1_service2_stack_reference".equals(identity.getName())) { + for (KerberosIdentityDescriptor identity : identities) { + if ("component1_service2_stack_reference".equals(identity.getName())) { // From base identity Assert.assertEquals("stack@${realm}", identity.getPrincipalDescriptor().getValue());