模块化拆分

This commit is contained in:
禾几海
2021-10-01 15:43:54 +08:00
parent 7e700b6499
commit ef2f98e45f
25 changed files with 132 additions and 44 deletions

View File

@@ -1,11 +1,11 @@
package cn.celess.article;
import cn.celess.common.test.RedisServerMock;
import cn.celess.common.test.BaseRedisTest;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@SpringBootTest(classes = {ArticleApplication.class})
@RunWith(SpringRunner.class)
public abstract class ArticleBaseTest extends RedisServerMock {
public abstract class ArticleBaseTest extends BaseRedisTest {
}

View File

@@ -2,8 +2,15 @@ package cn.celess.common;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.FilterType;
@SpringBootApplication
@SpringBootApplication(
scanBasePackageClasses = {
CommonApplication.class
}
)
@ComponentScan(excludeFilters = {@ComponentScan.Filter(type = FilterType.REGEX, pattern = "cn.celess.common.test.BaseRedisTest")})
public class CommonApplication {
public static void main(String[] args) {
SpringApplication.run(CommonApplication.class, args);

View File

@@ -1,5 +1,7 @@
package cn.celess.common.test;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Configuration;
import redis.embedded.RedisServer;
import javax.annotation.PostConstruct;
@@ -10,7 +12,9 @@ import java.io.IOException;
* @author : xiaohai
* @date : 2020/08/14 16:20
*/
public class RedisServerMock extends BaseTest {
@Configuration
@Slf4j
public class BaseRedisTest extends BaseTest {
private static RedisServer redisServer;
@PostConstruct
@@ -19,14 +23,19 @@ public class RedisServerMock extends BaseTest {
if (redisServer == null) {
redisServer = new RedisServer(6380);
redisServer.start();
log.info("start Redis success");
}
} catch (IOException e) {
log.error("start Redis failed");
e.printStackTrace();
}
}
@PreDestroy
@PreDestroy()
public static void stopRedis() {
if (redisServer.isActive()) redisServer.stop();
if (redisServer.isActive()) {
redisServer.stop();
log.info("stop Redis success");
}
}
}

View File

@@ -15,10 +15,14 @@ import java.io.IOException;
* @Desc:
*/
public class HttpUtil {
/**
* FIXME
* 获取http请求的响应
*
* @param url url链接
* @return 请求的响应
*/
public static String get(String urlStr) {
public static String getHttpResponse(String url) {
try (final WebClient webClient = new WebClient(BrowserVersion.CHROME)) {
webClient.getOptions().setCssEnabled(false);
webClient.getOptions().setJavaScriptEnabled(false);
@@ -27,18 +31,18 @@ public class HttpUtil {
webClient.getOptions().setDownloadImages(false);
webClient.getOptions().setActiveXNative(false);
webClient.setAjaxController(new NicelyResynchronizingAjaxController());
Page clientPage = webClient.getPage(urlStr);
if (clientPage.isHtmlPage()) {
return clientPage.toString();
}
return null;
Page clientPage = webClient.getPage(url);
return clientPage.getWebResponse().getContentAsString();
} catch (IOException e) {
return null;
}
}
/**
* FIXME
* 获取渲染后的网页数据
*
* @param url url链接
* @return 经js渲染后的网页源代码
*/
public static String getAfterRendering(String url) {
try (final WebClient webClient = new WebClient(BrowserVersion.BEST_SUPPORTED)) {

View File

@@ -1,7 +1,6 @@
package cn.celess.common.util;
import cn.celess.common.CommonBaseTest;
import org.junit.Ignore;
import org.junit.Test;
import static org.junit.Assert.assertNotNull;
@@ -9,9 +8,8 @@ import static org.junit.Assert.assertNotNull;
public class HttpUtilTest extends CommonBaseTest {
@Test
@Ignore
public void get() {
String s = HttpUtil.get("https://api.celess.cn/headerInfo");
String s = HttpUtil.getHttpResponse("https://api.celess.cn/headerInfo");
assertNotNull(s);
// Response<Map<String, Object>> response = getResponse(s, MAP_OBJECT_TYPE);
// assertEquals(ResponseEnum.SUCCESS.getCode(), response.getCode());

View File

@@ -1,9 +1,10 @@
package cn.celess.extension;
import cn.celess.common.CommonApplication;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@SpringBootApplication(scanBasePackageClasses = {ExtensionApplication.class, CommonApplication.class})
public class ExtensionApplication {
public static void main(String[] args) {
SpringApplication.run(ExtensionApplication.class, args);

View File

@@ -22,6 +22,7 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -45,7 +46,7 @@ public class ExtensionController {
QiniuService qiniuService;
@Autowired
RedisUtil redisUtil;
@Autowired
@Resource
RedisUserUtil redisUserUtil;
@@ -179,7 +180,7 @@ public class ExtensionController {
ObjectMapper mapper = new ObjectMapper();
JsonNode root;
try {
root = mapper.readTree(HttpUtil.get("https://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=zh-CN"));
root = mapper.readTree(HttpUtil.getHttpResponse("https://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=zh-CN"));
} catch (IOException e) {
return Response.failure(null);
}

View File

@@ -17,6 +17,11 @@
<artifactId>blog-common</artifactId>
<version>${blog-common.version}</version>
</dependency>
<dependency>
<groupId>cn.celess</groupId>
<artifactId>blog-user</artifactId>
<version>${blog-user.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>

View File

@@ -1,9 +1,11 @@
package cn.celess.partnersite;
import cn.celess.common.CommonApplication;
import cn.celess.user.UserApplication;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@SpringBootApplication(scanBasePackageClasses = {PartnerSiteApplication.class, CommonApplication.class, UserApplication.class})
public class PartnerSiteApplication {
public static void main(String[] args) {
SpringApplication.run(PartnerSiteApplication.class, args);

View File

@@ -0,0 +1,11 @@
package cn.celess.partnersite;
import cn.celess.common.test.BaseRedisTest;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@SpringBootTest(classes = PartnerSiteApplication.class)
@RunWith(SpringRunner.class)
public abstract class PartnerSiteBaseTest extends BaseRedisTest {
}

View File

@@ -9,7 +9,7 @@ import cn.celess.common.entity.vo.PageData;
import cn.celess.common.exception.MyException;
import cn.celess.common.mapper.PartnerMapper;
import cn.celess.common.service.PartnerSiteService;
import cn.celess.common.test.BaseTest;
import cn.celess.partnersite.PartnerSiteBaseTest;
import com.fasterxml.jackson.core.type.TypeReference;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
@@ -22,7 +22,7 @@ import static org.junit.Assert.*;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
@Slf4j
public class PartnerSiteControllerTest extends BaseTest {
public class PartnerSiteControllerTest extends PartnerSiteBaseTest {
@Autowired
PartnerMapper mapper;

View File

@@ -3,7 +3,7 @@ package cn.celess.partnersite.serviceimpl;
import cn.celess.common.entity.PartnerSite;
import cn.celess.common.entity.vo.PageData;
import cn.celess.common.service.PartnerSiteService;
import cn.celess.common.test.BaseTest;
import cn.celess.partnersite.PartnerSiteBaseTest;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
@@ -12,7 +12,7 @@ import java.util.List;
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertTrue;
public class PartnerSiteServiceTest extends BaseTest {
public class PartnerSiteServiceTest extends PartnerSiteBaseTest {
@Autowired
PartnerSiteService partnerSiteService;

View File

@@ -18,6 +18,12 @@
<version>${blog-common.version}</version>
</dependency>
<dependency>
<groupId>cn.celess</groupId>
<artifactId>blog-user</artifactId>
<version>${blog-user.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>

View File

@@ -1,9 +1,11 @@
package cn.celess.siteinfo;
import cn.celess.common.CommonApplication;
import cn.celess.user.UserApplication;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@SpringBootApplication(scanBasePackageClasses = {SiteInfoApplication.class, CommonApplication.class, UserApplication.class})
public class SiteInfoApplication {
public static void main(String[] args) {
SpringApplication.run(SiteInfoApplication.class, args);

View File

@@ -90,7 +90,7 @@ public class WebUpdateInfoServiceImpl implements WebUpdateInfoService {
map.put("lastUpdateInfo", webUpdateInfoMapper.getLastestOne().getUpdateInfo());
try {
ObjectMapper mapper = new ObjectMapper();
String respStr = HttpUtil.get("https://api.github.com/repos/xiaohai2271/blog-frontEnd/commits?page=1&per_page=1");
String respStr = HttpUtil.getHttpResponse("https://api.github.com/repos/xiaohai2271/blog-frontEnd/commits?page=1&per_page=1");
if (!StringUtils.isEmpty(respStr)) {
JsonNode root = mapper.readTree(respStr);
Iterator<JsonNode> elements = root.elements();

View File

@@ -0,0 +1,11 @@
package cn.celess.siteinfo;
import cn.celess.common.test.BaseTest;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@SpringBootTest(classes = SiteInfoApplication.class)
@RunWith(SpringRunner.class)
public abstract class SiteInfoBaseTest extends BaseTest {
}

View File

@@ -5,10 +5,9 @@ import cn.celess.common.entity.WebUpdate;
import cn.celess.common.entity.vo.PageData;
import cn.celess.common.entity.vo.WebUpdateModel;
import cn.celess.common.mapper.WebUpdateInfoMapper;
import cn.celess.common.test.BaseTest;
import cn.celess.siteinfo.SiteInfoBaseTest;
import com.fasterxml.jackson.core.type.TypeReference;
import lombok.extern.slf4j.Slf4j;
import org.junit.Ignore;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
@@ -21,7 +20,7 @@ import static org.junit.Assert.*;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
@Slf4j
public class WebUpdateInfoControllerTest extends BaseTest {
public class WebUpdateInfoControllerTest extends SiteInfoBaseTest {
private final TypeReference<?> MODAL_TYPE = new TypeReference<Response<WebUpdateModel>>() {
};
private final TypeReference<?> MODAL_LIST_TYPE = new TypeReference<Response<List<WebUpdateModel>>>() {
@@ -126,7 +125,6 @@ public class WebUpdateInfoControllerTest extends BaseTest {
}
@Test
@Ignore
public void lastestUpdateTime() throws Exception {
getMockData(get("/lastestUpdate")).andDo(result -> assertEquals(SUCCESS.getCode(), getResponse(result).getCode()));
}

View File

@@ -1,11 +1,13 @@
package cn.celess.user;
import cn.celess.common.test.BaseTest;
import cn.celess.common.test.BaseRedisTest;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.stereotype.Component;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public abstract class UserBaseTest extends BaseTest {
@Component
public abstract class UserBaseTest extends BaseRedisTest {
}

View File

@@ -26,17 +26,17 @@ public class AuthorizationFilter extends UserBaseTest {
@Test
public void AdminAccess() throws Exception {
// 未登录
getMockData(get("/admin/articles?page=1&count=1")).andDo(result -> assertEquals(HAVE_NOT_LOG_IN.getCode(), getResponse(result).getCode()));
getMockData(get("/admin/users?page=1&count=1")).andDo(result -> assertEquals(HAVE_NOT_LOG_IN.getCode(), getResponse(result).getCode()));
// user权限
getMockData(get("/admin/articles?page=1&count=1"), userLogin()).andDo(result -> assertEquals(PERMISSION_ERROR.getCode(), getResponse(result).getCode()));
getMockData(get("/admin/users?page=1&count=1"), userLogin()).andDo(result -> assertEquals(PERMISSION_ERROR.getCode(), getResponse(result).getCode()));
// admin 权限
getMockData(get("/admin/articles?page=1&count=1"), adminLogin()).andDo(result -> assertEquals(SUCCESS.getCode(), getResponse(result).getCode()));
getMockData(get("/admin/users?page=1&count=1"), adminLogin()).andDo(result -> assertEquals(SUCCESS.getCode(), getResponse(result).getCode()));
}
@Test
public void VisitorAccess() throws Exception {
getMockData(get("/user/userInfo")).andDo(result -> assertEquals(HAVE_NOT_LOG_IN.getCode(), getResponse(result).getCode()));
getMockData(get("/admin/articles?page=1&count=1")).andDo(result -> assertEquals(HAVE_NOT_LOG_IN.getCode(), getResponse(result).getCode()));
getMockData(get("/admin/users?page=1&count=1")).andDo(result -> assertEquals(HAVE_NOT_LOG_IN.getCode(), getResponse(result).getCode()));
}
@Test

View File

@@ -18,6 +18,18 @@
<version>${blog-common.version}</version>
</dependency>
<dependency>
<groupId>cn.celess</groupId>
<artifactId>blog-user</artifactId>
<version>${blog-user.version}</version>
</dependency>
<dependency>
<groupId>cn.celess</groupId>
<artifactId>blog-extension</artifactId>
<version>${blog-extension.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>

View File

@@ -1,9 +1,17 @@
package cn.celess.visitor;
import cn.celess.common.CommonApplication;
import cn.celess.extension.ExtensionApplication;
import cn.celess.user.UserApplication;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@SpringBootApplication(scanBasePackageClasses = {
VisitorApplication.class,
CommonApplication.class,
ExtensionApplication.class,
UserApplication.class
})
public class VisitorApplication {
public static void main(String[] args) {
SpringApplication.run(VisitorApplication.class, args);

View File

@@ -0,0 +1,11 @@
package cn.celess.visitor;
import cn.celess.common.test.BaseRedisTest;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@SpringBootTest(classes = VisitorApplication.class)
@RunWith(SpringRunner.class)
public abstract class VisitorBaseTest extends BaseRedisTest {
}

View File

@@ -3,7 +3,7 @@ package cn.celess.visitor.controller;
import cn.celess.common.entity.Response;
import cn.celess.common.entity.vo.PageData;
import cn.celess.common.entity.vo.VisitorModel;
import cn.celess.common.test.BaseTest;
import cn.celess.visitor.VisitorBaseTest;
import com.fasterxml.jackson.core.type.TypeReference;
import org.junit.Test;
@@ -12,7 +12,7 @@ import static org.junit.Assert.*;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
public class VisitorControllerTest extends BaseTest {
public class VisitorControllerTest extends VisitorBaseTest {
private final TypeReference<?> VISITOR_PAGE_TYPE = new TypeReference<Response<PageData<VisitorModel>>>() {
};
private final TypeReference<?> VISITOR_TYPE = new TypeReference<Response<VisitorModel>>() {

View File

@@ -3,7 +3,7 @@ package cn.celess.visitor.serviceimpl;
import cn.celess.common.entity.vo.PageData;
import cn.celess.common.entity.vo.VisitorModel;
import cn.celess.common.service.VisitorService;
import cn.celess.common.test.BaseTest;
import cn.celess.visitor.VisitorBaseTest;
import com.alibaba.druid.util.StringUtils;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
@@ -11,7 +11,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
public class VisitorServiceTest extends BaseTest {
public class VisitorServiceTest extends VisitorBaseTest {
@Autowired
VisitorService visitorService;

View File

@@ -1,11 +1,11 @@
package cn.celess.visitor.util;
import cn.celess.common.test.BaseTest;
import cn.celess.visitor.VisitorBaseTest;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class AddressUtilTest extends BaseTest {
public class AddressUtilTest extends VisitorBaseTest {
@Test
public void getCityInfo() {