示例#1
0
        public void Should_Throw_Validation_Exception_For_Empty_Name()
        {
            // Arrange
            var dto = new UpdateDummyModelDto()
            {
                Id = 1,
            };

            // Act
            var validator        = new UpdateDummyModelDtoValidator();
            var validationResult = validator.Validate(dto);

            // Assert
            validationResult.IsValid.Should().Be(false);
            validationResult.Errors[0].ErrorMessage.Should().Be("'Name' must not be empty.");
            validationResult.Errors[0].ErrorCode.Should().Be("NotEmptyValidator");
            validationResult.Errors[0].PropertyName.Should().Be("Name");
            validationResult.Errors[0].Severity.Should().Be(Severity.Error);
        }
示例#2
0
        public async Task Verify_PutDummyModel_ResponseStatusCode_Unauthorized_With_Message_Unauthorized()
        {
            // Arrange

            // Act
            int dummyModelId = int.MaxValue - 1;
            var dto          = new UpdateDummyModelDto
            {
                Id   = dummyModelId,
                Name = "new name",
            };

            var(response, deserializedResponse) = await this._client.PutAsync <DummyModelOutput>($"/api/v1/DummyModels/{dummyModelId}", dto);

            // Assert
            response.StatusCode.Should().Be(HttpStatusCode.Unauthorized);
            deserializedResponse.Success.Should().BeFalse();
            deserializedResponse.Message.Should().Be(ResponseMessages.AuthenticationInvalid);
            deserializedResponse.Data.Should().BeNull();
        }
示例#3
0
        public void Should_Throw_Validation_Exception_For_Id_Less_0(int id)
        {
            // Arrange
            var dto = new UpdateDummyModelDto()
            {
                Id   = id,
                Name = "name",
            };

            // Act
            var validator        = new UpdateDummyModelDtoValidator();
            var validationResult = validator.Validate(dto);

            // Assert
            validationResult.IsValid.Should().Be(false);

            validationResult.Errors[0].ErrorCode.Should().Be("GreaterThanValidator");
            validationResult.Errors[0].PropertyName.Should().Be("Id");
            validationResult.Errors[0].Severity.Should().Be(Severity.Error);
        }
示例#4
0
        public void Should_Throw_Validation_Exception_For_Empty_Id_and_Name()
        {
            // Arrange
            var dto = new UpdateDummyModelDto();

            // Act
            var validator        = new UpdateDummyModelDtoValidator();
            var validationResult = validator.Validate(dto);

            // Assert
            validationResult.IsValid.Should().Be(false);
            var errorMessages = validationResult.Errors.Select(e => e.ErrorMessage);

            errorMessages.Contains("'Id' must not be empty.").Should().Be(true);
            errorMessages.Contains("'Name' must not be empty.").Should().Be(true);
            var propertyName = validationResult.Errors.Select(e => e.PropertyName);

            propertyName.Contains("Id").Should().Be(true);
            propertyName.Contains("Name").Should().Be(true);
        }
示例#5
0
        public async Task Verify_PutDummyModel_ResponseStatusCode_Forbidden_With_Message_Forbidden_For_Basic_Users()
        {
            // Arrange
            this._userBuilder.BuildCustomBasicUser(userName: "******", email: "*****@*****.**");

            // Act
            int dummyModelId = int.MaxValue - 1;
            var dto          = new UpdateDummyModelDto
            {
                Id   = dummyModelId,
                Name = "new name",
            };

            await this._client.Authenticate(this._accountsService, "Lewis");

            var(response, deserializedResponse) = await this._client.PutAsync <DummyModelOutput>($"/api/v1/DummyModels/{dummyModelId}", dto);

            // Assert
            response.StatusCode.Should().Be(HttpStatusCode.Forbidden);
            deserializedResponse.Success.Should().BeFalse();
            deserializedResponse.Message.Should().Be(ResponseMessages.AuthorizationInvalid);
            deserializedResponse.Data.Should().BeNull();
        }
示例#6
0
        public async Task Verify_PutDummyModel_ResponseStatusCode_NotFound_With_Message_DummyModel_NotFound()
        {
            // Arrange
            this._userBuilder.BuildCustomAdminUser(userName: "******", email: "*****@*****.**");

            // Act
            int dummyModelId = int.MaxValue - 1;

            var dto = new UpdateDummyModelDto
            {
                Id   = dummyModelId,
                Name = "new name",
            };

            await this._client.Authenticate(this._accountsService, "Hilary");

            var(response, deserializedResponse) = await this._client.PutAsync <DummyModelOutput>($"/api/v1/DummyModels/{dummyModelId}", dto);

            // Assert
            response.StatusCode.Should().Be(HttpStatusCode.NotFound);
            deserializedResponse.Success.Should().BeFalse();
            deserializedResponse.Message.Should().Be(ResponseMessages.NotFound);
            deserializedResponse.Data.Should().BeNull();
        }
示例#7
0
        public void Should_Throw_Validation_Exception_For_Larger_Name()
        {
            // Arrange
            string invalidName = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do" +
                                 "eiusmod tempor incididunt ut labore et dolore magna aliqua.";
            var dto = new UpdateDummyModelDto()
            {
                Id   = 1,
                Name = invalidName,
            };

            // Act
            var validator        = new UpdateDummyModelDtoValidator();
            var validationResult = validator.Validate(dto);

            // Assert
            validationResult.IsValid.Should().Be(false);
            validationResult.Errors[0].ErrorMessage.Should().Be($"The length of 'Name' must be" +
                                                                $" {DummyModelValidationRules.NameMaximumLength} characters or fewer." +
                                                                $" You entered {invalidName.Length} characters.");
            validationResult.Errors[0].ErrorCode.Should().Be("MaximumLengthValidator");
            validationResult.Errors[0].PropertyName.Should().Be("Name");
            validationResult.Errors[0].Severity.Should().Be(Severity.Error);
        }