public async Task Verify_PostDummyModel_ResponseStatusCode_BadRequest_With_Message_Name_Is_Already_In_Use() { // Arrange this._userBuilder.BuildCustomAdminUser(userName: "******", email: "*****@*****.**"); var repeatedName = "Dummy Model #123"; this._dummyModelBuilder.BuildCustomDummyModel(repeatedName); // Act var dto = new CreateDummyModelDto { Name = repeatedName, }; await this._client.Authenticate(this._accountsService, "Lidia"); var(response, deserializedResponse) = await this._client.PostAsync <DummyModelOutput>($"/api/v1/DummyModels", dto); // Assert response.StatusCode.Should().Be(HttpStatusCode.BadRequest); deserializedResponse.Success.Should().BeFalse(); deserializedResponse.Message.Should().Be($"{ResponseMessages.AlreadyExistAnElementWithTheSameUniqueProperty} name."); deserializedResponse.Data.Should().BeNull(); }
public void Should_Map_From_CreateDummyModelDto_To_DummyModel(string name) { // Arrange // Act var createDummyModelDto = new CreateDummyModelDto() { Name = name, }; var dummyModel = this._mapper.Map <DummyModel>(createDummyModelDto); // Assert dummyModel.Name.Should().Be(name); }
public void Should_Throw_Validation_Exception_For_Empty_Name() { // Arrange var dto = new CreateDummyModelDto(); // Act var validator = new CreateDummyModelDtoValidator(); 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); }
public async Task Verify_PostDummyModel_ResponseStatusCode_Unauthorized_With_Message_Unauthorized() { // Arrange // Act var dto = new CreateDummyModelDto { }; var(response, deserializedResponse) = await this._client.PostAsync <DummyModelOutput>($"/api/v1/DummyModels", dto); // Assert response.StatusCode.Should().Be(HttpStatusCode.Unauthorized); deserializedResponse.Success.Should().BeFalse(); deserializedResponse.Message.Should().Be(ResponseMessages.AuthenticationInvalid); deserializedResponse.Data.Should().BeNull(); }
public async Task Verify_PostDummyModel_ResponseStatusCode_BadRequest_With_Message_Name_Is_Empty() { // Arrange this._userBuilder.BuildCustomModeratorUser(userName: "******", email: "*****@*****.**"); // Act var dto = new CreateDummyModelDto { }; await this._client.Authenticate(this._accountsService, "David"); var(response, deserializedResponse) = await this._client.PostAsync <DummyModelOutput>($"/api/v1/DummyModels", dto); // Assert response.StatusCode.Should().Be(HttpStatusCode.BadRequest); deserializedResponse.Success.Should().BeFalse(); deserializedResponse.Message.Should().Be("'Name' must not be empty."); deserializedResponse.Data.Should().BeNull(); }
public async Task Verify_PostDummyModel_ResponseStatusCode_Forbidden_With_Message_Forbidden_For_Basic_Users() { // Arrange this._userBuilder.BuildCustomBasicUser(userName: "******", email: "*****@*****.**"); // Act var dto = new CreateDummyModelDto { }; await this._client.Authenticate(this._accountsService, "Nicolas"); var(response, deserializedResponse) = await this._client.PostAsync <DummyModelOutput>($"/api/v1/DummyModels", dto); // Assert response.StatusCode.Should().Be(HttpStatusCode.Forbidden); deserializedResponse.Success.Should().BeFalse(); deserializedResponse.Message.Should().Be(ResponseMessages.AuthorizationInvalid); deserializedResponse.Data.Should().BeNull(); }
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 CreateDummyModelDto() { Name = invalidName, }; // Act var validator = new CreateDummyModelDtoValidator(); 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); }
public async Task Verify_PostDummyModel_OK_ResponseStatusCode_With_DummyModelOutput_As_Response_Content() { // Arrange this._userBuilder.BuildCustomAdminUser(userName: "******", email: "*****@*****.**"); // Act string newDummyModelName = "Dummy Model #748"; var dto = new CreateDummyModelDto { Name = newDummyModelName, }; await this._client.Authenticate(this._accountsService, "Julia"); var(response, deserializedResponse) = await this._client.PostAsync <DummyModelOutput>($"/api/v1/DummyModels", dto); // Assert response.StatusCode.Should().Be(HttpStatusCode.Created); deserializedResponse.Success.Should().BeTrue(); deserializedResponse.Message.Should().BeNull(); deserializedResponse.Data.Name.Should().Be(newDummyModelName); this._context.DummyModel.AsNoTracking().Where(d => d.Id == deserializedResponse.Data.Id).Single().Name.Should().Be(newDummyModelName); }
public async Task Verify_PostDummyModel_ResponseStatusCode_BadRequest_With_Message_Name_Is_Too_Long() { // Arrange this._userBuilder.BuildCustomAdminUser(userName: "******", email: "*****@*****.**"); // Act string longName = Utilities.RandomStringGenerator(DummyModelValidationRules.NameMaximumLength + 1); var dto = new CreateDummyModelDto { Name = longName, }; await this._client.Authenticate(this._accountsService, "Robert"); var(response, deserializedResponse) = await this._client.PostAsync <DummyModelOutput>($"/api/v1/DummyModels", dto); // Assert response.StatusCode.Should().Be(HttpStatusCode.BadRequest); deserializedResponse.Success.Should().BeFalse(); deserializedResponse.Message.Should().Contain($"The length of 'Name' must be " + $"{DummyModelValidationRules.NameMaximumLength} characters or fewer. You entered {longName.Length}"); deserializedResponse.Data.Should().BeNull(); }