PlaceTextControllerSaveOrUpdateTest.java 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. /*
  2. * Copyright (c) Andrew Grant of Carrick Software 29/03/2025, 13:55. All rights reserved.
  3. *
  4. */
  5. package scot.carricksoftware.grants.controllers.text.placetext;
  6. import org.junit.jupiter.api.BeforeEach;
  7. import org.junit.jupiter.api.Test;
  8. import org.junit.jupiter.api.extension.ExtendWith;
  9. import org.mockito.Mock;
  10. import org.mockito.junit.jupiter.MockitoExtension;
  11. import org.springframework.ui.Model;
  12. import org.springframework.validation.BindingResult;
  13. import scot.carricksoftware.grants.commands.text.PlaceTextCommand;
  14. import scot.carricksoftware.grants.commands.text.PlaceTextCommandImpl;
  15. import scot.carricksoftware.grants.converters.text.placeText.PlaceTextCommandConverterImpl;
  16. import scot.carricksoftware.grants.converters.text.placeText.PlaceTextConverterImpl;
  17. import scot.carricksoftware.grants.services.places.places.PlaceService;
  18. import scot.carricksoftware.grants.services.text.placetext.PlaceTextService;
  19. import scot.carricksoftware.grants.validators.text.PlaceTextCommandValidator;
  20. import static org.junit.jupiter.api.Assertions.assertEquals;
  21. import static org.mockito.ArgumentMatchers.any;
  22. import static org.mockito.Mockito.when;
  23. @ExtendWith(MockitoExtension.class)
  24. public class PlaceTextControllerSaveOrUpdateTest {
  25. @SuppressWarnings("unused")
  26. private PlaceTextFormControllerImpl placeTextController;
  27. @Mock
  28. private PlaceTextService placeTextServiceMock;
  29. @Mock
  30. private PlaceTextCommandConverterImpl placeTextCommandConverterMock;
  31. @Mock
  32. private PlaceTextConverterImpl placeTextConverterMock;
  33. @Mock
  34. private Model modelMock;
  35. @Mock
  36. private BindingResult bindingResultMock;
  37. @Mock
  38. private PlaceTextCommandValidator placeTextCommandValidatorMock;
  39. @Mock
  40. private PlaceService placeServiceMock;
  41. private PlaceTextCommand placeTextCommand;
  42. @BeforeEach
  43. public void setUp() {
  44. placeTextController = new PlaceTextFormControllerImpl(placeTextServiceMock,
  45. placeTextCommandConverterMock,
  46. placeTextConverterMock,
  47. placeTextCommandValidatorMock,
  48. placeServiceMock);
  49. placeTextCommand = new PlaceTextCommandImpl();
  50. }
  51. @Test
  52. public void saveOrUpdateNoErrorsTest() {
  53. Long id = 4L;
  54. placeTextCommand.setId(id);
  55. when(placeTextServiceMock.savePlaceTextCommand(any(PlaceTextCommand.class))).thenReturn(placeTextCommand);
  56. assertEquals("redirect:/placeText/4/show", placeTextController.saveOrUpdate(placeTextCommand, bindingResultMock, modelMock));
  57. }
  58. @Test
  59. public void saveOrUpdateErrorsTest() {
  60. Long id = 4L;
  61. placeTextCommand.setId(id);
  62. when(bindingResultMock.hasErrors()).thenReturn(true);
  63. assertEquals("text/placeText/form", placeTextController.saveOrUpdate(placeTextCommand, bindingResultMock, modelMock));
  64. }
  65. }