Skip to content
Snippets Groups Projects
Commit 7c8c5583 authored by Dominika Zemanovičová's avatar Dominika Zemanovičová
Browse files

Test create user

parent 1ed5dc7b
No related branches found
No related tags found
2 merge requests!14Language school user tests,!13Language school user
package org.fuseri.model.dto.user;
import jakarta.validation.constraints.NotBlank;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class AddressDto {
@NotBlank
private String country;
......
package org.fuseri.model.dto.user;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.NonNull;
import org.fuseri.model.dto.common.DomainObjectDto;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
@AllArgsConstructor
public class UserCreateDto {
@NotBlank
......@@ -22,5 +23,6 @@ public class UserCreateDto {
@NotBlank
private String lastName;
@NotNull
@Valid
private AddressDto address;
}
package org.fuseri.modulelanguageschool.user;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.fuseri.model.dto.user.AddressDto;
import org.fuseri.model.dto.user.UserCreateDto;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.MethodSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.MediaType;
import org.springframework.test.web.servlet.MockMvc;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Stream;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
@SpringBootTest
@AutoConfigureMockMvc
class UserControllerTest {
@Autowired
private MockMvc mockMvc;
private static final AddressDto ADDRESS_TO_CREATE = new AddressDto(
"Czechia", "Brno", "Masarykova", "45", "90033");
private static final List<AddressDto> INVALID_ADDRESSES = List.of(
new AddressDto("", "Brno", "Masarykova", "45", "90033"),
new AddressDto("Czechia", "", "Masarykova", "45", "90033"),
new AddressDto("Czechia", "Brno", "", "45", "90033"),
new AddressDto("Czechia", "Brno", "Masarykova", "", "90033"),
new AddressDto("Czechia", "Brno", "Masarykova", "45", ""),
new AddressDto(null, "Brno", "Masarykova", "45", "90033"),
new AddressDto("Czechia", null, "Masarykova", "45", "90033"),
new AddressDto("Czechia", "Brno", null, "45", "90033"),
new AddressDto("Czechia", "Brno", "Masarykova", null, "90033")
);
private static final UserCreateDto USER_TO_CREATE = new UserCreateDto(
"xnovak", "skkckdvssg4v83sfsDRHCVVB",
"xnovak@emample.com", "Peter", "Novak", ADDRESS_TO_CREATE);
private static Stream<UserCreateDto> invalidUsers() {
var invalidUsers = Stream.of(
new UserCreateDto("", "skkckdvssg4v83sfsDRHCVVB",
"xnovak@emample.com", "Peter", "Novak", ADDRESS_TO_CREATE),
new UserCreateDto("xnovak", "",
"xnovak@emample.com", "Peter", "Novak", ADDRESS_TO_CREATE),
new UserCreateDto("xnovak", "skkckdvssg4v83sfsDRHCVVB",
"", "Peter", "Novak", ADDRESS_TO_CREATE),
new UserCreateDto("xnovak", "skkckdvssg4v83sfsDRHCVVB",
"xnovak@emample.com", "", "Novak", ADDRESS_TO_CREATE),
new UserCreateDto("xnovak", "skkckdvssg4v83sfsDRHCVVB",
"xnovak@emample.com", "Peter", "", ADDRESS_TO_CREATE),
new UserCreateDto(null, "skkckdvssg4v83sfsDRHCVVB",
"xnovak@emample.com", "Peter", "Novak", ADDRESS_TO_CREATE),
new UserCreateDto("xnovak", null,
"xnovak@emample.com", "Peter", "Novak", ADDRESS_TO_CREATE),
new UserCreateDto("xnovak", "skkckdvssg4v83sfsDRHCVVB",
null, "Peter", "Novak", ADDRESS_TO_CREATE),
new UserCreateDto("xnovak", "skkckdvssg4v83sfsDRHCVVB",
"xnovak@emample.com", null, "Novak", ADDRESS_TO_CREATE),
new UserCreateDto("xnovak", "skkckdvssg4v83sfsDRHCVVB",
"xnovak@emample.com", "Peter", null, ADDRESS_TO_CREATE),
new UserCreateDto("xnovak", "skkckdvssg4v83sfsDRHCVVB",
"xnovak@emample.com", "Peter", "Novak", null)
);
var invalidAddressUsers = new ArrayList<UserCreateDto>();
for (var invalidAddress : INVALID_ADDRESSES) {
invalidAddressUsers.add(new UserCreateDto("xnovak", "skkckdvssg4v83sfsDRHCVVB",
"xnovak@emample.com", "Peter", "Novak", invalidAddress));
}
return Stream.concat(invalidUsers, invalidAddressUsers.stream());
}
@Test
void create() throws Exception {
mockMvc.perform(post("/users")
.content(asJsonString(USER_TO_CREATE))
.contentType(MediaType.APPLICATION_JSON))
.andExpect(status().isOk());
}
@ParameterizedTest
@MethodSource("invalidUsers")
void createInvalidUser(UserCreateDto user) throws Exception {
mockMvc.perform(post("/users")
.content(asJsonString(user))
.contentType(MediaType.APPLICATION_JSON))
.andExpect(status().is4xxClientError());
}
private static String asJsonString(final Object obj) throws JsonProcessingException {
return new ObjectMapper().writeValueAsString(obj);
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment