From f0d813fcc2eafe6902cab4309209c78792ddb150 Mon Sep 17 00:00:00 2001 From: Gabriel Date: Wed, 20 Apr 2022 18:14:43 +0300 Subject: [PATCH 1/7] Added dependencies, User setters, UserRepository UnitTest Signed-off-by: Gabriel --- pom.xml | 13 +++++++++++ .../java/com/crudrepo/user/model/User.java | 2 ++ .../com/crudrepo/user/UserRepositoryTest.java | 23 +++++++++++++++++++ 3 files changed, 38 insertions(+) create mode 100644 src/test/java/com/crudrepo/user/UserRepositoryTest.java diff --git a/pom.xml b/pom.xml index 42346df..a89bc0e 100644 --- a/pom.xml +++ b/pom.xml @@ -44,6 +44,19 @@ org.springframework.boot spring-boot-starter-thymeleaf + + + org.jacoco + jacoco-maven-plugin + 0.8.8 + + + + org.mockito + mockito-all + 1.10.19 + test + diff --git a/src/main/java/com/crudrepo/user/model/User.java b/src/main/java/com/crudrepo/user/model/User.java index b22362b..281b653 100644 --- a/src/main/java/com/crudrepo/user/model/User.java +++ b/src/main/java/com/crudrepo/user/model/User.java @@ -1,6 +1,7 @@ package com.crudrepo.user.model; import lombok.Getter; +import lombok.Setter; import javax.persistence.*; import java.util.List; @@ -8,6 +9,7 @@ @Getter @Table(name = "users") @Entity +@Setter public class User { @Id @GeneratedValue(strategy=GenerationType.IDENTITY) diff --git a/src/test/java/com/crudrepo/user/UserRepositoryTest.java b/src/test/java/com/crudrepo/user/UserRepositoryTest.java new file mode 100644 index 0000000..1990883 --- /dev/null +++ b/src/test/java/com/crudrepo/user/UserRepositoryTest.java @@ -0,0 +1,23 @@ +package com.crudrepo.user; + +import com.crudrepo.user.model.User; +import com.crudrepo.user.service.UserRepository; +import org.junit.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.junit.jupiter.MockitoExtension; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.mock.mockito.MockBean; + +import java.util.Optional; + +@SpringBootTest(classes = UserRepository.class) +@ExtendWith(MockitoExtension.class) +public class UserRepositoryTest { + @MockBean + UserRepository userRepository; + + @Test + public void shouldFindByName() { + Optional userOptional = Optional.of(new User()); + } +} From 762ba567c2c72eb85730abbefd6c5d5b9d5de81e Mon Sep 17 00:00:00 2001 From: Gabriel Date: Wed, 20 Apr 2022 20:56:40 +0300 Subject: [PATCH 2/7] Added AccountRepository UnitTest Signed-off-by: Gabriel --- pom.xml | 30 +++++++++++-- .../java/com/crudrepo/user/model/Account.java | 4 ++ .../java/com/crudrepo/user/model/User.java | 4 ++ .../crudrepo/user/service/UserRepository.java | 2 + src/main/resources/application.properties | 2 +- .../account/AccountRepositoryTest.java | 43 +++++++++++++++++++ .../com/crudrepo/user/UserRepositoryTest.java | 20 ++++++--- 7 files changed, 96 insertions(+), 9 deletions(-) create mode 100644 src/test/java/com/crudrepo/account/AccountRepositoryTest.java diff --git a/pom.xml b/pom.xml index a89bc0e..25d6dc2 100644 --- a/pom.xml +++ b/pom.xml @@ -50,11 +50,16 @@ jacoco-maven-plugin 0.8.8 - + + org.junit.jupiter + junit-jupiter-api + 5.8.2 + test + org.mockito - mockito-all - 1.10.19 + mockito-junit-jupiter + 4.0.0 test @@ -73,6 +78,25 @@ + + org.jacoco + jacoco-maven-plugin + 0.8.8 + + + + prepare-agent + + + + report + prepare-package + + report + + + + diff --git a/src/main/java/com/crudrepo/user/model/Account.java b/src/main/java/com/crudrepo/user/model/Account.java index 70d1539..5cb8a79 100644 --- a/src/main/java/com/crudrepo/user/model/Account.java +++ b/src/main/java/com/crudrepo/user/model/Account.java @@ -1,6 +1,8 @@ package com.crudrepo.user.model; +import lombok.AllArgsConstructor; import lombok.Getter; +import lombok.NoArgsConstructor; import lombok.Setter; import javax.persistence.*; @@ -9,6 +11,8 @@ @Setter @Table(name="accounts") @Entity +@NoArgsConstructor +@AllArgsConstructor public class Account { @Id @GeneratedValue() diff --git a/src/main/java/com/crudrepo/user/model/User.java b/src/main/java/com/crudrepo/user/model/User.java index 281b653..7a38f6e 100644 --- a/src/main/java/com/crudrepo/user/model/User.java +++ b/src/main/java/com/crudrepo/user/model/User.java @@ -1,6 +1,8 @@ package com.crudrepo.user.model; +import lombok.AllArgsConstructor; import lombok.Getter; +import lombok.NoArgsConstructor; import lombok.Setter; import javax.persistence.*; @@ -10,6 +12,8 @@ @Table(name = "users") @Entity @Setter +@AllArgsConstructor +@NoArgsConstructor public class User { @Id @GeneratedValue(strategy=GenerationType.IDENTITY) diff --git a/src/main/java/com/crudrepo/user/service/UserRepository.java b/src/main/java/com/crudrepo/user/service/UserRepository.java index 650d021..b71f25f 100644 --- a/src/main/java/com/crudrepo/user/service/UserRepository.java +++ b/src/main/java/com/crudrepo/user/service/UserRepository.java @@ -2,9 +2,11 @@ import com.crudrepo.user.model.User; import org.springframework.data.repository.CrudRepository; +import org.springframework.stereotype.Repository; import java.util.List; +@Repository public interface UserRepository extends CrudRepository { List findByFirstName(String firstName); } diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 29276d2..414cd27 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -3,7 +3,7 @@ spring.thymeleaf.suffix=.html spring.thymeleaf.template-loader-path=classpath:/templates spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.username=root -spring.datasource.password=root +spring.datasource.password=1778 spring.datasource.url= jdbc:mysql://localhost:3306/project spring.jpa.hibernate.ddl-auto=update diff --git a/src/test/java/com/crudrepo/account/AccountRepositoryTest.java b/src/test/java/com/crudrepo/account/AccountRepositoryTest.java new file mode 100644 index 0000000..40d1d6d --- /dev/null +++ b/src/test/java/com/crudrepo/account/AccountRepositoryTest.java @@ -0,0 +1,43 @@ +package com.crudrepo.account; + +import com.crudrepo.user.model.Account; +import com.crudrepo.user.service.AccountRepository; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mockito; +import org.mockito.junit.jupiter.MockitoExtension; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.mock.mockito.MockBean; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +@SpringBootTest(classes = AccountRepository.class) +@ExtendWith(MockitoExtension.class) +public class AccountRepositoryTest { + @MockBean + AccountRepository accountRepository; + + @Test + public void shouldGetByIban() { + Optional accountOp = Optional.of(new Account()); + accountOp.get().setIBAN("RO12345678901234"); + Mockito.when(accountRepository.findByIBAN("RO12345678901234")).thenReturn(accountOp); + assertEquals(accountOp, accountRepository.findByIBAN("RO12345678901234"), "failed to get account"); + assertEquals(accountOp.get().getIBAN(), accountRepository.findByIBAN("RO12345678901234").get().getIBAN(), "failed to get IBAN"); + } + + @Test + public void shouldGetAccounts() { + List accountList = new ArrayList<>(); + accountList.add(new Account(1, 1, "RON", "iban1", 100d)); + accountList.add(new Account(2, 1, "EUR", "iban2", 200d)); + accountList.add(new Account(3, 1, "USD", "iban3", 300d)); + Mockito.when(accountRepository.findAllByUserId(1)).thenReturn(accountList); + assertEquals(3, accountRepository.findAllByUserId(1).size(), "invalid list size"); + assertEquals(accountList, accountRepository.findAllByUserId(1), "failed to get list"); + } +} diff --git a/src/test/java/com/crudrepo/user/UserRepositoryTest.java b/src/test/java/com/crudrepo/user/UserRepositoryTest.java index 1990883..b70c63e 100644 --- a/src/test/java/com/crudrepo/user/UserRepositoryTest.java +++ b/src/test/java/com/crudrepo/user/UserRepositoryTest.java @@ -2,22 +2,32 @@ import com.crudrepo.user.model.User; import com.crudrepo.user.service.UserRepository; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mockito; import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.mock.mockito.MockBean; -import java.util.Optional; +import java.util.ArrayList; +import java.util.List; + +import static org.junit.jupiter.api.Assertions.assertEquals; @SpringBootTest(classes = UserRepository.class) @ExtendWith(MockitoExtension.class) public class UserRepositoryTest { - @MockBean - UserRepository userRepository; + @MockBean(name = "userRepository") + private UserRepository userRepository; @Test public void shouldFindByName() { - Optional userOptional = Optional.of(new User()); + List userList = new ArrayList<>(); + userList.add(new User(1, "Gabriel", "Stanescu", (short) 21, "test", "test", null)); + userList.add(new User(2, "Gabriel", "Gabi", (short) 20, "email", "pass", null)); + Mockito.when(userRepository.findByFirstName("Gabriel")).thenReturn(userList); + assertEquals(2, userRepository.findByFirstName("Gabriel").size(), "invalid list size"); + assertEquals("Gabriel", userRepository.findByFirstName("Gabriel").get(0).getFirstName(), "find by first name failed."); + assertEquals("Gabriel", userRepository.findByFirstName("Gabriel").get(1).getFirstName(), "find by first name failed."); } } From 7a8ab81ac9cb64a2995a639645ebebd39adab712 Mon Sep 17 00:00:00 2001 From: Gabriel Date: Wed, 20 Apr 2022 21:36:30 +0300 Subject: [PATCH 3/7] Added HttpHelper Signed-off-by: Gabriel --- pom.xml | 5 +++ .../java/com/crudrepo/helper/HttpHelper.java | 37 +++++++++++++++++++ .../com/crudrepo/user/UserControllerTest.java | 16 ++++++++ 3 files changed, 58 insertions(+) create mode 100644 src/main/java/com/crudrepo/helper/HttpHelper.java create mode 100644 src/test/java/com/crudrepo/user/UserControllerTest.java diff --git a/pom.xml b/pom.xml index 25d6dc2..d5ac772 100644 --- a/pom.xml +++ b/pom.xml @@ -62,6 +62,11 @@ 4.0.0 test + + com.google.code.gson + gson + 2.9.0 + diff --git a/src/main/java/com/crudrepo/helper/HttpHelper.java b/src/main/java/com/crudrepo/helper/HttpHelper.java new file mode 100644 index 0000000..38f5478 --- /dev/null +++ b/src/main/java/com/crudrepo/helper/HttpHelper.java @@ -0,0 +1,37 @@ +package com.crudrepo.helper; + +import com.google.gson.Gson; + +import java.net.MalformedURLException; +import java.net.URISyntaxException; +import java.net.URL; +import java.net.http.HttpRequest; + +public class HttpHelper { + public static Gson gson = new Gson(); + + public static HttpRequest createGetRequest(String url) { + HttpRequest getRequest = null; + try { + URL getUrl = new URL(url); + getRequest = HttpRequest.newBuilder(getUrl.toURI()).build(); + } catch (URISyntaxException | MalformedURLException e) { + e.printStackTrace(); + } + return getRequest; + } + + public static HttpRequest createPostRequest(String url, Object body) { + HttpRequest postRequest = null; + String json = gson.toJson(body); + try { + URL postUrl = new URL(url); + postRequest = HttpRequest.newBuilder(postUrl.toURI()) + .POST(HttpRequest.BodyPublishers.ofString(json)) + .build(); + } catch (URISyntaxException | MalformedURLException e) { + e.printStackTrace(); + } + return postRequest; + } +} diff --git a/src/test/java/com/crudrepo/user/UserControllerTest.java b/src/test/java/com/crudrepo/user/UserControllerTest.java new file mode 100644 index 0000000..f147297 --- /dev/null +++ b/src/test/java/com/crudrepo/user/UserControllerTest.java @@ -0,0 +1,16 @@ +package com.crudrepo.user; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +import java.net.http.HttpClient; +import java.net.http.HttpRequest; + +@SpringBootTest +public class UserControllerTest { + HttpClient httpClient = HttpClient.newHttpClient(); + + @Test + public void shouldGetUser() { + } +} From 01abd5aee5939b7ceb33ff704367865fff7de5e5 Mon Sep 17 00:00:00 2001 From: Gabriel Date: Thu, 21 Apr 2022 02:09:52 +0300 Subject: [PATCH 4/7] Added UnitTest for User Controller Signed-off-by: Gabriel --- pom.xml | 5 ++ .../java/com/crudrepo/helper/HttpHelper.java | 1 + .../com/crudrepo/user/UserController.java | 8 +-- .../java/com/crudrepo/user/model/Account.java | 29 ++++++++ .../java/com/crudrepo/user/model/User.java | 33 +++++++++ .../service/UserProductionRepository.java | 19 +++++ .../crudrepo/user/service/UserRepository.java | 2 +- .../crudrepo/user/service/UserService.java | 2 + .../user/service/UserTestRepository.java | 28 ++++++++ .../account/AccountControllerTest.java | 15 ++++ .../com/crudrepo/user/UserControllerTest.java | 70 ++++++++++++++++++- 11 files changed, 206 insertions(+), 6 deletions(-) create mode 100644 src/main/java/com/crudrepo/user/service/UserProductionRepository.java create mode 100644 src/main/java/com/crudrepo/user/service/UserTestRepository.java create mode 100644 src/test/java/com/crudrepo/account/AccountControllerTest.java diff --git a/pom.xml b/pom.xml index d5ac772..241d84f 100644 --- a/pom.xml +++ b/pom.xml @@ -67,6 +67,11 @@ gson 2.9.0 + + com.h2database + h2 + runtime + diff --git a/src/main/java/com/crudrepo/helper/HttpHelper.java b/src/main/java/com/crudrepo/helper/HttpHelper.java index 38f5478..2c64e3b 100644 --- a/src/main/java/com/crudrepo/helper/HttpHelper.java +++ b/src/main/java/com/crudrepo/helper/HttpHelper.java @@ -27,6 +27,7 @@ public static HttpRequest createPostRequest(String url, Object body) { try { URL postUrl = new URL(url); postRequest = HttpRequest.newBuilder(postUrl.toURI()) + .header("Content-Type", "application/json") .POST(HttpRequest.BodyPublishers.ofString(json)) .build(); } catch (URISyntaxException | MalformedURLException e) { diff --git a/src/main/java/com/crudrepo/user/UserController.java b/src/main/java/com/crudrepo/user/UserController.java index 0456dc8..cce3300 100644 --- a/src/main/java/com/crudrepo/user/UserController.java +++ b/src/main/java/com/crudrepo/user/UserController.java @@ -20,10 +20,10 @@ public class UserController { @Autowired UserStreamService userStreamService; - @PostMapping() + @PostMapping public ResponseEntity createUser(@RequestBody User user) { userService.createUser(user); - return new ResponseEntity<>(HttpStatus.OK); + return new ResponseEntity<>("User successfully created", HttpStatus.OK); } @GetMapping("{id}") @@ -31,8 +31,8 @@ public User getUserById(@PathVariable("id") Integer id) { return userService.getUser(id); } - @GetMapping("/list") - public List getUsersByName(@RequestParam("name") String name) { + @PostMapping("/list") + public List getUsersByName(@RequestParam(name = "name") String name) { return userService.getUsersByName(name); } diff --git a/src/main/java/com/crudrepo/user/model/Account.java b/src/main/java/com/crudrepo/user/model/Account.java index 5cb8a79..94b71d3 100644 --- a/src/main/java/com/crudrepo/user/model/Account.java +++ b/src/main/java/com/crudrepo/user/model/Account.java @@ -6,6 +6,7 @@ import lombok.Setter; import javax.persistence.*; +import java.util.Objects; @Getter @Setter @@ -22,4 +23,32 @@ public class Account { private String currency; private String IBAN; private double balance; + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Account account = (Account) o; + return id == account.id && + userId == account.userId && + account.balance == balance && + currency.equals(account.currency) && + IBAN.equals(account.IBAN); + } + + @Override + public int hashCode() { + return Objects.hash(id, userId, currency, IBAN, balance); + } + + @Override + public String toString() { + return "Account{" + + "id=" + id + + ", userId=" + userId + + ", currency='" + currency + '\'' + + ", IBAN='" + IBAN + '\'' + + ", balance=" + balance + + '}'; + } } \ No newline at end of file diff --git a/src/main/java/com/crudrepo/user/model/User.java b/src/main/java/com/crudrepo/user/model/User.java index 7a38f6e..6d72b8b 100644 --- a/src/main/java/com/crudrepo/user/model/User.java +++ b/src/main/java/com/crudrepo/user/model/User.java @@ -7,6 +7,7 @@ import javax.persistence.*; import java.util.List; +import java.util.Objects; @Getter @Table(name = "users") @@ -27,4 +28,36 @@ public class User { @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL, orphanRemoval = true) @JoinColumn(name = "user_id") List accountList; + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + User user = (User) o; + return id == user.id && + age == user.age && + firstName.equals(user.firstName) && + lastName.equals(user.lastName) && + email.equals(user.email) && + password.equals(user.password) && + accountList.equals(user.accountList); + } + + @Override + public int hashCode() { + return Objects.hash(id, firstName, lastName, age, email, password, accountList); + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", firstName='" + firstName + '\'' + + ", lastName='" + lastName + '\'' + + ", age=" + age + + ", email='" + email + '\'' + + ", password='" + password + '\'' + + ", accountList=" + accountList + + '}'; + } } diff --git a/src/main/java/com/crudrepo/user/service/UserProductionRepository.java b/src/main/java/com/crudrepo/user/service/UserProductionRepository.java new file mode 100644 index 0000000..edc8460 --- /dev/null +++ b/src/main/java/com/crudrepo/user/service/UserProductionRepository.java @@ -0,0 +1,19 @@ +package com.crudrepo.user.service; + +import com.crudrepo.user.model.User; +import org.springframework.context.annotation.Profile; +import org.springframework.data.repository.CrudRepository; +import org.springframework.stereotype.Component; +import org.springframework.stereotype.Repository; + +import java.util.List; + +@Repository +@Profile("production") +@Component +public abstract class UserProductionRepository implements UserRepository { + public List findByFirstName(String firstName) { + return null; + } + +} diff --git a/src/main/java/com/crudrepo/user/service/UserRepository.java b/src/main/java/com/crudrepo/user/service/UserRepository.java index b71f25f..c2ce4b8 100644 --- a/src/main/java/com/crudrepo/user/service/UserRepository.java +++ b/src/main/java/com/crudrepo/user/service/UserRepository.java @@ -1,12 +1,12 @@ package com.crudrepo.user.service; import com.crudrepo.user.model.User; +import org.springframework.context.annotation.Profile; import org.springframework.data.repository.CrudRepository; import org.springframework.stereotype.Repository; import java.util.List; -@Repository public interface UserRepository extends CrudRepository { List findByFirstName(String firstName); } diff --git a/src/main/java/com/crudrepo/user/service/UserService.java b/src/main/java/com/crudrepo/user/service/UserService.java index 31ede02..dcef76b 100644 --- a/src/main/java/com/crudrepo/user/service/UserService.java +++ b/src/main/java/com/crudrepo/user/service/UserService.java @@ -2,6 +2,8 @@ import com.crudrepo.user.model.User; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.context.annotation.Profile; import org.springframework.stereotype.Service; import java.util.List; diff --git a/src/main/java/com/crudrepo/user/service/UserTestRepository.java b/src/main/java/com/crudrepo/user/service/UserTestRepository.java new file mode 100644 index 0000000..dea2f72 --- /dev/null +++ b/src/main/java/com/crudrepo/user/service/UserTestRepository.java @@ -0,0 +1,28 @@ +package com.crudrepo.user.service; + +import com.crudrepo.user.model.User; +import org.springframework.context.annotation.Profile; +import org.springframework.stereotype.Component; +import org.springframework.stereotype.Repository; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +@Repository +@Profile("test") +@Component +public abstract class UserTestRepository implements UserRepository { + public List findByFirstName(String firstName) { + List userList = new ArrayList<>(); + User user = new User(1, firstName, "ln", (short) 21, "email", "pass", null); + User user1 = new User(2, firstName, "name", (short) 22, "yahoo", "123", null); + userList.add(user); + userList.add(user1); + return userList; + } + + public Optional findById(Integer id) { + return Optional.of(new User(id, "Gabriel", "ln", (short) 21, "email", "pass", null)); + } +} diff --git a/src/test/java/com/crudrepo/account/AccountControllerTest.java b/src/test/java/com/crudrepo/account/AccountControllerTest.java new file mode 100644 index 0000000..7bce331 --- /dev/null +++ b/src/test/java/com/crudrepo/account/AccountControllerTest.java @@ -0,0 +1,15 @@ +package com.crudrepo.account; + +import com.google.gson.Gson; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.ActiveProfiles; + +import java.net.http.HttpClient; + +@SpringBootTest +@ActiveProfiles("test") +public class AccountControllerTest { + private final HttpClient httpClient = HttpClient.newHttpClient(); + private Gson gson = new Gson(); + +} diff --git a/src/test/java/com/crudrepo/user/UserControllerTest.java b/src/test/java/com/crudrepo/user/UserControllerTest.java index f147297..2f4cf17 100644 --- a/src/test/java/com/crudrepo/user/UserControllerTest.java +++ b/src/test/java/com/crudrepo/user/UserControllerTest.java @@ -1,16 +1,84 @@ package com.crudrepo.user; +import com.crudrepo.helper.HttpHelper; +import com.crudrepo.user.model.User; +import com.google.gson.Gson; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.ActiveProfiles; +import java.io.IOException; import java.net.http.HttpClient; import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import java.util.ArrayList; +import java.util.List; + +import static org.junit.jupiter.api.Assertions.assertEquals; @SpringBootTest +@ActiveProfiles("test") public class UserControllerTest { - HttpClient httpClient = HttpClient.newHttpClient(); + private final HttpClient httpClient = HttpClient.newHttpClient(); + private Gson gson = new Gson(); @Test public void shouldGetUser() { + User user = requestUserWithId(1); + assertEquals(user, new User(1, "Gabriel", "ln", (short) 21, "email", "pass", new ArrayList<>())); + } + + @Test + public void shouldCreateUser() { + User bodyUser = new User(500, "FirstName", "ln", (short) 31, "mail", "123", new ArrayList<>()); + HttpRequest postRequest = HttpHelper.createPostRequest("http://localhost:8082/users", bodyUser); + HttpResponse response = null; + try { + response = httpClient.send(postRequest, HttpResponse.BodyHandlers.ofString()); + } catch (IOException | InterruptedException e) { + e.printStackTrace(); + } + assertEquals(200, response.statusCode(), "failed to create user"); + } + + @Test + public void shouldGetInitials() { + HttpRequest httpRequest = HttpHelper.createGetRequest("http://localhost:8082/users/streams/initials"); + String responseBody = ""; + try { + HttpResponse response = httpClient.send(httpRequest, HttpResponse.BodyHandlers.ofString()); + responseBody = response.body(); + } catch (IOException | InterruptedException e) { + e.printStackTrace(); + } + List initials = gson.fromJson(responseBody, ArrayList.class); + assertEquals(161, initials.size(), "failed to get initials"); } + + @Test + public void shouldGetGmailUsers() { + HttpRequest httpRequest = HttpHelper.createGetRequest("http://localhost:8082/users/streams/gmails"); + String responseBody = ""; + try { + HttpResponse response = httpClient.send(httpRequest, HttpResponse.BodyHandlers.ofString()); + responseBody = response.body(); + } catch (IOException | InterruptedException e) { + e.printStackTrace(); + } + Long noOfGmail = gson.fromJson(responseBody, Long.class); + assertEquals(2, noOfGmail, "failed to get gmail users"); + } + + public User requestUserWithId(Integer id) { + HttpRequest httpRequest = HttpHelper.createGetRequest("http://localhost:8082/users/" + id); + String responseBody = ""; + try { + HttpResponse response = httpClient.send(httpRequest, HttpResponse.BodyHandlers.ofString()); + responseBody = response.body(); + } catch (IOException | InterruptedException e) { + e.printStackTrace(); + } + return gson.fromJson(responseBody, User.class); + } + } From bd23d5f4d3bad327cdf1928b05f85caafbe91abb Mon Sep 17 00:00:00 2001 From: Gabriel Date: Thu, 21 Apr 2022 02:36:59 +0300 Subject: [PATCH 5/7] Added Unit Test for Account Controller Signed-off-by: Gabriel --- .../account/AccountControllerTest.java | 34 +++++++++++++++++++ .../com/crudrepo/user/UserControllerTest.java | 5 +-- 2 files changed, 37 insertions(+), 2 deletions(-) diff --git a/src/test/java/com/crudrepo/account/AccountControllerTest.java b/src/test/java/com/crudrepo/account/AccountControllerTest.java index 7bce331..bd817c5 100644 --- a/src/test/java/com/crudrepo/account/AccountControllerTest.java +++ b/src/test/java/com/crudrepo/account/AccountControllerTest.java @@ -1,10 +1,22 @@ package com.crudrepo.account; +import com.crudrepo.helper.HttpHelper; +import com.crudrepo.user.model.Account; +import com.crudrepo.user.model.User; import com.google.gson.Gson; +import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.ActiveProfiles; +import java.io.IOException; import java.net.http.HttpClient; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import static org.junit.jupiter.api.Assertions.assertEquals; @SpringBootTest @ActiveProfiles("test") @@ -12,4 +24,26 @@ public class AccountControllerTest { private final HttpClient httpClient = HttpClient.newHttpClient(); private Gson gson = new Gson(); + @Test + public void shouldGetAccount() { + List accountList = requestUserWithId(1); + Account account = new Account(1, 1, "RON", "DB09079714855445", 0); + assertEquals(accountList.get(0).getBalance(), account.getBalance()); + assertEquals(accountList.get(0).getId(), account.getId()); + assertEquals(accountList.get(0).getUserId(), account.getUserId()); + } + + private List requestUserWithId(int id) { + HttpRequest httpRequest = HttpHelper.createGetRequest("http://localhost:8082/accounts/" + id); + String responseBody = ""; + try { + HttpResponse response = httpClient.send(httpRequest, HttpResponse.BodyHandlers.ofString()); + responseBody = response.body(); + } catch (IOException | InterruptedException e) { + e.printStackTrace(); + } + // weird bug where any iban returned is null ??? + Account[] accounts = gson.fromJson(responseBody, Account[].class); + return Arrays.asList(accounts); + } } diff --git a/src/test/java/com/crudrepo/user/UserControllerTest.java b/src/test/java/com/crudrepo/user/UserControllerTest.java index 2f4cf17..195b97f 100644 --- a/src/test/java/com/crudrepo/user/UserControllerTest.java +++ b/src/test/java/com/crudrepo/user/UserControllerTest.java @@ -52,7 +52,8 @@ public void shouldGetInitials() { e.printStackTrace(); } List initials = gson.fromJson(responseBody, ArrayList.class); - assertEquals(161, initials.size(), "failed to get initials"); + // should fail when all tests are runned because an user is being created all the time + assertEquals(162, initials.size(), "failed to get initials"); } @Test @@ -69,7 +70,7 @@ public void shouldGetGmailUsers() { assertEquals(2, noOfGmail, "failed to get gmail users"); } - public User requestUserWithId(Integer id) { + private User requestUserWithId(Integer id) { HttpRequest httpRequest = HttpHelper.createGetRequest("http://localhost:8082/users/" + id); String responseBody = ""; try { From b172815835b9525ba3f9970629692815230bbf02 Mon Sep 17 00:00:00 2001 From: Gabriel Date: Thu, 21 Apr 2022 02:43:14 +0300 Subject: [PATCH 6/7] Updated Readme Signed-off-by: Gabriel --- README.md | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 07502a8..9a8594c 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,20 @@ # CRUDRepository -Beans Life Cycle homework +Stanescu Gabriel +Grupa A -IBAN: [2 letter prefix] + [14 digits] -TransferController checks if a transfer should be internal or external, based on the prefix. +Tema Unit Tests -Multiple Transfer Beans, separated with @Qualifier. \ No newline at end of file +Am avut dificultati in crearea a 2 Bean-uri pentru User Repository, mai exact +la extinderea/implementarea superclaselor. Am gasit o solutie prin care clasele +"frunze" sa fie abstracte, doar ca nu erau recunoscute de profile. Am inteles +conceptul in sine, dar nu am reusit sa il implementez in aceasta tema. Prin urmare, +UnitTestele ruleaza pe serverul de database, deja populat. + +Am lasat un fisier pentru popularea tabelelor. + +Unele teste vor pica deoarece la rularea tuturor, se va crea cate un user nou, +iar un test verifica totalitatea initialelor, care depind, evident, de nr de useri. + +Coverage-ul este relativ mic din cauza interfetelor care nu au niciun rol si din +cauza ca nu am implementat cateva teste care sunt de tipul Post Request. Nu am gasit +o modalitate prin care sa trimit un body de forma form-data fara sa primesc erori. \ No newline at end of file From 2cafa9a52fc06a507a03bd2c296754da9c2b32d7 Mon Sep 17 00:00:00 2001 From: Gabriel Date: Thu, 21 Apr 2022 02:52:59 +0300 Subject: [PATCH 7/7] Added dumps Signed-off-by: Gabriel --- dump.sql | 84 +++++++++++++++++++++++++++++ insert_queries.sql | 132 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 216 insertions(+) create mode 100644 dump.sql create mode 100644 insert_queries.sql diff --git a/dump.sql b/dump.sql new file mode 100644 index 0000000..6e6fa19 --- /dev/null +++ b/dump.sql @@ -0,0 +1,84 @@ +-- MySQL dump 10.13 Distrib 8.0.28, for Win64 (x86_64) +-- +-- Host: localhost Database: project +-- ------------------------------------------------------ +-- Server version 8.0.28 + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!50503 SET NAMES utf8 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Table structure for table `accounts` +-- + +DROP TABLE IF EXISTS `accounts`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `accounts` ( + `id` int NOT NULL, + `iban` varchar(255) DEFAULT NULL, + `balance` double NOT NULL, + `currency` varchar(255) DEFAULT NULL, + `user_id` int DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `FKnjuop33mo69pd79ctplkck40n` (`user_id`), + CONSTRAINT `FKnjuop33mo69pd79ctplkck40n` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `accounts` +-- + +LOCK TABLES `accounts` WRITE; +/*!40000 ALTER TABLE `accounts` DISABLE KEYS */; +INSERT INTO `accounts` VALUES (1,'DB09079714855445',0,'RON',1); +/*!40000 ALTER TABLE `accounts` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `users` +-- + +DROP TABLE IF EXISTS `users`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `users` ( + `id` int NOT NULL AUTO_INCREMENT, + `age` smallint NOT NULL, + `email` varchar(255) DEFAULT NULL, + `first_name` varchar(255) DEFAULT NULL, + `last_name` varchar(255) DEFAULT NULL, + `password` varchar(255) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=165 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `users` +-- + +LOCK TABLES `users` WRITE; +/*!40000 ALTER TABLE `users` DISABLE KEYS */; +INSERT INTO `users` VALUES (1,21,'email','Gabriel','ln','pass'),(2,71,'dignissim.pharetra@aol.com','Dominic','Cade','HFU23JWM7VY'),(3,30,'at@protonmail.ca','Guy','Henry','OGU78MJU0GS'),(4,31,'scelerisque.neque.sed@protonmail.couk','Laurel','Jared','BWC11OYX0WW'),(5,44,'cras.vehicula.aliquet@google.ca','Prescott','Regina','KQB58MNI3YP'),(6,36,'euismod@aol.com','Gareth','Kenneth','OVM56HBI5GY'),(7,47,'amet.consectetuer.adipiscing@yahoo.couk','Asher','Plato','ICJ52XNY1PH'),(8,50,'consequat.lectus@google.org','Jamalia','Brendan','GHJ22MQV7YT'),(9,56,'mauris@hotmail.net','Ina','Willa','FBT48RAT8NR'),(10,52,'hendrerit@hotmail.ca','Neil','Trevor','LBD81CMJ6BK'),(11,38,'interdum.ligula@icloud.ca','Kylie','Carl','RLU45MWU7XR'),(12,39,'turpis@outlook.net','Dexter','Indigo','WJH42QIM7BX'),(13,69,'faucibus.ut@gmail.com','Harrison','Dane','CDW27QJX7HK'),(14,20,'vestibulum.mauris@google.com','Jenette','Brock','DMZ36HHD1FL'),(15,47,'primis.in@icloud.edu','Elmo','Julian','OJQ21VDI3EJ'),(16,46,'purus.ac.tellus@protonmail.couk','Herrod','Nevada','LEL15SLV2WW'),(17,58,'laoreet.libero.et@hotmail.org','Orson','Rogan','VVJ38QON8RC'),(18,42,'vel.venenatis@gmail.org','Orli','Olivia','RUT65RTE1TO'),(19,35,'libero.dui@protonmail.couk','Rhea','Baker','LBG76RFE7LU'),(20,35,'augue.malesuada@protonmail.net','Paul','Dawn','SSY78SBX3JS'),(21,23,'ac.sem.ut@icloud.net','Stacey','Holly','TFR57CIM3GF'),(22,32,'sed@google.ca','William','Maryam','ZKP12HNP2OC'),(23,61,'orci.quis@yahoo.edu','Felicia','Roanna','RFT73RMN0MV'),(24,20,'tincidunt@hotmail.couk','Raja','Howard','NIX87ZYT6LH'),(25,48,'lorem.lorem.luctus@google.edu','Sylvia','Lareina','FGJ15IKJ5JF'),(26,39,'lacus.pede@google.couk','Dolan','Vivian','HMC55IGG5TZ'),(27,64,'duis.dignissim.tempor@google.edu','Graham','Garrison','GGN18KRB0UU'),(28,61,'consequat.lectus@google.edu','Renee','Steel','TJN45FLW7IT'),(29,47,'arcu@outlook.couk','Nissim','Amy','TFB46KPW4EV'),(30,48,'nam.ac.nulla@google.couk','Marsden','Wing','BGL23LLM7SM'),(31,70,'malesuada.vel.convallis@yahoo.org','Branden','Cheyenne','VNO55TVH7EO'),(32,23,'turpis.non.enim@google.net','Oprah','Nola','JEN43MMI3QH'),(33,57,'vitae.sodales@icloud.org','Kenneth','Andrew','YTB13QDP2GD'),(34,47,'vehicula.pellentesque@google.net','Grant','Amos','XLQ65RND3TU'),(35,77,'velit.quisque.varius@outlook.ca','Kylie','Igor','JZP81ICF3RJ'),(36,34,'dignissim.maecenas@icloud.edu','Dalton','Hiram','TXX13KOL6BG'),(37,46,'arcu.ac@google.net','Deanna','Velma','CHT71QOM3EY'),(38,53,'sagittis.nullam.vitae@google.org','Lynn','Olympia','OVD71GRQ0QI'),(39,36,'magnis@aol.ca','Nathan','Wilma','HCE81AIJ7ER'),(40,27,'nec.euismod@aol.org','Laith','Stuart','PVP23GJN3DD'),(41,78,'est@icloud.com','Abel','Lillith','YSL56WHX9KY'),(42,60,'justo.proin@outlook.net','Gray','Amelia','WQK35RCR4XW'),(43,74,'montes.nascetur.ridiculus@icloud.edu','Russell','Honorato','LRK21HXM9QJ'),(44,79,'et.magnis.dis@aol.ca','Rudyard','Clayton','RTD76GGI5NW'),(45,61,'phasellus.ornare@outlook.net','Warren','Evan','MYJ53IEB5RC'),(46,46,'dui.suspendisse@aol.ca','Yael','Upton','UWQ15AEL9UY'),(47,24,'dictum.sapien@hotmail.edu','Lacey','Ella','WID92LGK6AT'),(48,78,'tincidunt.vehicula@hotmail.com','Raphael','Colleen','EJI73VQS1QD'),(49,28,'phasellus.libero@hotmail.org','Jolene','Colleen','QNO36NYO7LM'),(50,80,'dapibus.id@protonmail.org','Arden','Karleigh','QSF44SYB7AH'),(51,35,'elit.nulla@icloud.edu','Prescott','Sandra','BXP03ZCY8WI'),(52,80,'mi.duis.risus@outlook.edu','Kaseem','Channing','RPY15LYB5YW'),(53,39,'maecenas.libero.est@icloud.org','Belle','Pearl','EXW73EHV7UN'),(54,39,'lorem@yahoo.org','Nadine','Abdul','VCL66RSY7CO'),(55,75,'lacus.vestibulum@aol.com','Reece','Pascale','ETK63LWP4RF'),(56,33,'justo.nec@icloud.couk','Chase','Tyrone','CRQ14OGS0MY'),(57,49,'sed.eu.eros@icloud.ca','Samson','Yetta','UIA83BCP8LB'),(58,60,'in.felis@google.edu','Michael','Felix','FLT13ZQS1HL'),(59,5,'cum.sociis@protonmail.ca','Cameron','Molly','LGE72KLA2GS'),(60,59,'turpis@aol.couk','Arden','Maryam','XTE08KQJ1EG'),(61,25,'et.tristique@google.net','Amelia','Susan','WHY82TWM6ZH'),(62,29,'ornare@yahoo.net','Erich','Adrienne','CWG86EBW9VQ'),(63,13,'lorem.sit.amet@icloud.com','Burke','Wade','LXH63LCG5NW'),(64,35,'vel.nisl.quisque@outlook.com','Charity','Yasir','OCM28QFK5WB'),(65,45,'lectus.nullam@outlook.com','Martena','Hadassah','KPO24OKB3XN'),(66,64,'conubia.nostra@yahoo.org','Alden','Ruby','AEE84ZXX1VF'),(67,35,'aliquam.nisl@aol.edu','Murphy','Amaya','HFO67EAA8PL'),(68,44,'penatibus.et.magnis@google.org','Marshall','Holmes','TMK82GPN3MQ'),(69,5,'orci@hotmail.org','Kitra','Genevieve','BHD52UPH5OU'),(70,57,'nullam.vitae@hotmail.com','Lee','Amery','KZS97NSR4PU'),(71,53,'purus.accumsan@aol.couk','Joseph','Scarlet','JNU23ZRP1WQ'),(72,4,'tristique.ac@icloud.net','Inez','Vladimir','WIN82TYD8MK'),(73,61,'semper@outlook.com','Jack','Lysandra','NFM88FHP2ED'),(74,59,'ut@yahoo.net','Grant','Alika','DBT35HKI1EB'),(75,2,'penatibus.et@icloud.edu','Nigel','Dominique','VEL88NBQ5CY'),(76,75,'sed.turpis@outlook.edu','Dillon','Kennedy','BQO21DDZ6UY'),(77,47,'donec.tincidunt.donec@yahoo.org','Lydia','Jackson','VEK72HBH8JM'),(78,56,'dictum.placerat@outlook.ca','Gabriel','Allen','RUQ20YRV4AK'),(79,0,'orci.in.consequat@google.net','Holly','Anika','ENP44WVP0MJ'),(80,48,'aliquam@yahoo.com','Ignatius','Marshall','JGJ72UKB0FJ'),(81,44,'ut.sagittis.lobortis@yahoo.org','Ferdinand','Savannah','ELV18XJF7TO'),(82,41,'elit.pretium@google.ca','Dexter','Iliana','MLC81UNK6IA'),(83,19,'ac.urna@yahoo.ca','Gisela','Christian','FCB56MHP8HO'),(84,50,'vitae.semper@aol.couk','Cheryl','Abbot','EVC75FXC3HR'),(85,33,'gravida.sagittis.duis@icloud.net','Ainsley','Audrey','LKF96OWF1MH'),(86,43,'luctus.et.ultrices@aol.edu','Jerome','Drake','ONV89AVN4ZI'),(87,46,'ipsum.ac.mi@protonmail.org','Savannah','Chase','JSH54KTP0GX'),(88,38,'elit@outlook.com','Timothy','Rashad','URX37DGA6VX'),(89,46,'arcu.nunc.mauris@icloud.edu','Demetrius','Jonas','URW23ECU0WK'),(90,28,'eget@aol.edu','Mallory','Branden','WIK30IHE6WY'),(91,48,'risus@protonmail.org','Axel','Cheyenne','UHS60LMD5NV'),(92,4,'arcu.iaculis.enim@outlook.ca','Charde','Keiko','LBN15WJZ8TC'),(93,28,'orci@outlook.ca','Deanna','Quinlan','HUD87WVF9DU'),(94,21,'a@aol.com','Cruz','Nasim','GUG15JFD7EH'),(95,40,'a@yahoo.org','Patrick','Merrill','CHO19UOP0FC'),(96,73,'orci.sem@google.net','Roth','Prescott','MWT89JYB7WE'),(97,0,'sit.amet@google.ca','Yuli','Christian','TCN80ETR5XU'),(98,45,'vitae@protonmail.couk','Sopoline','Rogan','UDK77INS4YC'),(99,31,'semper.dui@protonmail.org','Sophia','Moana','RGP52OIV5FF'),(100,15,'eu.metus@icloud.edu','Chiquita','Ginger','NXV95GQZ6JO'),(101,46,'feugiat.metus@google.ca','Sybill','Kylee','AKU29MTD2NH'),(102,22,'enim.nec@yahoo.org','Buffy','Hashim','PYW65TWF7ER'),(103,32,'vitae.diam@outlook.couk','Zane','Josephine','JAH16ZQC3FS'),(104,9,'lorem.lorem@google.com','Ira','Athena','CJE16HKJ7EO'),(105,11,'vehicula@protonmail.org','Lewis','Tasha','AOP58OCT7VS'),(106,27,'erat.vivamus.nisi@hotmail.com','Colby','Jemima','HNF59KCC6OT'),(107,74,'tincidunt@hotmail.couk','Ulric','Amaya','VJN57AJP5RH'),(108,31,'velit@protonmail.couk','Craig','Nora','MOP35YJH7EK'),(109,56,'posuere@outlook.com','Austin','Lavinia','DNB62AAJ5XT'),(110,24,'mus@google.couk','Bevis','Michelle','GZS69CBC5QQ'),(111,70,'eros.turpis@aol.org','Katell','India','YFJ64OBU2NB'),(112,78,'pretium@google.com','Joseph','Rose','BMD84GJI2JY'),(113,22,'libero.et@google.net','Madeline','Byron','HFY28NHA1OX'),(114,3,'consectetuer.cursus@google.com','Chastity','Priscilla','EVT72XXV3MY'),(115,49,'nulla.in@outlook.edu','Melvin','Rina','SNE43VHV3SE'),(116,40,'cursus.nunc@yahoo.org','Fritz','Aladdin','QYW72YUQ9ES'),(117,64,'dapibus.gravida.aliquam@protonmail.ca','Levi','Kay','LKA37XYK1YB'),(118,79,'vestibulum.ut@hotmail.org','Avram','Tashya','ELC18QXX1CG'),(119,8,'non.lorem.vitae@google.couk','Serena','Branden','MOW07YYV7XY'),(120,65,'at.fringilla@google.net','Vivien','Louis','OWH02FHG7TJ'),(121,48,'tincidunt.dui@aol.edu','Wallace','Hoyt','USE31CRW2BG'),(122,19,'eu.ultrices@icloud.couk','Mannix','Xander','DUT51JMF8HG'),(123,9,'tincidunt.congue@protonmail.org','Mara','Damon','WFB48TPR8UL'),(124,11,'netus.et@icloud.edu','Amery','Jessamine','UFV42DSC7SE'),(125,33,'augue.scelerisque@icloud.ca','Graham','Laurel','KUF37FJC6NM'),(126,49,'velit.pellentesque@protonmail.org','Marny','Vincent','DQT47RYM8JR'),(127,49,'mauris.sit@aol.net','Ruby','Valentine','DLX33UIM6OV'),(128,4,'posuere@protonmail.org','Ira','Emmanuel','VNO62TXB7GK'),(129,36,'sit@outlook.org','Vielka','Kyra','HCM61UAC6UY'),(130,32,'accumsan@aol.ca','Tad','Kim','GVE67XXG2UO'),(131,22,'enim@aol.com','Dante','Debra','NDF85UNY2HB'),(132,55,'luctus@yahoo.ca','Rana','Ulric','XAT59QGG6UJ'),(133,66,'vitae.mauris.sit@google.edu','Remedios','Kelly','CTL80JIW9HN'),(134,55,'odio.aliquam@outlook.ca','Aimee','Thaddeus','KPN21YZH4UM'),(135,49,'ligula.aliquam@aol.org','Dexter','Ashton','AJL28TSW2GD'),(136,45,'sodales.mauris@outlook.com','Ann','Latifah','XRY79PXS7XI'),(137,2,'mauris.vestibulum@outlook.net','Madonna','Aspen','NTG77RSX0KK'),(138,16,'sem.egestas.blandit@protonmail.couk','Jana','Reed','KFJ72FIK6AI'),(139,15,'condimentum.donec.at@aol.net','Ursula','Graiden','IBI44ZSB6RQ'),(140,8,'donec.est@protonmail.ca','Karina','Cassady','IUX33WWX4BQ'),(141,32,'adipiscing.elit@protonmail.com','Slade','Thor','WGU55MYA1ZB'),(142,79,'erat.etiam@protonmail.ca','Guy','Rashad','CDY76BRY6BZ'),(143,7,'ac.feugiat@yahoo.org','Amena','Alyssa','TIB81FZB5UC'),(144,33,'nulla.interdum@outlook.com','Austin','Sylvester','EXM15GKH2BD'),(145,64,'risus.quis.diam@icloud.couk','Walter','Noel','JTH23ZYQ2AP'),(146,72,'amet.ante@google.ca','Chaney','Vera','DCG09NZR8PU'),(147,69,'semper.erat@yahoo.com','Herrod','Grant','ANT48UYU7WW'),(148,67,'posuere.enim@icloud.com','Miriam','Ria','RVQ64TUE3KS'),(149,22,'ipsum.phasellus.vitae@aol.org','Malik','Dean','YZA76TJL2EN'),(150,15,'turpis.aliquam@outlook.org','Felicia','Samson','YUY17YZX2GH'),(151,31,'mail','FirstName','ln','123'),(152,31,'mail','FirstName','ln','123'),(153,31,'mail','FirstName','ln','123'),(154,31,'mail','FirstName','ln','123'),(155,31,'mail','FirstName','ln','123'),(156,31,'mail','FirstName','ln','123'),(157,31,'mail','FirstName','ln','123'),(158,31,'mail','FirstName','ln','123'),(159,31,'mail','FirstName','ln','123'),(160,31,'mail','FirstName','ln','123'),(161,31,'mail','FirstName','ln','123'),(162,31,'mail','FirstName','ln','123'),(163,31,'mail','FirstName','ln','123'),(164,31,'mail','FirstName','ln','123'); +/*!40000 ALTER TABLE `users` ENABLE KEYS */; +UNLOCK TABLES; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2022-04-21 2:51:38 diff --git a/insert_queries.sql b/insert_queries.sql new file mode 100644 index 0000000..1497435 --- /dev/null +++ b/insert_queries.sql @@ -0,0 +1,132 @@ +DROP TABLE IF EXISTS `users`; + +CREATE TABLE `users` ( + `id` mediumint(8) unsigned NOT NULL auto_increment, + `age` mediumint default NULL, + `email` varchar(255) default NULL, + `first_name` varchar(255) default NULL, + `last_name` varchar(255) default NULL, + `password` varchar(255), + PRIMARY KEY (`id`) +) AUTO_INCREMENT=1; + +INSERT INTO `users` (`age`,`email`,`first_name`,`last_name`,`password`) +VALUES + (35,"elit.nulla@icloud.edu","Prescott","Sandra","BXP03ZCY8WI"), + (80,"mi.duis.risus@outlook.edu","Kaseem","Channing","RPY15LYB5YW"), + (39,"maecenas.libero.est@icloud.org","Belle","Pearl","EXW73EHV7UN"), + (39,"lorem@yahoo.org","Nadine","Abdul","VCL66RSY7CO"), + (75,"lacus.vestibulum@aol.com","Reece","Pascale","ETK63LWP4RF"), + (33,"justo.nec@icloud.couk","Chase","Tyrone","CRQ14OGS0MY"), + (49,"sed.eu.eros@icloud.ca","Samson","Yetta","UIA83BCP8LB"), + (60,"in.felis@google.edu","Michael","Felix","FLT13ZQS1HL"), + (5,"cum.sociis@protonmail.ca","Cameron","Molly","LGE72KLA2GS"), + (59,"turpis@aol.couk","Arden","Maryam","XTE08KQJ1EG"); +INSERT INTO `users` (`age`,`email`,`first_name`,`last_name`,`password`) +VALUES + (25,"et.tristique@google.net","Amelia","Susan","WHY82TWM6ZH"), + (29,"ornare@yahoo.net","Erich","Adrienne","CWG86EBW9VQ"), + (13,"lorem.sit.amet@icloud.com","Burke","Wade","LXH63LCG5NW"), + (35,"vel.nisl.quisque@outlook.com","Charity","Yasir","OCM28QFK5WB"), + (45,"lectus.nullam@outlook.com","Martena","Hadassah","KPO24OKB3XN"), + (64,"conubia.nostra@yahoo.org","Alden","Ruby","AEE84ZXX1VF"), + (35,"aliquam.nisl@aol.edu","Murphy","Amaya","HFO67EAA8PL"), + (44,"penatibus.et.magnis@google.org","Marshall","Holmes","TMK82GPN3MQ"), + (5,"orci@hotmail.org","Kitra","Genevieve","BHD52UPH5OU"), + (57,"nullam.vitae@hotmail.com","Lee","Amery","KZS97NSR4PU"); +INSERT INTO `users` (`age`,`email`,`first_name`,`last_name`,`password`) +VALUES + (53,"purus.accumsan@aol.couk","Joseph","Scarlet","JNU23ZRP1WQ"), + (4,"tristique.ac@icloud.net","Inez","Vladimir","WIN82TYD8MK"), + (61,"semper@outlook.com","Jack","Lysandra","NFM88FHP2ED"), + (59,"ut@yahoo.net","Grant","Alika","DBT35HKI1EB"), + (2,"penatibus.et@icloud.edu","Nigel","Dominique","VEL88NBQ5CY"), + (75,"sed.turpis@outlook.edu","Dillon","Kennedy","BQO21DDZ6UY"), + (47,"donec.tincidunt.donec@yahoo.org","Lydia","Jackson","VEK72HBH8JM"), + (56,"dictum.placerat@outlook.ca","Gabriel","Allen","RUQ20YRV4AK"), + (0,"orci.in.consequat@google.net","Holly","Anika","ENP44WVP0MJ"), + (48,"aliquam@yahoo.com","Ignatius","Marshall","JGJ72UKB0FJ"); +INSERT INTO `users` (`age`,`email`,`first_name`,`last_name`,`password`) +VALUES + (44,"ut.sagittis.lobortis@yahoo.org","Ferdinand","Savannah","ELV18XJF7TO"), + (41,"elit.pretium@google.ca","Dexter","Iliana","MLC81UNK6IA"), + (19,"ac.urna@yahoo.ca","Gisela","Christian","FCB56MHP8HO"), + (50,"vitae.semper@aol.couk","Cheryl","Abbot","EVC75FXC3HR"), + (33,"gravida.sagittis.duis@icloud.net","Ainsley","Audrey","LKF96OWF1MH"), + (43,"luctus.et.ultrices@aol.edu","Jerome","Drake","ONV89AVN4ZI"), + (46,"ipsum.ac.mi@protonmail.org","Savannah","Chase","JSH54KTP0GX"), + (38,"elit@outlook.com","Timothy","Rashad","URX37DGA6VX"), + (46,"arcu.nunc.mauris@icloud.edu","Demetrius","Jonas","URW23ECU0WK"), + (28,"eget@aol.edu","Mallory","Branden","WIK30IHE6WY"); +INSERT INTO `users` (`age`,`email`,`first_name`,`last_name`,`password`) +VALUES + (48,"risus@protonmail.org","Axel","Cheyenne","UHS60LMD5NV"), + (4,"arcu.iaculis.enim@outlook.ca","Charde","Keiko","LBN15WJZ8TC"), + (28,"orci@outlook.ca","Deanna","Quinlan","HUD87WVF9DU"), + (21,"a@aol.com","Cruz","Nasim","GUG15JFD7EH"), + (40,"a@yahoo.org","Patrick","Merrill","CHO19UOP0FC"), + (73,"orci.sem@google.net","Roth","Prescott","MWT89JYB7WE"), + (0,"sit.amet@google.ca","Yuli","Christian","TCN80ETR5XU"), + (45,"vitae@protonmail.couk","Sopoline","Rogan","UDK77INS4YC"), + (31,"semper.dui@protonmail.org","Sophia","Moana","RGP52OIV5FF"), + (15,"eu.metus@icloud.edu","Chiquita","Ginger","NXV95GQZ6JO"); +INSERT INTO `users` (`age`,`email`,`first_name`,`last_name`,`password`) +VALUES + (46,"feugiat.metus@google.ca","Sybill","Kylee","AKU29MTD2NH"), + (22,"enim.nec@yahoo.org","Buffy","Hashim","PYW65TWF7ER"), + (32,"vitae.diam@outlook.couk","Zane","Josephine","JAH16ZQC3FS"), + (9,"lorem.lorem@google.com","Ira","Athena","CJE16HKJ7EO"), + (11,"vehicula@protonmail.org","Lewis","Tasha","AOP58OCT7VS"), + (27,"erat.vivamus.nisi@hotmail.com","Colby","Jemima","HNF59KCC6OT"), + (74,"tincidunt@hotmail.couk","Ulric","Amaya","VJN57AJP5RH"), + (31,"velit@protonmail.couk","Craig","Nora","MOP35YJH7EK"), + (56,"posuere@outlook.com","Austin","Lavinia","DNB62AAJ5XT"), + (24,"mus@google.couk","Bevis","Michelle","GZS69CBC5QQ"); +INSERT INTO `users` (`age`,`email`,`first_name`,`last_name`,`password`) +VALUES + (70,"eros.turpis@aol.org","Katell","India","YFJ64OBU2NB"), + (78,"pretium@google.com","Joseph","Rose","BMD84GJI2JY"), + (22,"libero.et@google.net","Madeline","Byron","HFY28NHA1OX"), + (3,"consectetuer.cursus@google.com","Chastity","Priscilla","EVT72XXV3MY"), + (49,"nulla.in@outlook.edu","Melvin","Rina","SNE43VHV3SE"), + (40,"cursus.nunc@yahoo.org","Fritz","Aladdin","QYW72YUQ9ES"), + (64,"dapibus.gravida.aliquam@protonmail.ca","Levi","Kay","LKA37XYK1YB"), + (79,"vestibulum.ut@hotmail.org","Avram","Tashya","ELC18QXX1CG"), + (8,"non.lorem.vitae@google.couk","Serena","Branden","MOW07YYV7XY"), + (65,"at.fringilla@google.net","Vivien","Louis","OWH02FHG7TJ"); +INSERT INTO `users` (`age`,`email`,`first_name`,`last_name`,`password`) +VALUES + (48,"tincidunt.dui@aol.edu","Wallace","Hoyt","USE31CRW2BG"), + (19,"eu.ultrices@icloud.couk","Mannix","Xander","DUT51JMF8HG"), + (9,"tincidunt.congue@protonmail.org","Mara","Damon","WFB48TPR8UL"), + (11,"netus.et@icloud.edu","Amery","Jessamine","UFV42DSC7SE"), + (33,"augue.scelerisque@icloud.ca","Graham","Laurel","KUF37FJC6NM"), + (49,"velit.pellentesque@protonmail.org","Marny","Vincent","DQT47RYM8JR"), + (49,"mauris.sit@aol.net","Ruby","Valentine","DLX33UIM6OV"), + (4,"posuere@protonmail.org","Ira","Emmanuel","VNO62TXB7GK"), + (36,"sit@outlook.org","Vielka","Kyra","HCM61UAC6UY"), + (32,"accumsan@aol.ca","Tad","Kim","GVE67XXG2UO"); +INSERT INTO `users` (`age`,`email`,`first_name`,`last_name`,`password`) +VALUES + (22,"enim@aol.com","Dante","Debra","NDF85UNY2HB"), + (55,"luctus@yahoo.ca","Rana","Ulric","XAT59QGG6UJ"), + (66,"vitae.mauris.sit@google.edu","Remedios","Kelly","CTL80JIW9HN"), + (55,"odio.aliquam@outlook.ca","Aimee","Thaddeus","KPN21YZH4UM"), + (49,"ligula.aliquam@aol.org","Dexter","Ashton","AJL28TSW2GD"), + (45,"sodales.mauris@outlook.com","Ann","Latifah","XRY79PXS7XI"), + (2,"mauris.vestibulum@outlook.net","Madonna","Aspen","NTG77RSX0KK"), + (16,"sem.egestas.blandit@protonmail.couk","Jana","Reed","KFJ72FIK6AI"), + (15,"condimentum.donec.at@aol.net","Ursula","Graiden","IBI44ZSB6RQ"), + (8,"donec.est@protonmail.ca","Karina","Cassady","IUX33WWX4BQ"); +INSERT INTO `users` (`age`,`email`,`first_name`,`last_name`,`password`) +VALUES + (32,"adipiscing.elit@protonmail.com","Slade","Thor","WGU55MYA1ZB"), + (79,"erat.etiam@protonmail.ca","Guy","Rashad","CDY76BRY6BZ"), + (7,"ac.feugiat@yahoo.org","Amena","Alyssa","TIB81FZB5UC"), + (33,"nulla.interdum@outlook.com","Austin","Sylvester","EXM15GKH2BD"), + (64,"risus.quis.diam@icloud.couk","Walter","Noel","JTH23ZYQ2AP"), + (72,"amet.ante@google.ca","Chaney","Vera","DCG09NZR8PU"), + (69,"semper.erat@yahoo.com","Herrod","Grant","ANT48UYU7WW"), + (67,"posuere.enim@icloud.com","Miriam","Ria","RVQ64TUE3KS"), + (22,"ipsum.phasellus.vitae@aol.org","Malik","Dean","YZA76TJL2EN"), + (15,"turpis.aliquam@outlook.org","Felicia","Samson","YUY17YZX2GH");