From 02723131139806c761539a42a5fa80b68ecadee8 Mon Sep 17 00:00:00 2001 From: Vitaly Takmazov Date: Thu, 29 Jun 2017 14:03:04 +0300 Subject: project structure: split server into jdbc + web --- .../juick/configuration/MockDataConfiguration.java | 47 ++++++++++++++++ .../configuration/RepositoryConfiguration.java | 65 ++++++++++++++++++++++ .../java/com/juick/service/MessageServiceTest.java | 23 ++++++++ .../test/java/com/juick/tests/util/MockUtils.java | 34 +++++++++++ 4 files changed, 169 insertions(+) create mode 100644 juick-server-jdbc/src/test/java/com/juick/configuration/MockDataConfiguration.java create mode 100644 juick-server-jdbc/src/test/java/com/juick/configuration/RepositoryConfiguration.java create mode 100644 juick-server-jdbc/src/test/java/com/juick/service/MessageServiceTest.java create mode 100644 juick-server-jdbc/src/test/java/com/juick/tests/util/MockUtils.java (limited to 'juick-server-jdbc/src/test/java/com') diff --git a/juick-server-jdbc/src/test/java/com/juick/configuration/MockDataConfiguration.java b/juick-server-jdbc/src/test/java/com/juick/configuration/MockDataConfiguration.java new file mode 100644 index 00000000..bd2f3f50 --- /dev/null +++ b/juick-server-jdbc/src/test/java/com/juick/configuration/MockDataConfiguration.java @@ -0,0 +1,47 @@ +package com.juick.configuration; + +import com.juick.service.*; +import org.mockito.Mockito; +import org.springframework.context.annotation.Bean; + +/** + * Created by vitalyster on 12.01.2017. + */ +public class MockDataConfiguration { + @Bean + MessagesService messagesService() { + return Mockito.mock(MessagesService.class); + } + @Bean + UserService userService() { + return Mockito.mock(UserService.class); + } + @Bean + TagService tagService() { + return Mockito.mock(TagService.class); + } + @Bean + PushQueriesService pushQueriesService() { + return Mockito.mock(PushQueriesService.class); + } + @Bean + SubscriptionService subscriptionService() { + return Mockito.mock(SubscriptionService.class); + } + @Bean + PMQueriesService pmQueriesService() { + return Mockito.mock(PMQueriesService.class); + } + @Bean + TelegramService telegramService() { + return Mockito.mock(TelegramService.class); + } + @Bean + CrosspostService crosspostService() { + return Mockito.mock(CrosspostService.class); + } + @Bean + EmailService emailService() { + return Mockito.mock(EmailService.class); + } +} diff --git a/juick-server-jdbc/src/test/java/com/juick/configuration/RepositoryConfiguration.java b/juick-server-jdbc/src/test/java/com/juick/configuration/RepositoryConfiguration.java new file mode 100644 index 00000000..4a74349f --- /dev/null +++ b/juick-server-jdbc/src/test/java/com/juick/configuration/RepositoryConfiguration.java @@ -0,0 +1,65 @@ +package com.juick.configuration; + +import ch.vorburger.exec.ManagedProcessException; +import ch.vorburger.mariadb4j.DB; +import com.juick.service.search.SearchService; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.jdbc.datasource.DriverManagerDataSource; + +import java.util.Collections; +import java.util.List; + +/** + * Created by aalexeev on 11/25/16. + */ +@Configuration +@ComponentScan(basePackages = "com.juick.service") +public class RepositoryConfiguration { + + @Bean(destroyMethod = "stop") + DB db() throws ManagedProcessException { + DB db = DB.newEmbeddedDB(33306); + + db.start(); + db.createDB("juick"); + db.source("schema.sql"); + + return db; + } + + @Bean + public DriverManagerDataSource dataSource() { + DriverManagerDataSource dataSource = new DriverManagerDataSource(); + dataSource.setDriverClassName("net.sf.log4jdbc.DriverSpy"); + dataSource.setUrl("jdbc:log4jdbc:mysql://localhost:33306/juick?autoReconnect=true&user=root"); + + return dataSource; + } + + @Bean + public JdbcTemplate jdbcTemplate() { + return new JdbcTemplate(dataSource()); + } + + @Bean + public SearchService emptySearchService() { + return new SearchService() { + @Override + public void setMaxResult(int maxResult) { + } + + @Override + public List searchInAllMessages(String searchString, int messageIdBefore) { + return Collections.emptyList(); + } + + @Override + public List searchByStringAndUser(String searchString, int userId, int messageIdBefore) { + return Collections.emptyList(); + } + }; + } +} diff --git a/juick-server-jdbc/src/test/java/com/juick/service/MessageServiceTest.java b/juick-server-jdbc/src/test/java/com/juick/service/MessageServiceTest.java new file mode 100644 index 00000000..5f2c2b05 --- /dev/null +++ b/juick-server-jdbc/src/test/java/com/juick/service/MessageServiceTest.java @@ -0,0 +1,23 @@ +package com.juick.service; + +import com.juick.configuration.RepositoryConfiguration; +import org.junit.Test; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests; + +import javax.inject.Inject; + +/** + * Created by aalexeev on 11/25/16. + */ +@ContextConfiguration(classes = RepositoryConfiguration.class) +public class MessageServiceTest extends AbstractJUnit4SpringContextTests { + @Inject + private MessagesService messagesService; + + + @Test + public void getMyFeed() { + messagesService.getMyFeed(1, 1000000); + } +} diff --git a/juick-server-jdbc/src/test/java/com/juick/tests/util/MockUtils.java b/juick-server-jdbc/src/test/java/com/juick/tests/util/MockUtils.java new file mode 100644 index 00000000..5344dd23 --- /dev/null +++ b/juick-server-jdbc/src/test/java/com/juick/tests/util/MockUtils.java @@ -0,0 +1,34 @@ +package com.juick.tests.util; + +import com.juick.Message; +import com.juick.User; +import org.apache.commons.text.RandomStringGenerator; + +import java.util.Date; + +/** + * Created by vitalyster on 12.01.2017. + */ +public class MockUtils { + final static RandomStringGenerator generator = new RandomStringGenerator.Builder().withinRange('a', 'z').build(); + public static Message mockMessage(Integer mid, final User user, final String messageText) { + Message msg = new Message(); + + msg.setMid(mid); + msg.setUser(user); + msg.setText(messageText == null ? generator.generate(24) : messageText); + msg.setDate(new Date()); + return msg; + } + + public static User mockUser(final int uid, final String name, final String password) { + User user = new User(); + + user.setName(name); + user.setUid(uid); + user.setCredentials(password); + user.setBanned(false); + + return user; + } +} -- cgit v1.2.3