public GenerateProjectResponse Generate([FromBody] GenerateProjectRequest generateProjectRequest)
        {
            if (!generateProjectRequest.IsValid(out string validationMessage))
            {
                throw new CustomApiException(validationMessage, HttpStatusCode.BadRequest);
            }

            CloneOptions cloneOptions = new CloneOptions
            {
                BranchName          = generateProjectRequest.BranchName,
                CredentialsProvider = (_url, _user, _cred) => new UsernamePasswordCredentials
                {
                    Username = generateProjectRequest.UserName,
                    Password = generateProjectRequest.Password
                }
            };

            SolutionGenerator solutionGenerater = new SolutionGenerator();
            string            token             = solutionGenerater.Generate(generateProjectRequest.RepositoryLink, generateProjectRequest.RenamePairs, cloneOptions);

            return(new GenerateProjectResponse()
            {
                Token = token
            });
        }
Beispiel #2
0
        public void WhenLinkIsInvalid_CustomApiExceptionOccurs()
        {
            GenerateProjectRequest generateProjectRequest = new GenerateProjectRequest()
            {
                RepositoryLink = "invalid",
                RenamePairs    = new List <KeyValuePair <string, string> >(),
                BranchName     = "master"
            };
            var customApiException = Assert.Throws <CustomApiException>(() => _sut.Generate(generateProjectRequest));

            Assert.Equal(HttpStatusCode.BadRequest, customApiException.ReturnHttpStatusCode);
        }
Beispiel #3
0
        public string WhenOperationCompleted_FileShoulBeExistWithNameofToken()
        {
            GenerateProjectRequest generateProjectRequest = new GenerateProjectRequest()
            {
                RepositoryLink = validGitRepoAddress,
                RenamePairs    = new List <KeyValuePair <string, string> >(),
                BranchName     = "master"
            };
            GenerateProjectResponse response = _sut.Generate(generateProjectRequest);

            Assert.NotNull(response);
            Assert.NotEmpty(response.Token);

            string currentDirectory = Directory.GetParent(Directory.GetCurrentDirectory()).FullName;
            var    directories      = Directory.GetDirectories(currentDirectory, response.Token, SearchOption.AllDirectories);

            Assert.True(directories.Any());

            return(response.Token);
        }
Beispiel #4
0
        public void WhenRequestIsInvalid_CustomApiExceptionOccurs(GenerateProjectRequest generateProjectRequest)
        {
            var customApiException = Assert.Throws <CustomApiException>(() => _sut.Generate(generateProjectRequest));

            Assert.Equal(HttpStatusCode.BadRequest, customApiException.ReturnHttpStatusCode);
        }