From 0c1ef3ab4f352445df3c1ebf87fe9eac2f78df41 Mon Sep 17 00:00:00 2001 From: Vitaly Takmazov Date: Thu, 12 Jan 2017 14:59:11 +0300 Subject: tests refactoring --- .../src/test/java/com/juick/www/WebAppTests.java | 90 ++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 juick-www/src/test/java/com/juick/www/WebAppTests.java (limited to 'juick-www/src/test/java/com/juick/www/WebAppTests.java') diff --git a/juick-www/src/test/java/com/juick/www/WebAppTests.java b/juick-www/src/test/java/com/juick/www/WebAppTests.java new file mode 100644 index 00000000..b4fa14bb --- /dev/null +++ b/juick-www/src/test/java/com/juick/www/WebAppTests.java @@ -0,0 +1,90 @@ +package com.juick.www; + +import com.gargoylesoftware.htmlunit.WebClient; +import com.gargoylesoftware.htmlunit.html.HtmlPage; +import com.juick.Message; +import com.juick.User; +import com.juick.configuration.MockDataConfiguration; +import com.juick.service.MessagesService; +import com.juick.service.UserService; +import com.juick.tests.util.MockUtils; +import com.juick.www.configuration.WwwAppConfiguration; +import com.juick.www.configuration.WwwServletConfiguration; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.web.WebAppConfiguration; +import org.springframework.test.web.servlet.htmlunit.MockMvcWebClientBuilder; +import org.springframework.web.context.WebApplicationContext; + +import javax.inject.Inject; +import java.util.Collections; +import java.util.Optional; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.*; +import static org.mockito.Mockito.when; + +/** + * Created by vitalyster on 12.01.2017. + */ +@RunWith(SpringJUnit4ClassRunner.class) +@WebAppConfiguration +@ContextConfiguration +public class WebAppTests { + @Configuration + @Import(value = {WwwServletConfiguration.class, WwwAppConfiguration.class, MockDataConfiguration.class}) + static class Config {} + + @Inject + private WebApplicationContext wac; + @Inject + private WebApp webApp; + + private WebClient webClient; + + @Inject + UserService userService; + @Inject + MessagesService messagesService; + + @Before + public void setup() { + webClient = MockMvcWebClientBuilder.webAppContextSetup(this.wac).build(); + } + + @Test + public void postWithoutTagsShouldNotHaveAsteriskInTitle() throws Exception { + String ugnichName = "ugnich"; + String ugnichPassword = "MyPassw0rd!"; + String msgText = "Привет, я - Угнич"; + String hash = "12345678"; + + User user = MockUtils.mockUser(1, ugnichName, ugnichPassword); + Message msg = MockUtils.mockMessage(1, user, msgText); + + when(userService.getUIDbyName(ugnichName)) + .thenReturn(1); + when(userService.getUserByName(ugnichName)) + .thenReturn(user); + when(userService.getUserByUID(1)) + .thenReturn(Optional.of(user)); + when(userService.getFullyUserByName(ugnichName)) + .thenReturn(user); + when(messagesService.getMyFeed(1, 0)) + .thenReturn(Collections.singletonList(1)); + when(messagesService.getMessages(Collections.singletonList(1))) + .thenReturn(Collections.singletonList(msg)); + when(userService.getUIDbyHash(hash)) + .thenReturn(1); + when(messagesService.getMessageAuthor(1)).thenReturn(user); + when(messagesService.canViewThread(1, 0)).thenReturn(true); + when(messagesService.getMessage(1)).thenReturn(msg); + HtmlPage threadPage = webClient.getPage("http://localhost:8080/ugnich/1"); + assertThat(threadPage.getTitleText(), equalTo("ugnich:")); + } +} -- cgit v1.2.3