From 0f59a00098d3abad6275793eb944793e31688f9d Mon Sep 17 00:00:00 2001 From: Chris Tavares Date: Fri, 14 Dec 2012 15:07:45 -0800 Subject: [PATCH 1/5] Listing content keys for assets --- .../services/media/models/AssetInfo.java | 9 +++++++++ .../services/media/models/ContentKey.java | 12 ++++++++++++ .../services/media/AssetIntegrationTest.java | 13 ++++--------- 3 files changed, 25 insertions(+), 9 deletions(-) diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/media/models/AssetInfo.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/media/models/AssetInfo.java index 7572827f3c41..236bb05bf6fb 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/media/models/AssetInfo.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/media/models/AssetInfo.java @@ -101,4 +101,13 @@ public String getAlternateId() { public AssetOption getOptions() { return AssetOption.fromCode(getContent().getOptions()); } + + /** + * Get a link to the asset's content keys + * + * @return the link + */ + public LinkInfo getContentKeysLink() { + return getRelationLink("ContentKeys"); + } } diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/media/models/ContentKey.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/media/models/ContentKey.java index 090bf8e4e511..67155985932c 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/media/models/ContentKey.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/media/models/ContentKey.java @@ -171,6 +171,18 @@ public static DefaultListOperation list(MultivaluedMap list(LinkInfo link) { + return new DefaultListOperation(link.getHref(), new GenericType>() { + }); + } + /** * Create an operation to delete the given content key. * diff --git a/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/media/AssetIntegrationTest.java b/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/media/AssetIntegrationTest.java index e03efc3be81d..80955cd2a18e 100644 --- a/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/media/AssetIntegrationTest.java +++ b/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/media/AssetIntegrationTest.java @@ -28,7 +28,6 @@ import java.util.List; import java.util.UUID; -import org.junit.Ignore; import org.junit.Test; import com.microsoft.windowsazure.services.core.ServiceException; @@ -275,7 +274,6 @@ public void deleteAssetFailedWithInvalidId() throws ServiceException { service.delete(Asset.delete(validButNonexistAssetId)); } - @Ignore("due to issue 507") @Test public void linkAssetContentKeySuccess() throws ServiceException, URISyntaxException { // Arrange @@ -284,8 +282,7 @@ public void linkAssetContentKeySuccess() throws ServiceException, URISyntaxExcep .setOptions(AssetOption.StorageEncrypted)); String contentKeyId = String.format("nb:kid:UUID:%s", UUID.randomUUID()); String encryptedContentKey = "dummyEncryptedContentKey"; - ContentKeyInfo contentKeyInfo = service.create(ContentKey.create(contentKeyId, - ContentKeyType.StorageEncryption, encryptedContentKey)); + service.create(ContentKey.create(contentKeyId, ContentKeyType.StorageEncryption, encryptedContentKey)); String escapedContentKeyId; try { escapedContentKeyId = URLEncoder.encode(contentKeyId, "UTF-8"); @@ -300,16 +297,14 @@ public void linkAssetContentKeySuccess() throws ServiceException, URISyntaxExcep // Assert - // List contentKeyInfos = service.list(ContentKey.list(assetInfo.getId())); - // ContentKeyInfo contentKeyInfo = contentKeyInfos.get(0) - // assertEquals(contentKeyId, contentKeyInfo.getId()); - + List contentKeys = service.list(ContentKey.list(assetInfo.getContentKeysLink())); + assertEquals(1, contentKeys.size()); + assertEquals(contentKeyId, contentKeys.get(0).getId()); } @Test public void linkAssetContentKeyInvalidIdFailed() throws ServiceException, URISyntaxException { // Arrange - String originalTestName = testAssetPrefix + "linkAssetContentKeyInvalidIdFailed"; URI invalidContentKeyUri = new URI("ContentKeys('nb%3akid%3aUUID%3ainvalidContentKeyId')"); // Act From be1c86fbf6fc6adda281e2e03d3ab336f9fee9cf Mon Sep 17 00:00:00 2001 From: Chris Tavares Date: Fri, 14 Dec 2012 15:34:56 -0800 Subject: [PATCH 2/5] Removed AssetFile.list(assetId), added AssetFile.list(link) and AssetInfo.getAssetFilesLink() --- .../services/media/models/AssetFile.java | 13 ++++++------- .../services/media/models/AssetInfo.java | 9 +++++++++ .../services/media/AssetFileIntegrationTest.java | 10 +++++----- .../services/media/models/AssetFileEntityTest.java | 8 -------- .../services/scenarios/MediaServiceValidation.java | 6 +++--- .../services/scenarios/MediaServiceWrapper.java | 6 +++--- 6 files changed, 26 insertions(+), 26 deletions(-) diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/media/models/AssetFile.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/media/models/AssetFile.java index a02c252484d0..64744b6c1442 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/media/models/AssetFile.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/media/models/AssetFile.java @@ -201,15 +201,14 @@ public static DefaultListOperation list() { } /** - * Calls the service to list files for an asset + * Create an operation that will list all the AssetFiles at the given link. * - * @param assetId - * asset to list files for - * @return the list operation object + * @param link + * Link to request AssetFiles from. + * @return The list operation. */ - public static DefaultListOperation list(String assetId) { - String assetUri = new EntityOperationBase.EntityIdUriBuilder("Assets", assetId).getUri() + "/Files"; - return new DefaultListOperation(assetUri, new GenericType>() { + public static DefaultListOperation list(LinkInfo link) { + return new DefaultListOperation(link.getHref(), new GenericType>() { }); } diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/media/models/AssetInfo.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/media/models/AssetInfo.java index 236bb05bf6fb..d28d857c9ddb 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/media/models/AssetInfo.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/media/models/AssetInfo.java @@ -102,6 +102,15 @@ public AssetOption getOptions() { return AssetOption.fromCode(getContent().getOptions()); } + /** + * Get a link to the asset's files + * + * @return the link + */ + public LinkInfo getAssetFilesLink() { + return getRelationLink("Files"); + } + /** * Get a link to the asset's content keys * diff --git a/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/media/AssetFileIntegrationTest.java b/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/media/AssetFileIntegrationTest.java index 173ebf8d53b7..e151ba5c5880 100644 --- a/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/media/AssetFileIntegrationTest.java +++ b/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/media/AssetFileIntegrationTest.java @@ -68,7 +68,7 @@ public void canCreateFileForUploadedBlob() throws Exception { service.action(AssetFile.createFileInfos(asset.getId())); - ListResult files = service.list(AssetFile.list(asset.getId())); + ListResult files = service.list(AssetFile.list(asset.getAssetFilesLink())); assertEquals(1, files.size()); AssetFileInfo file = files.get(0); @@ -85,7 +85,7 @@ public void canCreateFileEntityDirectly() throws Exception { service.create(AssetFile.create(asset.getId(), BLOB_NAME_2)); - ListResult files = service.list(AssetFile.list(asset.getId())); + ListResult files = service.list(AssetFile.list(asset.getAssetFilesLink())); boolean found = false; for (AssetFileInfo file : files) { @@ -119,7 +119,7 @@ public void canCreateAssetWithMultipleFiles() throws Exception { AssetFileInfo file3 = service.create(AssetFile.create(asset.getId(), "blob3.bin").setIsPrimary(false) .setIsEncrypted(false).setContentFileSize(new Long(countingUp.length)).setContentChecksum("1234")); - ListResult files = service.list(AssetFile.list(asset.getId())); + ListResult files = service.list(AssetFile.list(asset.getAssetFilesLink())); assertEquals(3, files.size()); @@ -166,7 +166,7 @@ public void canDeleteFileFromAsset() throws Exception { service.action(AssetFile.createFileInfos(asset.getId())); - ListResult originalFiles = service.list(AssetFile.list(asset.getId())); + ListResult originalFiles = service.list(AssetFile.list(asset.getAssetFilesLink())); assertEquals(2, originalFiles.size()); for (AssetFileInfo file : originalFiles) { @@ -176,7 +176,7 @@ public void canDeleteFileFromAsset() throws Exception { } } - ListResult newFiles = service.list(AssetFile.list(asset.getId())); + ListResult newFiles = service.list(AssetFile.list(asset.getAssetFilesLink())); assertEquals(1, newFiles.size()); assertEquals("tokeep.bin", newFiles.get(0).getName()); } diff --git a/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/media/models/AssetFileEntityTest.java b/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/media/models/AssetFileEntityTest.java index 299eb7144077..441ae2b603db 100644 --- a/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/media/models/AssetFileEntityTest.java +++ b/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/media/models/AssetFileEntityTest.java @@ -74,14 +74,6 @@ public void getByIdHasCorrectUri() throws Exception { assertEquals(expectedUri, getter.getUri()); } - @Test - public void listFileInfosForAnAssetHasCorrectUri() throws Exception { - String expectedUri = String.format("Assets(%s)/Files", encodedAssetId); - EntityListOperation lister = AssetFile.list(exampleAssetId); - - assertEquals(expectedUri, lister.getUri()); - } - @Test public void listAllFileInfosHasCorrectUri() throws Exception { String expectedUri = "Files"; diff --git a/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/scenarios/MediaServiceValidation.java b/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/scenarios/MediaServiceValidation.java index 7de78be033c2..164f54ff8385 100644 --- a/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/scenarios/MediaServiceValidation.java +++ b/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/scenarios/MediaServiceValidation.java @@ -32,8 +32,8 @@ import com.microsoft.windowsazure.services.media.models.AssetFile; import com.microsoft.windowsazure.services.media.models.AssetFileInfo; import com.microsoft.windowsazure.services.media.models.AssetInfo; -import com.microsoft.windowsazure.services.media.models.AssetState; import com.microsoft.windowsazure.services.media.models.AssetOption; +import com.microsoft.windowsazure.services.media.models.AssetState; import com.microsoft.windowsazure.services.media.models.JobInfo; import com.microsoft.windowsazure.services.media.models.ListResult; import com.microsoft.windowsazure.services.media.models.Task; @@ -54,7 +54,7 @@ public void validateAsset(AssetInfo asset, String name, AssetOption encryption) assertEquals("asset.getOptions", encryption, asset.getOptions()); // Verify no files by default. - List initialFiles = service.list(AssetFile.list(asset.getId())); + List initialFiles = service.list(AssetFile.list(asset.getAssetFilesLink())); assertNotNull("initialFiles", initialFiles); assertEquals("initialFiles.size", 0, initialFiles.size()); @@ -90,7 +90,7 @@ public void validateAssetSortedPages(List> pages, List inputFiles) throws ServiceException, IOException, NoSuchAlgorithmException { - List assetFiles = service.list(AssetFile.list(asset.getId())); + List assetFiles = service.list(AssetFile.list(asset.getAssetFilesLink())); assertNotNull("assetFiles", assetFiles); assertEquals("assetFiles.size", inputFiles.size(), assetFiles.size()); diff --git a/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/scenarios/MediaServiceWrapper.java b/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/scenarios/MediaServiceWrapper.java index 85217106b5a6..0ad9ea9fa68b 100644 --- a/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/scenarios/MediaServiceWrapper.java +++ b/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/scenarios/MediaServiceWrapper.java @@ -164,7 +164,7 @@ public void uploadFilesToAsset(AssetInfo asset, int uploadWindowInMinutes, Hasht } service.action(AssetFile.createFileInfos(asset.getId())); - for (AssetFileInfo assetFile : service.list(AssetFile.list(asset.getId()))) { + for (AssetFileInfo assetFile : service.list(AssetFile.list(asset.getAssetFilesLink()))) { AssetFileInfo x = infoToUpload.get(assetFile.getName()); System.out.println(x); @@ -172,7 +172,7 @@ public void uploadFilesToAsset(AssetInfo asset, int uploadWindowInMinutes, Hasht .setContentFileSize(x.getContentFileSize()).setIsPrimary(x.getIsPrimary())); } - service.list(AssetFile.list(asset.getId())); + service.list(AssetFile.list(asset.getAssetFilesLink())); service.delete(Locator.delete(locator.getId())); service.delete(AccessPolicy.delete(accessPolicy.getId())); @@ -321,7 +321,7 @@ private List createOriginUrlsForStreamingContentWorker(AssetInfo asset, int availabilityWindowInMinutes, EnumSet.of(AccessPolicyPermission.READ))); LocatorInfo readLocator = service.create(Locator.create(readAP.getId(), asset.getId(), locatorType)); - List publishedFiles = service.list(AssetFile.list(asset.getId())); + List publishedFiles = service.list(AssetFile.list(asset.getAssetFilesLink())); for (AssetFileInfo fi : publishedFiles) { if (isSmooth) { // Smooth Streaming format ends with ".ism*" From 21ca170033dd65a39d54ccf3ff65bcdea8fd0d22 Mon Sep 17 00:00:00 2001 From: Chris Tavares Date: Fri, 14 Dec 2012 15:45:00 -0800 Subject: [PATCH 3/5] Getting locators from assets --- .../services/media/models/AssetInfo.java | 9 +++++++++ .../windowsazure/services/media/models/Locator.java | 12 ++++++++++++ .../services/media/LocatorIntegrationTests.java | 12 ++++++++++++ 3 files changed, 33 insertions(+) diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/media/models/AssetInfo.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/media/models/AssetInfo.java index d28d857c9ddb..71e6ee99f54a 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/media/models/AssetInfo.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/media/models/AssetInfo.java @@ -119,4 +119,13 @@ public LinkInfo getAssetFilesLink() { public LinkInfo getContentKeysLink() { return getRelationLink("ContentKeys"); } + + /** + * Get a link to the asset's locators + * + * @return the link + */ + public LinkInfo getLocatorsLink() { + return getRelationLink("Locators"); + } } diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/media/models/Locator.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/media/models/Locator.java index 69c346e6fd88..d4926218f4fe 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/media/models/Locator.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/media/models/Locator.java @@ -211,6 +211,18 @@ public static DefaultListOperation list(MultivaluedMap list(LinkInfo link) { + return new DefaultListOperation(link.getHref(), new GenericType>() { + }); + } + /** * Create an operation to update the given locator. * diff --git a/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/media/LocatorIntegrationTests.java b/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/media/LocatorIntegrationTests.java index 8b3a6094f63d..d75d45f5d139 100644 --- a/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/media/LocatorIntegrationTests.java +++ b/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/media/LocatorIntegrationTests.java @@ -292,4 +292,16 @@ public void deleteLocatorInvalidIdFailed() throws ServiceException { expectedException.expect(new ServiceExceptionMatcher(400)); service.delete(Locator.delete(invalidId)); } + + @Test + public void canGetLocatorBackFromAsset() throws Exception { + LocatorInfo locator = service.create(Locator.create(accessPolicyInfo.getId(), assetInfo.getId(), + LocatorType.SAS)); + + ListResult locators = service.list(Locator.list(assetInfo.getLocatorsLink())); + + assertEquals(1, locators.size()); + assertEquals(locator.getId(), locators.get(0).getId()); + + } } From a11747dae8da661856cbe434bc62e06c4ab7fcbc Mon Sep 17 00:00:00 2001 From: Chris Tavares Date: Fri, 14 Dec 2012 15:46:59 -0800 Subject: [PATCH 4/5] Added parent assets link --- .../windowsazure/services/media/models/AssetInfo.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/media/models/AssetInfo.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/media/models/AssetInfo.java index 71e6ee99f54a..f7bb8e4f5bf3 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/media/models/AssetInfo.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/media/models/AssetInfo.java @@ -128,4 +128,14 @@ public LinkInfo getContentKeysLink() { public LinkInfo getLocatorsLink() { return getRelationLink("Locators"); } + + /** + * Get a link to the asset's locators + * + * @return the link + */ + public LinkInfo getParentAssetsLink() { + // TODO: NEEDS TESTS once we figure out how to create assets with parents + return getRelationLink("ParentAssets"); + } } From d9dc999ca0aa94b3bb985be029a9572254227bab Mon Sep 17 00:00:00 2001 From: Chris Tavares Date: Fri, 14 Dec 2012 16:09:03 -0800 Subject: [PATCH 5/5] Locator relationships added --- .../entities/DefaultGetOperation.java | 21 +++++++++++++++++-- .../services/media/models/AccessPolicy.java | 11 ++++++++++ .../services/media/models/Asset.java | 11 ++++++++++ .../services/media/models/LocatorInfo.java | 18 ++++++++++++++++ .../media/LocatorIntegrationTests.java | 21 +++++++++++++++++++ 5 files changed, 80 insertions(+), 2 deletions(-) diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/media/implementation/entities/DefaultGetOperation.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/media/implementation/entities/DefaultGetOperation.java index 9f24fb969af8..a4ffb02bc109 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/media/implementation/entities/DefaultGetOperation.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/media/implementation/entities/DefaultGetOperation.java @@ -15,7 +15,6 @@ package com.microsoft.windowsazure.services.media.implementation.entities; - /** * Generic implementation of the get operation usable for most entities * @@ -23,10 +22,28 @@ public class DefaultGetOperation extends EntityOperationSingleResultBase implements EntityGetOperation { /** - * @param uri + * Construct a new DefaultGetOperation to return the given entity id + * + * @param entityTypeUri + * Entity set URI + * @param entityId + * id of entity * @param responseClass + * class to return from the get operation */ public DefaultGetOperation(String entityTypeUri, String entityId, Class responseClass) { super(new EntityOperationBase.EntityIdUriBuilder(entityTypeUri, entityId), responseClass); } + + /** + * Construct a new DefaultGetOperation to return the entity from the given uri + * + * @param uri + * Uri for entity + * @param responseClass + * class to return from the get operation + */ + public DefaultGetOperation(String uri, Class responseClass) { + super(uri, responseClass); + } } diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/media/models/AccessPolicy.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/media/models/AccessPolicy.java index bb3ab2c2bd3c..e2b6088814b0 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/media/models/AccessPolicy.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/media/models/AccessPolicy.java @@ -90,6 +90,17 @@ public static EntityGetOperation get(String accessPolicyId) { return new DefaultGetOperation(ENTITY_SET, accessPolicyId, AccessPolicyInfo.class); } + /** + * Create an operation that will retrieve the access policy at the given link + * + * @param link + * the link + * @return the operation + */ + public static EntityGetOperation get(LinkInfo link) { + return new DefaultGetOperation(link.getHref(), AccessPolicyInfo.class); + } + /** * Create an operation that will retrieve all access policies * diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/media/models/Asset.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/media/models/Asset.java index a55aeff0c735..40faa4870351 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/media/models/Asset.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/media/models/Asset.java @@ -161,6 +161,17 @@ public static EntityGetOperation get(String assetId) { return new DefaultGetOperation(ENTITY_SET, assetId, AssetInfo.class); } + /** + * Get the asset at the given link + * + * @param link + * the link + * @return the get operation + */ + public static EntityGetOperation get(LinkInfo link) { + return new DefaultGetOperation(link.getHref(), AssetInfo.class); + } + /** * Create an operation that will list all the assets. * diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/media/models/LocatorInfo.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/media/models/LocatorInfo.java index b5ed565f8033..f36023ae7d89 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/media/models/LocatorInfo.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/media/models/LocatorInfo.java @@ -118,4 +118,22 @@ public String getBaseUri() { public String getContentAccessToken() { return this.getContent().getContentAccessComponent(); } + + /** + * Return a link that gets this locator's access policy + * + * @return the link + */ + public LinkInfo getAccessPolicyLink() { + return getRelationLink("AccessPolicy"); + } + + /** + * Return a link that gets this locator's asset + * + * @return the link + */ + public LinkInfo getAssetLink() { + return getRelationLink("Asset"); + } } diff --git a/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/media/LocatorIntegrationTests.java b/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/media/LocatorIntegrationTests.java index d75d45f5d139..756e7bf154c5 100644 --- a/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/media/LocatorIntegrationTests.java +++ b/microsoft-azure-api/src/test/java/com/microsoft/windowsazure/services/media/LocatorIntegrationTests.java @@ -304,4 +304,25 @@ public void canGetLocatorBackFromAsset() throws Exception { assertEquals(locator.getId(), locators.get(0).getId()); } + + @Test + public void canGetAssetFromLocator() throws Exception { + LocatorInfo locator = service.create(Locator.create(accessPolicyInfo.getId(), assetInfo.getId(), + LocatorType.SAS)); + + AssetInfo asset = service.get(Asset.get(locator.getAssetLink())); + + assertEquals(assetInfo.getId(), asset.getId()); + } + + @Test + public void canGetAccessPolicyFromLocator() throws Exception { + LocatorInfo locator = service.create(Locator.create(accessPolicyInfo.getId(), assetInfo.getId(), + LocatorType.SAS)); + + AccessPolicyInfo accessPolicy = service.get(AccessPolicy.get(locator.getAccessPolicyLink())); + + assertEquals(accessPolicyInfo.getId(), accessPolicy.getId()); + + } }