/* * Copyright 2010-2017 Amazon.com, Inc. or its affiliates. All Rights * Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is * distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either * express or implied. See the License for the specific language * governing * permissions and limitations under the License. */ package com.amazonaws.util; import java.io.IOException; import java.util.Map; import org.junit.AfterClass; import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import com.amazonaws.SDKGlobalConfiguration; public class EC2MetadataUtilsIntegrationTest { private static EC2MetadataUtilsServer SERVER = null; @BeforeClass public static void setUp() throws IOException { SERVER = new EC2MetadataUtilsServer("localhost", 0); SERVER.start(); System.setProperty( SDKGlobalConfiguration.EC2_METADATA_SERVICE_OVERRIDE_SYSTEM_PROPERTY, "http://localhost:" + SERVER.getLocalPort()); } @AfterClass public static void cleanUp() throws IOException { if (SERVER != null) { SERVER.stop(); } System.clearProperty(SDKGlobalConfiguration.EC2_METADATA_SERVICE_OVERRIDE_SYSTEM_PROPERTY); } @Test public void testIamInfo() { EC2MetadataUtils.IAMInfo info = EC2MetadataUtils .getIAMInstanceProfileInfo(); Assert.assertEquals("Success", info.code); Assert.assertNull(info.message); Assert.assertEquals("2014-04-07T08:18:41Z", info.lastUpdated); Assert.assertEquals("foobar", info.instanceProfileArn); Assert.assertEquals("moobily", info.instanceProfileId); } @Test public void testIamCredentials() { Map<String, EC2MetadataUtils.IAMSecurityCredential> map = EC2MetadataUtils .getIAMSecurityCredentials(); Assert.assertEquals(2, map.size()); for (Map.Entry<String, EC2MetadataUtils.IAMSecurityCredential> entry : map .entrySet()) { Assert.assertNotNull(entry.getKey()); Assert.assertNotNull(entry.getValue().code); Assert.assertNotNull(entry.getValue().lastUpdated); Assert.assertEquals("AWS-HMAC", entry.getValue().type); Assert.assertEquals("foobar", entry.getValue().accessKeyId); Assert.assertEquals("moobily", entry.getValue().secretAccessKey); Assert.assertEquals("beebop", entry.getValue().token); Assert.assertNotNull(entry.getValue().expiration); } } @Test public void testInstanceInfo() { EC2MetadataUtils.InstanceInfo info = EC2MetadataUtils.getInstanceInfo(); Assert.assertEquals("2014-08-07T22:07:46Z", info.getPendingTime()); Assert.assertEquals("m1.small", info.getInstanceType()); Assert.assertEquals("ami-a49665cc", info.getImageId()); Assert.assertEquals("i-6b2de041", info.getInstanceId()); Assert.assertEquals("foo", info.getBillingProducts()[0]); Assert.assertEquals("x86_64", info.getArchitecture()); Assert.assertEquals("599169622985", info.getAccountId()); Assert.assertEquals("aki-919dcaf8", info.getKernelId()); Assert.assertEquals("baz", info.getRamdiskId()); Assert.assertEquals("us-east-1", info.getRegion()); Assert.assertEquals("2010-08-31", info.getVersion()); Assert.assertEquals("us-east-1b", info.getAvailabilityZone()); Assert.assertEquals("10.201.215.38", info.getPrivateIp()); Assert.assertEquals("bar", info.getDevpayProductCodes()[0]); } }