コード例 #1
0
        public async Task GivenParametersWithWrongFormat_WhenCreating_ThenReturnsBadRequest(string email, string password)
        {
            // Arrange
            var payload = new CreateIdentityDto
            {
                Email    = email,
                Username = password,
            };

            // Act
            var response = await AuthenticatedPost(Endpoint, payload);

            // Assert
            response.ShouldBeBadRequest();
        }
コード例 #2
0
        public async Task GivenValidEmailAndUsername_WhenSigningUp_ThenAccountIsCreatedAndReturnsSuccessfulEnvelope()
        {
            // Arrange
            var payload = new CreateIdentityDto
            {
                Email    = "*****@*****.**",
                Username = "******"
            };

            // Act
            var response = await Client.PostAsJsonAsync(Endpoint, payload);

            // Assert
            response.ShouldBeSuccessful();
            var envelope = await response.ShouldBeVoid();

            envelope.ShouldBeSuccessful();
        }
コード例 #3
0
        private async Task <IActionResult> CreateNewAccount(CreateIdentityDto dto, IdentityTypes type)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            var result = await _identityService.Save(
                dto.Username,
                dto.Email,
                type);

            if (result.Type == SaveIdentityResult.ResultType.Ok)
            {
                return(Ok(Dtos.Envelope.AsSuccess()));
            }

            return(Ok(Dtos.Envelope.AsFailure((uint)result.Type)));
        }
コード例 #4
0
        public async Task GivenExistingEmail_ThenSigningUp_ThenReturnsUnsuccessfulEnvelope()
        {
            // Arrange
            var payload = new CreateIdentityDto
            {
                Email    = "*****@*****.**",
                Username = "******"
            };

            Factory.IdentityRepositoryMock.Setup(m => m.ExistsByEmail(payload.Email))
            .Returns(Task.FromResult(true));

            // Act
            var response = await Client.PostAsJsonAsync(Endpoint, payload);

            // Assert
            response.ShouldBeSuccessful();
            var envelope = await response.ShouldBeVoid();

            envelope.ShouldBeUnsuccessful();
        }
コード例 #5
0
        public async Task GivenUserIsAuthenticated_WhenCreating_ThenCreatesIdentitySuccessfully()
        {
            // Arrange
            var payload = new CreateIdentityDto
            {
                Email    = "*****@*****.**",
                Username = "******",
            };

            Factory.IdentityRepositoryMock.Setup(m => m.ExistsByUsername(payload.Username)).Returns(Task.FromResult(false));
            Factory.IdentityRepositoryMock.Setup(m => m.ExistsByEmail(payload.Email)).Returns(Task.FromResult(false));

            // Act
            var response = await AuthenticatedPost(Endpoint, payload);

            // Assert
            response.ShouldBeSuccessful();
            var envelope = await response.ShouldBeVoid();

            envelope.ShouldBeSuccessful();
        }
コード例 #6
0
 public async Task <IActionResult> Signup([FromBody] CreateIdentityDto dto)
 {
     return(await CreateNewAccount(dto, IdentityTypes.Regular));
 }
コード例 #7
0
 public async Task <IActionResult> Create([FromBody] CreateIdentityDto dto)
 {
     return(await CreateNewAccount(dto, IdentityTypes.Contributor));
 }