From 0fc825e11bcdd8042c217ad755705a4334b2ae60 Mon Sep 17 00:00:00 2001 From: BrittanyBi Date: Sun, 24 Mar 2019 15:37:39 -0600 Subject: [PATCH] PAN-54 Created user registration page. --- .../controller/UserCreationController.java | 40 ++++++++++++++++++ .../tsp/website/forms/UserCreationForm.java | 18 ++++++++ src/main/webapp/WEB-INF/jsp/User.jsp | 42 +++++++++++++++++++ .../UserCreationControllerTest.java | 23 ++++++++++ 4 files changed, 123 insertions(+) create mode 100644 src/main/java/edu/msudenver/tsp/website/controller/UserCreationController.java create mode 100644 src/main/java/edu/msudenver/tsp/website/forms/UserCreationForm.java create mode 100644 src/main/webapp/WEB-INF/jsp/User.jsp create mode 100644 src/test/java/edu/msudenver/tsp/website/controller/UserCreationControllerTest.java diff --git a/src/main/java/edu/msudenver/tsp/website/controller/UserCreationController.java b/src/main/java/edu/msudenver/tsp/website/controller/UserCreationController.java new file mode 100644 index 0000000..72ae070 --- /dev/null +++ b/src/main/java/edu/msudenver/tsp/website/controller/UserCreationController.java @@ -0,0 +1,40 @@ +package edu.msudenver.tsp.website.controller; + +import edu.msudenver.tsp.website.forms.UserCreationForm; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.servlet.ModelAndView; + +@Slf4j +@Controller +@AllArgsConstructor +@RequestMapping("/createuser") +public class UserCreationController { + @GetMapping({"/",""}) + public ModelAndView createUserPage() { + LOG.info("Received request to display the user creation page: returning model with name 'User'"); + return new ModelAndView("User"); + } + + @PostMapping({"/",""}) + public String registerUser(@Validated final UserCreationForm userCreationForm, final Model model) { + model.addAttribute("userID", userCreationForm.getUserID()); + model.addAttribute("username", userCreationForm.getUsername()); + model.addAttribute("password", userCreationForm.getPassword()); + model.addAttribute("emailAddress", userCreationForm.getEmailAddress()); + model.addAttribute("firstName", userCreationForm.getFirstName()); + model.addAttribute("lastName", userCreationForm.getLastName()); + model.addAttribute("referrer", userCreationForm.getReferrer()); + model.addAttribute("TnCAgreement", userCreationForm.isAgreedToTerms()); + + LOG.info("Saving user {}...", userCreationForm); + + return "success"; + } +} diff --git a/src/main/java/edu/msudenver/tsp/website/forms/UserCreationForm.java b/src/main/java/edu/msudenver/tsp/website/forms/UserCreationForm.java new file mode 100644 index 0000000..935b4f2 --- /dev/null +++ b/src/main/java/edu/msudenver/tsp/website/forms/UserCreationForm.java @@ -0,0 +1,18 @@ +package edu.msudenver.tsp.website.forms; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class UserCreationForm { + private int userID; + private String username; + private String password; + private String confirmPassword; + private String emailAddress; + private String firstName; + private String lastName; + private String referrer; // optional + private boolean agreedToTerms; +} diff --git a/src/main/webapp/WEB-INF/jsp/User.jsp b/src/main/webapp/WEB-INF/jsp/User.jsp new file mode 100644 index 0000000..8423dd9 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/User.jsp @@ -0,0 +1,42 @@ +<%@ page contentType="text/html; charset=UTF-8" + pageEncoding="UTF-8"%> + + + + + User Creation + + +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ + \ No newline at end of file diff --git a/src/test/java/edu/msudenver/tsp/website/controller/UserCreationControllerTest.java b/src/test/java/edu/msudenver/tsp/website/controller/UserCreationControllerTest.java new file mode 100644 index 0000000..4e78483 --- /dev/null +++ b/src/test/java/edu/msudenver/tsp/website/controller/UserCreationControllerTest.java @@ -0,0 +1,23 @@ +package edu.msudenver.tsp.website.controller; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.runners.MockitoJUnitRunner; +import org.springframework.web.servlet.ModelAndView; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +@RunWith(MockitoJUnitRunner.class) +public class UserCreationControllerTest { + + private final UserCreationController userCreationController = new UserCreationController(); + + @Test + public void testUserCreationPage() { + final ModelAndView modelAndView = userCreationController.createUserPage(); + + assertNotNull(modelAndView); + assertEquals("User", modelAndView.getViewName()); + } +} \ No newline at end of file