private async Task UploadAchievementImage(string filename, Stream image) { this.SetUpMockAuth(); int fileSize = (int)image.Length; Guid xfusId = Guid.NewGuid(); string xfusToken = "1234"; Uri initUri = new Uri(new Uri(ClientSettings.Singleton.XAchEndpoint), "/assets/initialize"); XachInitializeResponse initResponse = new XachInitializeResponse() { XfusId = xfusId, XfusToken = xfusToken, XfusUploadWindowLocation = "5678" }; SetMetadataResponse setMetadataResponse = new SetMetadataResponse() { BlobPartitions = 1, ChunkList = new int[] { 1 }, ChunkSize = fileSize, Error = false, Id = xfusId, Message = string.Empty, ResumeRestart = false, ServerLocation = string.Empty }; UploadImageResponse uploadResponse = new UploadImageResponse() { AbsoluteUri = string.Empty, ChunkNum = 1, Error = false, ErrorCode = 0, Location = string.Empty, Message = string.Empty, MissingChunks = null, RawLocation = string.Empty, State = string.Empty }; AchievementImage finalizeResponse = new AchievementImage() { AssetId = Guid.NewGuid(), CdnUrl = new Uri("https://xboxlive.com/"), HeightInPixels = 1080, ImageType = "png", IsPublic = true, Scid = new Guid(DefaultScid), ThumbnailCdnUrl = new Uri("https://xboxlive.com/"), WidthInPixels = 1920 }; string expectedToken = this.ExpectedToken(DefaultScid, null); this.mockHandler.Expect(initUri.ToString()) .WithHeaders("Authorization", expectedToken) .Respond(res => this.ExpectedJsonResponse(initResponse)); Uri setMetadataUri = new Uri(new Uri(ClientSettings.Singleton.XFusEndpoint), $"/upload/SetMetadata?filename={filename}&fileSize={fileSize}&id={xfusId}&token={xfusToken}"); this.mockHandler.Expect(setMetadataUri.ToString()) .WithHeaders("Authorization", expectedToken) .Respond(res => this.ExpectedJsonResponse(setMetadataResponse)); Uri uploadChunkUri = new Uri(new Uri(ClientSettings.Singleton.XFusEndpoint), $"/upload/uploadchunk/{xfusId}?blockNumber=1&token={xfusToken}"); this.mockHandler.Expect(uploadChunkUri.ToString()) .WithHeaders("Authorization", expectedToken) .Respond(res => this.ExpectedJsonResponse(uploadResponse)); Uri finishUploadUri = new Uri(new Uri(ClientSettings.Singleton.XFusEndpoint), $"/upload/finished/{xfusId}?token={xfusToken}"); this.mockHandler.Expect(finishUploadUri.ToString()) .WithHeaders("Authorization", expectedToken) .Respond(res => this.ExpectedJsonResponse(uploadResponse)); Uri finalizeUri = new Uri(new Uri(ClientSettings.Singleton.XAchEndpoint), $"/scids/{DefaultScid}/images"); this.mockHandler.Expect(finalizeUri.ToString()) .WithHeaders("Authorization", expectedToken) .Respond(res => this.ExpectedJsonResponse(finalizeResponse)); ConfigResponse <AchievementImage> response = await ConfigurationManager.UploadAchievementImageAsync(new Guid(DefaultScid), filename, image); Assert.AreEqual(finalizeResponse.AssetId, response.Result.AssetId); }
public ImageKeywordItem(AchievementImage image) { this.AchievementImage = image; }