public void When_Passing_No_Subject_Then_Exception_Is_Thrown() { // ARRANGE InitializeFakeObjects(); var addProfileParameter = new AddProfileParameter(); // ACT & ASSERT Assert.Throws <ArgumentNullException>(() => _addProfileAction.Execute(addProfileParameter)); }
public void When_Profile_Already_Exists_Then_Exception_Is_Thrown() { // ARRANGE InitializeFakeObjects(); var addProfileParameter = new AddProfileParameter { Subject = "subject", Name = "name" }; var profile = new Profile(); _profileRepositoryStub.Setup(p => p.GetProfileBySubject(It.IsAny <string>())) .Returns(profile); // ACT & ASSERT var exception = Assert.Throws <IdentityServerException>(() => _addProfileAction.Execute(addProfileParameter)); Assert.True(exception.Code == ErrorCodes.InvalidRequestCode); Assert.True(exception.Message == ErrorDescriptions.TheProfileAlreadyExists); }
public void When_Adding_Profile_Then_Operation_Is_Called() { // ARRANGE InitializeFakeObjects(); var addProfileParameter = new AddProfileParameter { Subject = "subject", Name = "name" }; _profileRepositoryStub.Setup(p => p.AddProfile(It.IsAny <Profile>())) .Returns(true); // ACT var result = _addProfileAction.Execute(addProfileParameter); // ASSERTS Assert.NotNull(result); _profileRepositoryStub.Verify(p => p.AddProfile(It.IsAny <Profile>())); }
public async Task <Profile> AddProfile( AddProfileParameter addProfileParameter, string domainName) { return(await _addProfileAction.ExecuteAsync(addProfileParameter, domainName)); }
public async Task <Profile> ExecuteAsync( AddProfileParameter addProfileParameter, string domainName) { if (addProfileParameter == null) { throw new ArgumentNullException(nameof(addProfileParameter)); } if (string.IsNullOrWhiteSpace(domainName)) { throw new ArgumentNullException(nameof(domainName)); } if (string.IsNullOrWhiteSpace(addProfileParameter.Subject)) { throw new ArgumentNullException(nameof(addProfileParameter.Subject)); } if (string.IsNullOrWhiteSpace(addProfileParameter.Name)) { throw new ArgumentNullException(nameof(addProfileParameter.Name)); } var isExistingProfile = _profileRepository.GetProfileBySubject(addProfileParameter.Subject) != null || _profileRepository.GetProfileByName(addProfileParameter.Name) != null; if (isExistingProfile) { throw new IdentityServerException(ErrorCodes.InvalidRequestCode, ErrorDescriptions.TheProfileAlreadyExists); } var newProfile = new Profile { Subject = addProfileParameter.Subject, Name = addProfileParameter.Name, IsActive = true, AuthorizationServerUrl = _endPointConfiguration.GetAuthorizationServer(addProfileParameter.Name), ManagerWebSiteApiUrl = _endPointConfiguration.GetManagerWebSiteApi(addProfileParameter.Name), ManagerWebSiteUrl = _endPointConfiguration.GetManagerWebSite(addProfileParameter.Name) }; var isProfileAdded = _profileRepository.AddProfile(newProfile); if (!isProfileAdded) { return(null); } var dockerClient = _dockerClientFactory.GetDockerClient(); var containerName = newProfile.Name; await dockerClient.Containers.CreateContainerAsync(new CreateContainerParameters { ContainerName = newProfile.Name, Config = new Config { Env = new List <string> { string.Format("VIRTUAL_HOST={0}.{1}", containerName, domainName) }, Image = ImageName } }); return(newProfile); }