예제 #1
0
        public void CreateFileTest()
        {
            string projectUid = Guid.NewGuid().ToString();

            var createFileRequestModel = new CreateFileRequestModel
            {
                FileName = "myFirstProject.dc"
            };

            var createFileResponseModel = new CreateFileResponseModel
            {
                FileSpaceId = Guid.NewGuid().ToString(),
                UploadUrl   = $"{createFileRequestModel.FileName} {projectUid}"
            };
            string route       = $"/projects/{TRNHelper.MakeTRN(projectUid)}/file";
            var    expectedUrl = $"{baseUrl}{route}";

            mockServiceResolution.Setup(m => m.ResolveRemoteServiceEndpoint(
                                            It.IsAny <string>(), It.IsAny <ApiType>(), It.IsAny <ApiVersion>(), route, It.IsAny <IList <KeyValuePair <string, string> > >())).Returns(Task.FromResult(expectedUrl));

            MockUtilities.TestRequestSendsCorrectJson("Create a file", mockWebRequest, null, expectedUrl, HttpMethod.Post, createFileResponseModel, async() =>
            {
                var client = ServiceProvider.GetRequiredService <ICwsDesignClient>();
                var result = await client.CreateFile(new Guid(projectUid), createFileRequestModel);

                Assert.NotNull(result);
                Assert.Equal(createFileResponseModel.FileSpaceId, result.FileSpaceId);
                return(true);
            });
        }
예제 #2
0
        public CreateFileResponseModel CreateFile(string projectTrn, [Mvc.FromBody] CreateFileRequestModel createFileRequest)
        {
            var createFileResponse = new CreateFileResponseModel
            {
                FileSpaceId = Guid.NewGuid().ToString(),
                UploadUrl   = $"{_baseUrl}/another_fake_upload_signed_url"
            };

            Logger.LogInformation($"{nameof(CreateFile)}: projectTrn {projectTrn} createFileRequest {JsonConvert.SerializeObject(createFileRequest)} createFileResponse {JsonConvert.SerializeObject(createFileResponse)}");
            _fileSpaceIdNameMap.Add(createFileResponse.FileSpaceId, $"{projectTrn}||{DateTime.UtcNow}||{createFileRequest.FileName}");
            return(createFileResponse);
        }
예제 #3
0
        public Task <CreateFileResponseModel> CreateAndUploadFile(Guid projectUid, CreateFileRequestModel createFileRequest, Stream fileContents, IHeaderDictionary customHeaders = null)
        {
            log.LogDebug($"{nameof(CreateAndUploadFile)} Mock: createFileRequest {JsonConvert.SerializeObject(createFileRequest)}");

            var createFileResponse = new CreateFileResponseModel
            {
                FileSpaceId = Guid.NewGuid().ToString(),
                UploadUrl   = "uploadurl: FileSpaceId"
            };

            log.LogDebug($"{nameof(CreateAndUploadFile)} Mock: createFileResponse {JsonConvert.SerializeObject(createFileResponse)}");
            return(Task.FromResult(createFileResponse));
        }
예제 #4
0
        public void CreateAndUploadFileTest()
        {
            string projectUid = Guid.NewGuid().ToString();

            var createFileRequestModel = new CreateFileRequestModel
            {
                FileName = "myFirstProject.dc"
            };
            var uploadUrl = $"{createFileRequestModel.FileName} {projectUid}";
            var createFileResponseModel = new CreateFileResponseModel
            {
                FileSpaceId = Guid.NewGuid().ToString(),
                UploadUrl   = uploadUrl
            };
            var fileContents = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 };

            string route       = $"/projects/{TRNHelper.MakeTRN(projectUid)}/file";
            var    expectedUrl = $"{baseUrl}{route}";

            mockServiceResolution.Setup(m => m.ResolveRemoteServiceEndpoint(
                                            It.IsAny <string>(), It.IsAny <ApiType>(), It.IsAny <ApiVersion>(), route, It.IsAny <IList <KeyValuePair <string, string> > >())).Returns(Task.FromResult(expectedUrl));
            var expectedContent = new StringContent("Dummy");

            mockWebRequest.Setup(s => s.ExecuteRequestAsStreamContent(uploadUrl, HttpMethod.Put, It.IsAny <IHeaderDictionary>(), It.IsAny <Stream>(), null, 3, false))
            .Returns(Task.FromResult(expectedContent as HttpContent));

            MockUtilities.TestRequestSendsCorrectJson("Create and upload a file", mockWebRequest, null, expectedUrl, HttpMethod.Post, createFileResponseModel, async() =>
            {
                var client = ServiceProvider.GetRequiredService <ICwsDesignClient>();
                using (var ms = new MemoryStream(fileContents))
                {
                    var result = await client.CreateAndUploadFile(new Guid(projectUid), createFileRequestModel, ms);
                    Assert.NotNull(result);
                    Assert.Equal(createFileResponseModel.FileSpaceId, result.FileSpaceId);
                }
                return(true);
            });
        }