From 7249317ea4d21af66eca048ea926cc0b0f45f7d5 Mon Sep 17 00:00:00 2001 From: "N-SYSDES\\r-suzuki" Date: Tue, 31 Jul 2018 16:49:08 +0900 Subject: [PATCH] =?UTF-8?q?=E3=83=AD=E3=82=B0=E3=82=A4=E3=83=B3=E3=81=BE?= =?UTF-8?q?=E3=81=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 + .../petclinic/PetClinicApplication.java | 7 +- .../samples/petclinic/owner/Owner.java | 28 ++++++ .../petclinic/owner/OwnerController.java | 96 +++++++++++++++++-- .../petclinic/owner/OwnerRepository.java | 12 +++ .../petclinic/system/WelcomeController.java | 18 +++- .../petclinic/visit/VisitRepository.java | 5 + src/main/resources/db/hsqldb/data.sql | 20 ++-- src/main/resources/db/hsqldb/schema.sql | 4 +- .../resources/messages/messages.properties | 1 + .../templates/fragments/inputField.html | 2 + .../resources/templates/fragments/layout.html | 4 +- src/main/resources/templates/login.html | 20 ++++ .../owners/createOrUpdateOwnerForm.html | 7 +- .../templates/owners/findOwners.html | 2 +- src/main/resources/templates/welcome.html | 5 +- .../petclinic/model/ValidatorTests.java | 92 +++++++++++++++++- .../petclinic/owner/OwnerControllerTests.java | 37 ++++--- 18 files changed, 318 insertions(+), 44 deletions(-) create mode 100644 src/main/resources/templates/login.html diff --git a/pom.xml b/pom.xml index 793e39e1a..2e7a6bd14 100644 --- a/pom.xml +++ b/pom.xml @@ -108,6 +108,8 @@ spring-boot-devtools true + + diff --git a/src/main/java/org/springframework/samples/petclinic/PetClinicApplication.java b/src/main/java/org/springframework/samples/petclinic/PetClinicApplication.java index 83b118095..178b456fd 100644 --- a/src/main/java/org/springframework/samples/petclinic/PetClinicApplication.java +++ b/src/main/java/org/springframework/samples/petclinic/PetClinicApplication.java @@ -16,8 +16,11 @@ package org.springframework.samples.petclinic; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.Bean; /** * PetClinic Spring Boot Application. @@ -26,10 +29,12 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; * */ @SpringBootApplication -public class PetClinicApplication { +public class PetClinicApplication{ + public static void main(String[] args) { SpringApplication.run(PetClinicApplication.class, args); } + } diff --git a/src/main/java/org/springframework/samples/petclinic/owner/Owner.java b/src/main/java/org/springframework/samples/petclinic/owner/Owner.java index 89aad2c2c..57e160e2f 100644 --- a/src/main/java/org/springframework/samples/petclinic/owner/Owner.java +++ b/src/main/java/org/springframework/samples/petclinic/owner/Owner.java @@ -28,6 +28,8 @@ import javax.persistence.OneToMany; import javax.persistence.Table; import javax.validation.constraints.Digits; import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.Pattern; +import javax.validation.constraints.Size; import org.springframework.beans.support.MutableSortDefinition; import org.springframework.beans.support.PropertyComparator; @@ -58,6 +60,16 @@ public class Owner extends Person { @Digits(fraction = 0, integer = 10) private String telephone; + @Column(name = "email") + @NotEmpty + private String email; + + @Column(name = "password") + @NotEmpty + @Size(min=8) + @Pattern(regexp = "^[a-zA-Z0-9]+$") + private String password; + @OneToMany(cascade = CascadeType.ALL, mappedBy = "owner") private Set pets; @@ -85,6 +97,22 @@ public class Owner extends Person { this.telephone = telephone; } + public String getEmail() { + return this.email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPassword() { + return this.password; + } + + public void setPassword(String password) { + this.password = password; + } + protected Set getPetsInternal() { if (this.pets == null) { this.pets = new HashSet<>(); diff --git a/src/main/java/org/springframework/samples/petclinic/owner/OwnerController.java b/src/main/java/org/springframework/samples/petclinic/owner/OwnerController.java index 5d11bff4c..fd9ef492b 100644 --- a/src/main/java/org/springframework/samples/petclinic/owner/OwnerController.java +++ b/src/main/java/org/springframework/samples/petclinic/owner/OwnerController.java @@ -15,6 +15,10 @@ */ package org.springframework.samples.petclinic.owner; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.CommandLineRunner; +import org.springframework.context.annotation.Bean; +import org.springframework.samples.petclinic.PetClinicApplication; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.validation.BindingResult; @@ -25,7 +29,12 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.servlet.ModelAndView; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; import javax.validation.Valid; + +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; import java.util.Collection; import java.util.Map; @@ -36,16 +45,22 @@ import java.util.Map; * @author Michael Isvy */ @Controller -class OwnerController { +class OwnerController{ + @Autowired + HttpSession session; - private static final String VIEWS_OWNER_CREATE_OR_UPDATE_FORM = "owners/createOrUpdateOwnerForm"; + @Autowired + HttpServletRequest request; + + private static final String VIEWS_OWNER_CREATE_OR_UPDATE_FORM = "owners/createOrUpdateOwnerForm"; private final OwnerRepository owners; - - + + public OwnerController(OwnerRepository clinicService) { this.owners = clinicService; } + @InitBinder public void setAllowedFields(WebDataBinder dataBinder) { dataBinder.setDisallowedFields("id"); @@ -60,17 +75,25 @@ class OwnerController { @PostMapping("/owners/new") public String processCreationForm(@Valid Owner owner, BindingResult result) { - if (result.hasErrors()) { + + if (result.hasErrors()) { return VIEWS_OWNER_CREATE_OR_UPDATE_FORM; } else { - this.owners.save(owner); + String s=toEncryptedHashValue("SHA-512",owner.getPassword()); + owner.setPassword(s); + this.owners.save(owner); return "redirect:/owners/" + owner.getId(); } } - @GetMapping("/owners/find") - public String initFindForm(Map model) { + + @GetMapping("/owners/find") + public String initFindForm(Map model,Model model2) { model.put("owner", new Owner()); + boolean s=(boolean)session.getAttribute("flag"); + if (s) { + model2.addAttribute("flag",true); + } return "owners/findOwners"; } @@ -108,7 +131,7 @@ class OwnerController { @PostMapping("/owners/{ownerId}/edit") public String processUpdateOwnerForm(@Valid Owner owner, BindingResult result, @PathVariable("ownerId") int ownerId) { - if (result.hasErrors()) { + if (result.hasErrors()) { return VIEWS_OWNER_CREATE_OR_UPDATE_FORM; } else { owner.setId(ownerId); @@ -129,5 +152,60 @@ class OwnerController { mav.addObject(this.owners.findById(ownerId)); return mav; } + + @GetMapping("/login") + public String login(Owner owner,Map model) { + return "login"; + } + + @PostMapping("/loginh") + public String loginh(@Valid Owner owner, BindingResult result, Map model,Model model2) { + if (owner.getPassword()!=null) { + String s=toEncryptedHashValue("SHA-512",owner.getPassword()); + owner.setPassword(s); + Owner results1 = this.owners.findByEmailAndPass(owner.getEmail(),owner.getPassword()); + if (results1!=null) { + model2.addAttribute("flag",true); + model2.addAttribute("loginName",results1.getLastName()+" Welcome"); + session.setAttribute("flag", true); + return "welcome"; + } + } + + + Owner results2 = this.owners.findByOrEmail(owner.getEmail()); + Collection results3 = this.owners.findByOrPass(owner.getPassword()); + if (results2==null && results3.isEmpty()) { + result.rejectValue("email", "notFound", "not found"); + result.rejectValue("password", "notFound", "not found"); + return "login"; + }else if (results2==null){ + result.rejectValue("email", "notFound", "not found"); + return "login"; + }else if (results3.isEmpty()){ + result.rejectValue("password", "notFound", "not found"); + return "login"; + } + + return "login"; + + } + + private String toEncryptedHashValue(String algorithmName, String value) { + MessageDigest md = null; + StringBuilder sb = null; + try { + md = MessageDigest.getInstance(algorithmName); + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + md.update(value.getBytes()); + sb = new StringBuilder(); + for (byte b : md.digest()) { + String hex = String.format("%02x", b); + sb.append(hex); + } + return sb.toString(); + } } diff --git a/src/main/java/org/springframework/samples/petclinic/owner/OwnerRepository.java b/src/main/java/org/springframework/samples/petclinic/owner/OwnerRepository.java index 068f5245d..4f79ad741 100644 --- a/src/main/java/org/springframework/samples/petclinic/owner/OwnerRepository.java +++ b/src/main/java/org/springframework/samples/petclinic/owner/OwnerRepository.java @@ -53,6 +53,18 @@ public interface OwnerRepository extends Repository { @Transactional(readOnly = true) Owner findById(@Param("id") Integer id); + @Query("SELECT owner FROM Owner owner WHERE owner.email =:email AND owner.password = :password") + @Transactional(readOnly = true) + Owner findByEmailAndPass(@Param("email") String email,@Param("password") String password); + + @Query("SELECT owner FROM Owner owner WHERE owner.email =:email") + @Transactional(readOnly = true) + Owner findByOrEmail(@Param("email") String email); + + @Query("SELECT owner FROM Owner owner WHERE owner.password =:password") + @Transactional(readOnly = true) + Collection findByOrPass(@Param("password") String password); + /** * Save an {@link Owner} to the data store, either inserting or updating it. * @param owner the {@link Owner} to save diff --git a/src/main/java/org/springframework/samples/petclinic/system/WelcomeController.java b/src/main/java/org/springframework/samples/petclinic/system/WelcomeController.java index 00430a790..ad6ab1a9d 100644 --- a/src/main/java/org/springframework/samples/petclinic/system/WelcomeController.java +++ b/src/main/java/org/springframework/samples/petclinic/system/WelcomeController.java @@ -1,14 +1,30 @@ package org.springframework.samples.petclinic.system; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; + +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; @Controller class WelcomeController { + @Autowired + HttpSession session; + @Autowired + HttpServletRequest request; + @GetMapping("/") - public String welcome() { + public String welcome(Model model) { + + session.setAttribute("flag", false); + + model.addAttribute("flag",false); return "welcome"; } + + } diff --git a/src/main/java/org/springframework/samples/petclinic/visit/VisitRepository.java b/src/main/java/org/springframework/samples/petclinic/visit/VisitRepository.java index c7853d170..ecbfcd25f 100644 --- a/src/main/java/org/springframework/samples/petclinic/visit/VisitRepository.java +++ b/src/main/java/org/springframework/samples/petclinic/visit/VisitRepository.java @@ -18,8 +18,10 @@ package org.springframework.samples.petclinic.visit; import java.util.List; import org.springframework.dao.DataAccessException; +import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.Repository; import org.springframework.samples.petclinic.model.BaseEntity; +import org.springframework.transaction.annotation.Transactional; /** * Repository class for Visit domain objects All method names are compliant with Spring Data naming @@ -41,5 +43,8 @@ public interface VisitRepository extends Repository { void save(Visit visit) throws DataAccessException; List findByPetId(Integer petId); + + + } diff --git a/src/main/resources/db/hsqldb/data.sql b/src/main/resources/db/hsqldb/data.sql index 16dda3e84..3e227c0c8 100644 --- a/src/main/resources/db/hsqldb/data.sql +++ b/src/main/resources/db/hsqldb/data.sql @@ -22,16 +22,16 @@ INSERT INTO types VALUES (4, 'snake'); INSERT INTO types VALUES (5, 'bird'); INSERT INTO types VALUES (6, 'hamster'); -INSERT INTO owners VALUES (1, 'George', 'Franklin', '110 W. Liberty St.', 'Madison', '6085551023'); -INSERT INTO owners VALUES (2, 'Betty', 'Davis', '638 Cardinal Ave.', 'Sun Prairie', '6085551749'); -INSERT INTO owners VALUES (3, 'Eduardo', 'Rodriquez', '2693 Commerce St.', 'McFarland', '6085558763'); -INSERT INTO owners VALUES (4, 'Harold', 'Davis', '563 Friendly St.', 'Windsor', '6085553198'); -INSERT INTO owners VALUES (5, 'Peter', 'McTavish', '2387 S. Fair Way', 'Madison', '6085552765'); -INSERT INTO owners VALUES (6, 'Jean', 'Coleman', '105 N. Lake St.', 'Monona', '6085552654'); -INSERT INTO owners VALUES (7, 'Jeff', 'Black', '1450 Oak Blvd.', 'Monona', '6085555387'); -INSERT INTO owners VALUES (8, 'Maria', 'Escobito', '345 Maple St.', 'Madison', '6085557683'); -INSERT INTO owners VALUES (9, 'David', 'Schroeder', '2749 Blackhawk Trail', 'Madison', '6085559435'); -INSERT INTO owners VALUES (10, 'Carlos', 'Estaban', '2335 Independence La.', 'Waunakee', '6085555487'); +INSERT INTO owners VALUES (1, 'George', 'Franklin', '110 W. Liberty St.', 'Madison', '6085551023','a@a','1'); +INSERT INTO owners VALUES (2, 'Betty', 'Davis', '638 Cardinal Ave.', 'Sun Prairie', '6085551749','b@b','1'); +INSERT INTO owners VALUES (3, 'Eduardo', 'Rodriquez', '2693 Commerce St.', 'McFarland', '6085558763','c@c','1'); +INSERT INTO owners VALUES (4, 'Harold', 'Davis', '563 Friendly St.', 'Windsor', '6085553198','d@d','1'); +INSERT INTO owners VALUES (5, 'Peter', 'McTavish', '2387 S. Fair Way', 'Madison', '6085552765','e@e','1'); +INSERT INTO owners VALUES (6, 'Jean', 'Coleman', '105 N. Lake St.', 'Monona', '6085552654','f@f','1'); +INSERT INTO owners VALUES (7, 'Jeff', 'Black', '1450 Oak Blvd.', 'Monona', '6085555387','g@g','1'); +INSERT INTO owners VALUES (8, 'Maria', 'Escobito', '345 Maple St.', 'Madison', '6085557683','h@h','1'); +INSERT INTO owners VALUES (9, 'David', 'Schroeder', '2749 Blackhawk Trail', 'Madison', '6085559435','i@i','1'); +INSERT INTO owners VALUES (10, 'Carlos', 'Estaban', '2335 Independence La.', 'Waunakee', '6085555487','b@q.co.jp','4cb4e68337be40453bb04acf2fd2533c6c3d4d2a9ef3274bfc6fb2c56f06046fae449803654d362118633176f261f1c1d903f387ece406ccf7ec53262e0d04f0'); INSERT INTO pets VALUES (1, 'Leo', '2010-09-07', 1, 1); INSERT INTO pets VALUES (2, 'Basil', '2012-08-06', 6, 2); diff --git a/src/main/resources/db/hsqldb/schema.sql b/src/main/resources/db/hsqldb/schema.sql index f3c6947b7..93e792320 100644 --- a/src/main/resources/db/hsqldb/schema.sql +++ b/src/main/resources/db/hsqldb/schema.sql @@ -39,7 +39,9 @@ CREATE TABLE owners ( last_name VARCHAR_IGNORECASE(30), address VARCHAR(255), city VARCHAR(80), - telephone VARCHAR(20) + telephone VARCHAR(20), + email VARCHAR(255), + password VARCHAR(255) ); CREATE INDEX owners_last_name ON owners (last_name); diff --git a/src/main/resources/messages/messages.properties b/src/main/resources/messages/messages.properties index 173417a10..ad531a7cd 100644 --- a/src/main/resources/messages/messages.properties +++ b/src/main/resources/messages/messages.properties @@ -6,3 +6,4 @@ nonNumeric=must be all numeric duplicateFormSubmission=Duplicate form submission is not allowed typeMismatch.date=invalid date typeMismatch.birthDate=invalid date +login.error=has not been found diff --git a/src/main/resources/templates/fragments/inputField.html b/src/main/resources/templates/fragments/inputField.html index c3373bea0..155596b64 100644 --- a/src/main/resources/templates/fragments/inputField.html +++ b/src/main/resources/templates/fragments/inputField.html @@ -9,6 +9,8 @@
+ + diff --git a/src/main/resources/templates/fragments/layout.html b/src/main/resources/templates/fragments/layout.html index 7cb5f4697..f92ef38e8 100755 --- a/src/main/resources/templates/fragments/layout.html +++ b/src/main/resources/templates/fragments/layout.html @@ -59,9 +59,9 @@ Veterinarians -
  • +
  • - Error + Login
  • diff --git a/src/main/resources/templates/login.html b/src/main/resources/templates/login.html new file mode 100644 index 000000000..2b0854709 --- /dev/null +++ b/src/main/resources/templates/login.html @@ -0,0 +1,20 @@ + + + +

    Login

    +
    +
    + + +
    +
    + +
    + +
    + + + \ No newline at end of file diff --git a/src/main/resources/templates/owners/createOrUpdateOwnerForm.html b/src/main/resources/templates/owners/createOrUpdateOwnerForm.html index ca22d9de1..375550599 100644 --- a/src/main/resources/templates/owners/createOrUpdateOwnerForm.html +++ b/src/main/resources/templates/owners/createOrUpdateOwnerForm.html @@ -16,12 +16,17 @@ th:replace="~{fragments/inputField :: input ('City', 'city', 'text')}" /> + + +
    diff --git a/src/main/resources/templates/owners/findOwners.html b/src/main/resources/templates/owners/findOwners.html index 982be5e81..e080e9102 100644 --- a/src/main/resources/templates/owners/findOwners.html +++ b/src/main/resources/templates/owners/findOwners.html @@ -21,7 +21,7 @@
    -
    diff --git a/src/main/resources/templates/welcome.html b/src/main/resources/templates/welcome.html index 6b4ff0480..e3d80dc74 100644 --- a/src/main/resources/templates/welcome.html +++ b/src/main/resources/templates/welcome.html @@ -3,8 +3,9 @@ - -

    Welcome

    +

    +

    Welcome

    +
    diff --git a/src/test/java/org/springframework/samples/petclinic/model/ValidatorTests.java b/src/test/java/org/springframework/samples/petclinic/model/ValidatorTests.java index 7da0d3dea..b86c29e93 100644 --- a/src/test/java/org/springframework/samples/petclinic/model/ValidatorTests.java +++ b/src/test/java/org/springframework/samples/petclinic/model/ValidatorTests.java @@ -9,6 +9,7 @@ import javax.validation.Validator; import org.junit.Test; import org.springframework.context.i18n.LocaleContextHolder; +import org.springframework.samples.petclinic.owner.Owner; import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean; import static org.assertj.core.api.Assertions.assertThat; @@ -25,13 +26,13 @@ public class ValidatorTests { return localValidatorFactoryBean; } - @Test + @Test //fistnameが空白の時 public void shouldNotValidateWhenFirstNameEmpty() { LocaleContextHolder.setLocale(Locale.ENGLISH); Person person = new Person(); person.setFirstName(""); - person.setLastName("smith"); + person.setLastName("ああ"); Validator validator = createValidator(); Set> constraintViolations = validator @@ -42,5 +43,92 @@ public class ValidatorTests { assertThat(violation.getPropertyPath().toString()).isEqualTo("firstName"); assertThat(violation.getMessage()).isEqualTo("must not be empty"); } + + @Test //lastnameが空白の時 + public void shouldNotValidateWhenLastNameEmpty() { + LocaleContextHolder.setLocale(Locale.ENGLISH); + Person person = new Person(); + person.setFirstName("aa"); + person.setLastName(""); + + Validator validator = createValidator(); + Set> constraintViolations = validator + .validate(person); + + assertThat(constraintViolations.size()).isEqualTo(1); + ConstraintViolation violation = constraintViolations.iterator().next(); + assertThat(violation.getPropertyPath().toString()).isEqualTo("lastName"); + assertThat(violation.getMessage()).isEqualTo("must not be empty"); + } + + @Test //addressが空白の時 + public void shouldNotValidateWhenAddressEmpty() { + + LocaleContextHolder.setLocale(Locale.ENGLISH); + + Owner owner = new Owner(); + owner.setFirstName("aa"); + owner.setLastName("aa"); + owner.setAddress(""); + owner.setCity("sss"); + owner.setTelephone("1988"); + + Validator validator = createValidator(); + Set> constraintViolations = validator + .validate(owner); + + + assertThat(constraintViolations.size()).isEqualTo(1); + ConstraintViolation violation = constraintViolations.iterator().next(); + assertThat(violation.getPropertyPath().toString()).isEqualTo("address"); + assertThat(violation.getMessage()).isEqualTo("must not be empty"); + } + + @Test //cityが空白の時 + public void shouldNotValidateWhenCityEmpty() { + + LocaleContextHolder.setLocale(Locale.ENGLISH); + + Owner owner = new Owner(); + owner.setFirstName("aa"); + owner.setLastName("aa"); + owner.setAddress("aaa"); + owner.setCity(""); + owner.setTelephone("1988"); + + Validator validator = createValidator(); + Set> constraintViolations = validator + .validate(owner); + + + assertThat(constraintViolations.size()).isEqualTo(1); + ConstraintViolation violation = constraintViolations.iterator().next(); + assertThat(violation.getPropertyPath().toString()).isEqualTo("city"); + assertThat(violation.getMessage()).isEqualTo("must not be empty"); + } + + @Test //telephoneが空白の時 + public void shouldNotValidateWhenTelephoneEmpty() { + + LocaleContextHolder.setLocale(Locale.ENGLISH); + + Owner owner = new Owner(); + owner.setFirstName("aa"); + owner.setLastName("aa"); + owner.setAddress("aaa"); + owner.setCity("sss"); + owner.setTelephone(""); + + Validator validator = createValidator(); + Set> constraintViolations = validator + .validate(owner); + + + //assertThat(constraintViolations.size()).isEqualTo(1); + ConstraintViolation violation = constraintViolations.iterator().next(); + assertThat(violation.getPropertyPath().toString()).isEqualTo("telephone"); + assertThat(violation.getMessage()).isEqualTo("must not be empty"); + } + } diff --git a/src/test/java/org/springframework/samples/petclinic/owner/OwnerControllerTests.java b/src/test/java/org/springframework/samples/petclinic/owner/OwnerControllerTests.java index 7fccb3b04..274478b73 100644 --- a/src/test/java/org/springframework/samples/petclinic/owner/OwnerControllerTests.java +++ b/src/test/java/org/springframework/samples/petclinic/owner/OwnerControllerTests.java @@ -61,14 +61,14 @@ public class OwnerControllerTests { .andExpect(view().name("owners/createOrUpdateOwnerForm")); } - @Test + @Test//日本語入力 public void testProcessCreationFormSuccess() throws Exception { mockMvc.perform(post("/owners/new") - .param("firstName", "Joe") - .param("lastName", "Bloggs") + .param("firstName", "佐藤") + .param("lastName", "山田") .param("address", "123 Caramel Street") - .param("city", "London") - .param("telephone", "01316761638") + .param("city", "アプリケーション") + .param("telephone", "0") ) .andExpect(status().is3xxRedirection()); } @@ -76,9 +76,9 @@ public class OwnerControllerTests { @Test public void testProcessCreationFormHasErrors() throws Exception { mockMvc.perform(post("/owners/new") - .param("firstName", "Joe") - .param("lastName", "Bloggs") - .param("city", "London") + .param("firstName", "山田") + .param("lastName", "鈴木") + .param("city", "佐藤") ) .andExpect(status().isOk()) .andExpect(model().attributeHasErrors("owner")) @@ -103,7 +103,7 @@ public class OwnerControllerTests { .andExpect(view().name("owners/ownersList")); } - @Test + @Test///オーナー参照 public void testProcessFindFormByLastName() throws Exception { given(this.owners.findByLastName(george.getLastName())).willReturn(Lists.newArrayList(george)); mockMvc.perform(get("/owners") @@ -124,15 +124,15 @@ public class OwnerControllerTests { .andExpect(view().name("owners/findOwners")); } - @Test + @Test//日本語での更新テスト public void testInitUpdateOwnerForm() throws Exception { mockMvc.perform(get("/owners/{ownerId}/edit", TEST_OWNER_ID)) .andExpect(status().isOk()) .andExpect(model().attributeExists("owner")) - .andExpect(model().attribute("owner", hasProperty("lastName", is("Franklin")))) - .andExpect(model().attribute("owner", hasProperty("firstName", is("George")))) - .andExpect(model().attribute("owner", hasProperty("address", is("110 W. Liberty St.")))) - .andExpect(model().attribute("owner", hasProperty("city", is("Madison")))) + .andExpect(model().attribute("owner", hasProperty("lastName", is("ららら")))) + .andExpect(model().attribute("owner", hasProperty("firstName", is("ららららららラストネーム")))) + .andExpect(model().attribute("owner", hasProperty("address", is("いんと")))) + .andExpect(model().attribute("owner", hasProperty("city", is("大都会岡山")))) .andExpect(model().attribute("owner", hasProperty("telephone", is("6085551023")))) .andExpect(view().name("owners/createOrUpdateOwnerForm")); } @@ -175,5 +175,14 @@ public class OwnerControllerTests { .andExpect(model().attribute("owner", hasProperty("telephone", is("6085551023")))) .andExpect(view().name("owners/ownerDetails")); } + + @Test + public void testlogin() throws Exception { + mockMvc.perform(get("/loginh")) + .andExpect(status().isOk()) + .andExpect(model().attribute("owner", hasProperty("email", is("b@q.co.jp")))) + .andExpect(model().attribute("owner", hasProperty("password", is("4cb4e68337be40453bb04acf2fd2533c6c3d4d2a9ef3274bfc6fb2c56f06046fae449803654d362118633176f261f1c1d903f387ece406ccf7ec53262e0d04f0")))) + .andExpect(view().name("welcome")); + } }