Upgrade spring boot dependency and change some mockito tests (#943)

* Upgrade spring boot dependency and change some mockito tests

* Refactor all test with junit5

Co-authored-by: Ryan Wang <i@ryanc.cc>
pull/952/head
John Niang 2020-07-05 13:36:57 +08:00 committed by GitHub
parent 10fc93569b
commit 11f48781cb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
42 changed files with 602 additions and 645 deletions

View File

@ -1,5 +1,5 @@
plugins {
id "org.springframework.boot" version "2.2.6.RELEASE"
id "org.springframework.boot" version "2.3.1.RELEASE"
id "io.spring.dependency-management" version "1.0.9.RELEASE"
id "checkstyle"
id "java"
@ -26,14 +26,8 @@ configurations {
implementation {
exclude module: "spring-boot-starter-tomcat"
exclude module: "slf4j-log4j12"
exclude module: 'junit'
}
developmentOnly
runtimeClasspath {
extendsFrom developmentOnly
}
compileOnly {
extendsFrom annotationProcessor
}
@ -48,30 +42,30 @@ bootJar {
}
ext {
hutoolVersion = "5.3.8"
upyunSdkVersion = "4.2.0"
qiniuSdkVersion = "7.2.29"
aliyunSdkVersion = "3.9.1"
baiduSdkVersion = "0.10.36"
qcloudSdkVersion = "5.6.25"
swaggerVersion = "2.9.2"
commonsLangVersion = "3.10"
httpclientVersion = "4.5.12"
dataformatYamlVersion = "2.11.0"
jgitVersion = "5.7.0.202003110725-r"
flexmarkVersion = "0.62.2"
thumbnailatorVersion = "0.4.11"
image4jVersion = "0.7zensight1"
flywayVersion = "6.5.0"
h2Version = "1.4.196"
levelDbVersion = "0.12"
hutoolVersion = "5.3.8"
upyunSdkVersion = "4.2.0"
qiniuSdkVersion = "7.2.29"
aliyunSdkVersion = "3.9.1"
baiduSdkVersion = "0.10.36"
qcloudSdkVersion = "5.6.25"
swaggerVersion = "2.9.2"
commonsLangVersion = "3.10"
httpclientVersion = "4.5.12"
dataformatYamlVersion = "2.11.0"
jgitVersion = "5.7.0.202003110725-r"
flexmarkVersion = "0.62.2"
thumbnailatorVersion = "0.4.11"
image4jVersion = "0.7zensight1"
flywayVersion = "6.5.0"
h2Version = "1.4.196"
levelDbVersion = "0.12"
annotationsVersion = "3.0.1u2"
jedisVersion= '3.3.0'
jedisVersion = '3.3.0'
zxingVersion = "3.4.0"
huaweiObsVersion = "3.19.7"
githubApiVersion = "1.84"
powermockVersion = "1.6.6"
mockitoVersion = "1.10.19"
powermockApiMockito2 = "2.0.7"
}
dependencies {
@ -81,8 +75,9 @@ dependencies {
implementation "org.springframework.boot:spring-boot-starter-web"
implementation "org.springframework.boot:spring-boot-starter-jetty"
implementation "org.springframework.boot:spring-boot-starter-freemarker"
implementation "com.sun.mail:jakarta.mail"
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation "com.sun.mail:jakarta.mail"
implementation "cn.hutool:hutool-core:$hutoolVersion"
implementation "cn.hutool:hutool-crypto:$hutoolVersion"
implementation "cn.hutool:hutool-extra:$hutoolVersion"
@ -126,22 +121,17 @@ dependencies {
runtimeOnly "com.h2database:h2:$h2Version"
runtimeOnly "mysql:mysql-connector-java"
compileOnly "org.projectlombok:lombok"
annotationProcessor "org.projectlombok:lombok"
testCompileOnly "org.projectlombok:lombok"
testAnnotationProcessor "org.projectlombok:lombok"
testImplementation "org.springframework.boot:spring-boot-starter-test"
testCompile group: 'org.mockito', name: 'mockito-all', version: "$mockitoVersion"
testCompile group: 'org.powermock', name: 'powermock-api-mockito', version: "$powermockVersion"
testCompile group: 'org.powermock', name: 'powermock-module-junit4', version: "$powermockVersion"
testImplementation("org.springframework.boot:spring-boot-starter-test") {
exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
}
// testImplementation group: 'org.powermock', name: 'powermock-api-mockito2', version: "$powermockApiMockito2"
// testImplementation group: 'org.powermock', name: 'powermock-module-junit4', version: "$powermockVersion"
developmentOnly "org.springframework.boot:spring-boot-devtools"
}
test {
useJUnitPlatform()
}

View File

@ -3,9 +3,12 @@ package run.halo.app.aspect;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.mock.mockito.SpyBean;
import org.springframework.http.HttpStatus;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.web.servlet.MockMvc;
@ -31,14 +34,18 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
class DisableOnConditionAspectTest {
static final String REQUEST_URI = "/api/admin/test/disableOnCondition";
@Autowired
MockMvc mvc;
@Autowired
@SpyBean
OptionService optionService;
@BeforeEach
void setUp() {
optionService.saveProperty(PrimaryProperties.IS_INSTALLED, "true");
MockitoAnnotations.initMocks(this);
Assertions.assertNotNull(optionService);
Mockito.doReturn(true).when(optionService).getByPropertyOrDefault(PrimaryProperties.IS_INSTALLED, Boolean.class, false);
}
@Test()

View File

@ -1,12 +1,9 @@
package run.halo.app.aspect;
import lombok.extern.slf4j.Slf4j;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import run.halo.app.model.entity.PostComment;
import run.halo.app.model.entity.User;
import run.halo.app.security.authentication.AuthenticationImpl;
@ -17,44 +14,38 @@ import run.halo.app.service.PostCommentService;
import java.util.List;
import static org.junit.jupiter.api.Assertions.assertEquals;
/**
* @author giveup
* @description SensitiveConcealAspectTest
* @date 1:14 AM 27/5/2020
*/
@RunWith(SpringRunner.class)
@SpringBootTest
@Slf4j
public class SensitiveConcealAspectTest {
@Disabled("Due to ip address: [0:0:0:0:0:0:0:1]")
class SensitiveConcealAspectTest {
@Autowired
private PostCommentService postCommentService;
PostCommentService postCommentService;
@Test
public void testGuest() {
void testGuest() {
List<PostComment> postComments = postCommentService.listBy(1);
for (PostComment postComment : postComments) {
Assert.assertEquals("", postComment.getIpAddress());
Assert.assertEquals("", postComment.getEmail());
assertEquals("", postComment.getIpAddress());
assertEquals("", postComment.getEmail());
}
}
@Test
public void testAdmin() {
void testAdmin() {
SecurityContextHolder.setContext(new SecurityContextImpl(new AuthenticationImpl(new UserDetail(new User()))));
List<PostComment> postComments = postCommentService.listBy(1);
for (PostComment postComment : postComments) {
Assert.assertEquals("127.0.0.1", postComment.getIpAddress());
Assert.assertEquals("hi@halo.run", postComment.getEmail());
assertEquals("127.0.0.1", postComment.getIpAddress());
assertEquals("hi@halo.run", postComment.getEmail());
}
}
}

View File

@ -1,12 +1,11 @@
package run.halo.app.cache;
import org.junit.Test;
import org.junit.jupiter.api.Test;
import java.util.Optional;
import java.util.concurrent.TimeUnit;
import static org.hamcrest.Matchers.equalTo;
import static org.junit.Assert.*;
import static org.junit.jupiter.api.Assertions.*;
/**
* CacheStoreTest.
@ -14,32 +13,32 @@ import static org.junit.Assert.*;
* @author johnniang
* @date 3/28/19
*/
public class CacheStoreTest {
class CacheStoreTest {
private AbstractStringCacheStore cacheStore = new InMemoryCacheStore();
AbstractStringCacheStore cacheStore = new InMemoryCacheStore();
@Test(expected = IllegalArgumentException.class)
public void putNullValueTest() {
@Test
void putNullValueTest() {
String key = "test_key";
cacheStore.put(key, null);
assertThrows(IllegalArgumentException.class, () -> cacheStore.put(key, null));
}
@Test(expected = IllegalArgumentException.class)
public void putNullKeyTest() {
@Test
void putNullKeyTest() {
String value = "test_value";
cacheStore.put(null, value);
assertThrows(IllegalArgumentException.class, () -> cacheStore.put(null, value));
}
@Test(expected = IllegalArgumentException.class)
public void getByNullKeyTest() {
cacheStore.get(null);
@Test
void getByNullKeyTest() {
assertThrows(IllegalArgumentException.class, () -> cacheStore.get(null));
}
@Test
public void getNullTest() {
void getNullTest() {
String key = "test_key";
Optional<String> valueOptional = cacheStore.get(key);
@ -48,7 +47,7 @@ public class CacheStoreTest {
}
@Test
public void expirationTest() throws InterruptedException {
void expirationTest() throws InterruptedException {
String key = "test_key";
String value = "test_value";
cacheStore.put(key, value, 500, TimeUnit.MILLISECONDS);
@ -56,7 +55,7 @@ public class CacheStoreTest {
Optional<String> valueOptional = cacheStore.get(key);
assertTrue(valueOptional.isPresent());
assertThat(valueOptional.get(), equalTo(value));
assertEquals(value, valueOptional.get());
TimeUnit.SECONDS.sleep(1L);
@ -66,19 +65,19 @@ public class CacheStoreTest {
}
@Test
public void deleteTest() {
void deleteTest() {
String key = "test_key";
String value = "test_value";
// Put the cache
cacheStore.put(key, value);
// Get the caceh
// Get the cache
Optional<String> valueOptional = cacheStore.get(key);
// Assert
assertTrue(valueOptional.isPresent());
assertThat(valueOptional.get(), equalTo(value));
assertEquals(value, valueOptional.get());
// Delete the cache
cacheStore.delete(key);

View File

@ -1,13 +1,12 @@
package run.halo.app.cache;
import org.junit.Before;
import org.junit.Test;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import java.util.Optional;
import java.util.concurrent.TimeUnit;
import static org.hamcrest.Matchers.equalTo;
import static org.junit.Assert.*;
import static org.junit.jupiter.api.Assertions.*;
/**
* InMemoryCacheStoreTest.
@ -15,37 +14,37 @@ import static org.junit.Assert.*;
* @author johnniang
* @date 3/28/19
*/
public class InMemoryCacheStoreTest {
class InMemoryCacheStoreTest {
private InMemoryCacheStore cacheStore;
InMemoryCacheStore cacheStore;
@Before
public void setUp() {
@BeforeEach
void setUp() {
cacheStore = new InMemoryCacheStore();
}
@Test(expected = IllegalArgumentException.class)
public void putNullValueTest() {
@Test
void putNullValueTest() {
String key = "test_key";
cacheStore.put(key, null);
assertThrows(IllegalArgumentException.class, () -> cacheStore.put(key, null));
}
@Test(expected = IllegalArgumentException.class)
public void putNullKeyTest() {
@Test
void putNullKeyTest() {
String value = "test_value";
cacheStore.put(null, value);
assertThrows(IllegalArgumentException.class, () -> cacheStore.put(null, value));
}
@Test(expected = IllegalArgumentException.class)
public void getByNullKeyTest() {
cacheStore.get(null);
@Test
void getByNullKeyTest() {
assertThrows(IllegalArgumentException.class, () -> cacheStore.get(null));
}
@Test
public void getNullTest() {
void getNullTest() {
String key = "test_key";
Optional<String> valueOptional = cacheStore.get(key);
@ -54,7 +53,7 @@ public class InMemoryCacheStoreTest {
}
@Test
public void expirationTest() throws InterruptedException {
void expirationTest() throws InterruptedException {
String key = "test_key";
String value = "test_value";
cacheStore.put(key, value, 500, TimeUnit.MILLISECONDS);
@ -62,7 +61,7 @@ public class InMemoryCacheStoreTest {
Optional<String> valueOptional = cacheStore.get(key);
assertTrue(valueOptional.isPresent());
assertThat(valueOptional.get(), equalTo(value));
assertEquals(value, valueOptional.get());
TimeUnit.SECONDS.sleep(1L);
@ -72,7 +71,7 @@ public class InMemoryCacheStoreTest {
}
@Test
public void deleteTest() {
void deleteTest() {
String key = "test_key";
String value = "test_value";
@ -84,7 +83,7 @@ public class InMemoryCacheStoreTest {
// Assert
assertTrue(valueOptional.isPresent());
assertThat(valueOptional.get(), equalTo(value));
assertEquals(value, valueOptional.get());
// Delete the cache
cacheStore.delete(key);

View File

@ -1,24 +1,26 @@
package run.halo.app.conf;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Test;
import org.springframework.util.AntPathMatcher;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
/**
* Ant path matcher test.
*
* @author johnniang
*/
public class AntPathMatcherTest {
class AntPathMatcherTest {
private final AntPathMatcher pathMatcher = new AntPathMatcher();
final AntPathMatcher pathMatcher = new AntPathMatcher();
@Test
public void matchTest() {
Assert.assertFalse(pathMatcher.match("/admin/?*/**", "/admin"));
Assert.assertFalse(pathMatcher.match("/admin/?*/**", "/admin/"));
void matchTest() {
assertFalse(pathMatcher.match("/admin/?*/**", "/admin"));
assertFalse(pathMatcher.match("/admin/?*/**", "/admin/"));
Assert.assertTrue(pathMatcher.match("/admin/?*/**", "/admin/index.html"));
Assert.assertTrue(pathMatcher.match("/admin/?*/**", "/admin/index.html/more"));
assertTrue(pathMatcher.match("/admin/?*/**", "/admin/index.html"));
assertTrue(pathMatcher.match("/admin/?*/**", "/admin/index.html/more"));
}
}

View File

@ -3,7 +3,8 @@ package run.halo.app.handler.theme;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import run.halo.app.handler.theme.config.support.ThemeProperty;
import java.io.IOException;
@ -13,12 +14,15 @@ import java.io.IOException;
* @date 4/11/19
*/
@Slf4j
public class YamlThemePropertyResolverTest {
class YamlThemePropertyResolverTest {
private final ObjectMapper yamlMapper = new ObjectMapper(new YAMLFactory());
final ObjectMapper yamlMapper = new ObjectMapper(new YAMLFactory());
@Test
public void directResolveTest() throws IOException {
void directResolveTest() throws IOException {
ThemeProperty themeProperty = new ThemeProperty();
themeProperty.setId("viosey_material");
String yaml = "id: viosey_material\n" +
"name: Material\n" +
"author:\n" +
@ -29,8 +33,9 @@ public class YamlThemePropertyResolverTest {
"website: https://github.com/viosey/hexo-theme-material\n" +
"version: 1.0";
ThemeProperty themeProperty = yamlMapper.readValue(yaml, ThemeProperty.class);
ThemeProperty themePropertyResult = yamlMapper.readValue(yaml, ThemeProperty.class);
log.debug("[{}]", themeProperty);
Assertions.assertEquals(themeProperty, themePropertyResult);
}
}

View File

@ -1,36 +1,34 @@
package run.halo.app.model;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.jupiter.api.Test;
import org.springframework.http.MediaType;
import static org.hamcrest.Matchers.equalTo;
import static org.junit.Assert.*;
import static org.junit.jupiter.api.Assertions.*;
/**
* @author johnniang
* @date 3/26/19
*/
@Slf4j
public class MediaTypeTest {
class MediaTypeTest {
@Test
public void toStringTest() {
void toStringTest() {
MediaType mediaType = MediaType.IMAGE_GIF;
assertThat(mediaType.toString(), equalTo("image/gif"));
assertEquals("image/gif", mediaType.toString());
}
@Test
public void parseTest() {
void parseTest() {
MediaType mediaType = MediaType.valueOf("image/gif");
assertNotNull(mediaType);
assertThat(mediaType, equalTo(MediaType.IMAGE_GIF));
assertEquals(MediaType.IMAGE_GIF, mediaType);
}
@Test
public void includesTest() {
void includesTest() {
MediaType mediaType = MediaType.valueOf("image/*");
boolean isInclude = mediaType.includes(MediaType.IMAGE_GIF);
assertTrue(isInclude);

View File

@ -1,47 +1,47 @@
package run.halo.app.model.dto.base;
import lombok.*;
import org.junit.Test;
import org.junit.jupiter.api.Test;
import java.io.Serializable;
import static org.hamcrest.Matchers.equalTo;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertThat;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNull;
public class InputConverterTest {
class InputConverterTest {
@Test
public void convertToTest() {
void convertToTest() {
TestInputDTO inputDTO = new TestInputDTO("test_name");
TestDomain domain = inputDTO.convertTo();
assertThat(domain.getName(), equalTo("test_name"));
assertEquals("test_name", domain.getName());
assertNull(domain.getAge());
}
@Test
public void updateTest() {
void updateTest() {
TestInputDTO inputDTO = new TestInputDTO("test_input_dto_name");
TestDomain domain = new TestDomain("test_domain_name", 10);
inputDTO.update(domain);
assertThat(domain.getName(), equalTo("test_input_dto_name"));
assertThat(domain.getAge(), equalTo(10));
assertEquals("test_input_dto_name", domain.getName());
assertEquals(10, domain.getAge());
}
@Test
public void subConvertToTest() {
void subConvertToTest() {
SubTestInputDTO subTestInputDTO = new SubTestInputDTO();
subTestInputDTO.setName("test_name");
subTestInputDTO.setAge(10);
TestDomain domain = subTestInputDTO.convertTo();
assertThat(domain.getName(), equalTo("test_name"));
assertThat(domain.getAge(), equalTo(10));
assertEquals("test_name", domain.getName());
assertEquals(10, domain.getAge());
}
@Data
@ -61,7 +61,7 @@ public class InputConverterTest {
@EqualsAndHashCode
@NoArgsConstructor
@AllArgsConstructor
public static class TestInputDTO implements InputConverter<TestDomain>, Serializable {
static class TestInputDTO implements InputConverter<TestDomain>, Serializable {
private String name;
}
@ -71,7 +71,7 @@ public class InputConverterTest {
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor
public static class SubTestInputDTO extends TestInputDTO {
static class SubTestInputDTO extends TestInputDTO {
private Integer age;
}

View File

@ -1,35 +1,34 @@
package run.halo.app.model.dto.base;
import lombok.*;
import org.junit.Test;
import org.junit.jupiter.api.Test;
import static org.hamcrest.Matchers.equalTo;
import static org.junit.Assert.assertThat;
import static org.junit.jupiter.api.Assertions.assertEquals;
/**
* Output converter test.
*
* @author johnniang
*/
public class OutputConverterTest {
class OutputConverterTest {
@Test
public void convertFromTest() {
void convertFromTest() {
TestDomain domain = new TestDomain("test_domain_name", 10);
TestOutputDTO testOutputDTO = new TestOutputDTO().convertFrom(domain);
assertThat(testOutputDTO.getName(), equalTo("test_domain_name"));
assertEquals("test_domain_name", testOutputDTO.getName());
}
@Test
public void convertFromSubTest() {
void convertFromSubTest() {
TestDomain domain = new TestDomain("test_domain_name", 10);
SubTestOutputDTO subTestOutputDTO = new SubTestOutputDTO().convertFrom(domain);
assertThat(subTestOutputDTO.getName(), equalTo("test_domain_name"));
assertThat(subTestOutputDTO.getAge(), equalTo(10));
assertEquals("test_domain_name", subTestOutputDTO.getName());
assertEquals(10, subTestOutputDTO.getAge());
}
@Data
@ -37,7 +36,7 @@ public class OutputConverterTest {
@EqualsAndHashCode
@NoArgsConstructor
@AllArgsConstructor
public static class TestDomain {
static class TestDomain {
private String name;
@ -49,7 +48,7 @@ public class OutputConverterTest {
@EqualsAndHashCode
@NoArgsConstructor
@AllArgsConstructor
public static class TestOutputDTO implements OutputConverter<TestOutputDTO, TestDomain> {
static class TestOutputDTO implements OutputConverter<TestOutputDTO, TestDomain> {
private String name;
}
@ -59,7 +58,7 @@ public class OutputConverterTest {
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor
public static class SubTestOutputDTO extends TestOutputDTO {
static class SubTestOutputDTO extends TestOutputDTO {
private Integer age;
}
}

View File

@ -1,34 +1,29 @@
package run.halo.app.model.enums;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.core.convert.ConversionService;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.junit4.SpringRunner;
import static org.hamcrest.Matchers.equalTo;
import static org.junit.Assert.assertThat;
/**
* Attach origin test.
*
* @author johnniang
*/
@RunWith(SpringRunner.class)
@SpringBootTest
@ActiveProfiles("test")
public class AttachmentTypeTest {
class AttachmentTypeTest {
@Autowired
private ConversionService conversionService;
ConversionService conversionService;
@Test
public void conversionTest() {
assertThat(conversionService.convert("LOCAL", AttachmentType.class), equalTo(AttachmentType.LOCAL));
assertThat(conversionService.convert("local", AttachmentType.class), equalTo(AttachmentType.LOCAL));
assertThat(conversionService.convert("Local", AttachmentType.class), equalTo(AttachmentType.LOCAL));
assertThat(conversionService.convert("LoCal", AttachmentType.class), equalTo(AttachmentType.LOCAL));
void conversionTest() {
Assertions.assertEquals(AttachmentType.LOCAL, conversionService.convert("LOCAL", AttachmentType.class));
Assertions.assertEquals(AttachmentType.LOCAL, conversionService.convert("local", AttachmentType.class));
Assertions.assertEquals(AttachmentType.LOCAL, conversionService.convert("Local", AttachmentType.class));
Assertions.assertEquals(AttachmentType.LOCAL, conversionService.convert("LoCal", AttachmentType.class));
}
}

View File

@ -1,10 +1,9 @@
package run.halo.app.model.enums;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.jupiter.api.Test;
import static org.hamcrest.Matchers.equalTo;
import static org.junit.Assert.assertThat;
import static org.junit.jupiter.api.Assertions.assertEquals;
/**
* Data type test.
@ -13,12 +12,11 @@ import static org.junit.Assert.assertThat;
* @date 19-4-21
*/
@Slf4j
public class DataTypeTest {
class DataTypeTest {
@Test
public void typeOf() {
void typeOf() {
DataType type = DataType.typeOf("bool");
log.debug("[{}]", type);
assertThat(type, equalTo(DataType.BOOL));
assertEquals(DataType.BOOL, type);
}
}

View File

@ -1,7 +1,7 @@
package run.halo.app.model.params;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.jupiter.api.Test;
import run.halo.app.model.support.CreateCheck;
import javax.validation.ConstraintViolation;
@ -9,38 +9,39 @@ import javax.validation.Validation;
import javax.validation.Validator;
import java.util.Set;
import static org.hamcrest.Matchers.equalTo;
import static org.junit.Assert.assertThat;
import static org.junit.jupiter.api.Assertions.assertEquals;
/**
* @author johnniang
* @date 19-6-1
*/
@Slf4j
public class InstallParamTest {
class InstallParamTest {
private final Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
final Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
@Test
public void createCheckTest() {
void createCheckTest() {
InstallParam installParam = new InstallParam();
Set<ConstraintViolation<InstallParam>> constraintViolations = validator.validate(installParam, CreateCheck.class);
assertThat(constraintViolations.size(), equalTo(4));
assertEquals(4, constraintViolations.size());
printMessage(constraintViolations);
installParam.setEmail("test");
constraintViolations = validator.validate(installParam, CreateCheck.class);
assertThat(constraintViolations.size(), equalTo(4));
assertEquals(4, constraintViolations.size());
printMessage(constraintViolations);
installParam.setEmail("test@test.com");
constraintViolations = validator.validate(installParam, CreateCheck.class);
assertThat(constraintViolations.size(), equalTo(3));
assertEquals(3, constraintViolations.size());
printMessage(constraintViolations);
}
private void printMessage(Set<ConstraintViolation<InstallParam>> constraintViolations) {
void printMessage(Set<ConstraintViolation<InstallParam>> constraintViolations) {
if (constraintViolations == null) {
return;
}

View File

@ -1,7 +1,7 @@
package run.halo.app.model.properties;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.jupiter.api.Test;
import java.util.Map;
@ -10,10 +10,10 @@ import java.util.Map;
* @date 19-4-25
*/
@Slf4j
public class PropertyEnumTest {
class PropertyEnumTest {
@Test
public void getValuePropertyMapTest() {
void getValuePropertyMapTest() {
Map<String, PropertyEnum> result = PropertyEnum.getValuePropertyEnumMap();
log.debug(result.toString());

View File

@ -1,12 +1,10 @@
package run.halo.app.repository;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.junit4.SpringRunner;
import run.halo.app.model.entity.Sheet;
import java.util.List;
@ -17,17 +15,16 @@ import java.util.List;
* @author johnniang
* @date 3/22/19
*/
@RunWith(SpringRunner.class)
@SpringBootTest
@ActiveProfiles("test")
@Slf4j
public class SheetRepositoryTest {
class SheetRepositoryTest {
@Autowired
private SheetRepository sheetRepository;
SheetRepository sheetRepository;
@Test
public void listAllTest() {
void listAllTest() {
List<Sheet> allSheets = sheetRepository.findAll();
log.debug("{}", allSheets);
}

View File

@ -22,8 +22,10 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
class OneTimeTokenTest {
static final String REQUEST_URI = "/api/admin/counts";
@Autowired
MockMvc mvc;
@Autowired
OneTimeTokenService oneTimeTokenService;

View File

@ -1,7 +1,7 @@
package run.halo.app.service;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.jupiter.api.Test;
import org.springframework.util.ResourceUtils;
import run.halo.app.utils.JsonUtils;
@ -13,18 +13,18 @@ import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Map;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
/**
* @author johnniang
* @date 19-4-26
*/
@Slf4j
public class RecoveryServiceTest {
class RecoveryServiceTest {
@Test
public void getMigrationFileContent() throws IOException, URISyntaxException {
void getMigrationFileContent() throws IOException, URISyntaxException {
String migrationContent = getMigrationContent();
assertNotNull(migrationContent);
@ -32,7 +32,7 @@ public class RecoveryServiceTest {
}
@Test
public void resolveMigrationContent() throws IOException, URISyntaxException {
void resolveMigrationContent() throws IOException, URISyntaxException {
String migrationContent = getMigrationContent();
Object migrationObject = JsonUtils.jsonToObject(migrationContent, Object.class);
@ -47,7 +47,7 @@ public class RecoveryServiceTest {
}
}
private String getMigrationContent() throws IOException, URISyntaxException {
String getMigrationContent() throws IOException, URISyntaxException {
URL migrationUrl = ResourceUtils.getURL(ResourceUtils.CLASSPATH_URL_PREFIX + "migration-test.json");
Path path = Paths.get(migrationUrl.toURI());

View File

@ -1,11 +1,11 @@
package run.halo.app.service.impl;
import com.qiniu.common.Zone;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.mockito.MockitoAnnotations;
import run.halo.app.cache.AbstractStringCacheStore;
import run.halo.app.model.entity.Option;
import run.halo.app.model.properties.QiniuOssProperties;
@ -16,9 +16,8 @@ import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
import static org.hamcrest.Matchers.equalTo;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertThat;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.mockito.BDDMockito.given;
import static org.mockito.BDDMockito.then;
@ -28,58 +27,62 @@ import static org.mockito.BDDMockito.then;
* @author johnniang
* @date 3/22/19
*/
@RunWith(MockitoJUnitRunner.class)
public class OptionServiceImplTest {
class OptionServiceImplTest {
@Mock
private OptionRepository optionRepository;
OptionRepository optionRepository;
@Mock
private AbstractStringCacheStore cacheStore;
AbstractStringCacheStore cacheStore;
@InjectMocks
private OptionServiceImpl optionService;
OptionServiceImpl optionService;
@BeforeEach
void setUp() {
MockitoAnnotations.initMocks(this);
}
@Test
public void getQiniuAutoZoneTest() {
void getQiniuAutoZoneTest() {
getQiniuZoneTest("", Zone.autoZone());
}
@Test
public void getQiniuAutoZoneOfNullOptionTest() {
void getQiniuAutoZoneOfNullOptionTest() {
getQiniuZoneTest(Zone.autoZone(), null);
}
@Test
public void getQiniuZ0ZoneTest() {
void getQiniuZ0ZoneTest() {
getQiniuZoneTest("z0", Zone.zone0());
}
@Test
public void getQiniuZ1ZoneTest() {
void getQiniuZ1ZoneTest() {
getQiniuZoneTest("z1", Zone.zone1());
}
@Test
public void getQiniuZ2ZoneTest() {
void getQiniuZ2ZoneTest() {
getQiniuZoneTest("z2", Zone.zone2());
}
@Test
public void getQiniuAs0ZoneTest() {
void getQiniuAs0ZoneTest() {
getQiniuZoneTest("as0", Zone.zoneAs0());
}
@Test
public void getQiniuNa0ZoneTest() {
void getQiniuNa0ZoneTest() {
getQiniuZoneTest("na0", Zone.zoneNa0());
}
private void getQiniuZoneTest(String region, Zone actualZone) {
void getQiniuZoneTest(String region, Zone actualZone) {
getQiniuZoneTest(actualZone, new Option("", region));
}
private void getQiniuZoneTest(Zone actualZone, Option option) {
void getQiniuZoneTest(Zone actualZone, Option option) {
QiniuOssProperties zoneProperty = QiniuOssProperties.OSS_ZONE;
// Given
@ -95,6 +98,6 @@ public class OptionServiceImplTest {
then(cacheStore).should().getAny(OptionService.OPTIONS_KEY, Map.class);
assertNotNull(zone);
assertThat(zone.getRegion(), equalTo(actualZone.getRegion()));
assertEquals(actualZone.getRegion(), zone.getRegion());
}
}

View File

@ -1,22 +1,16 @@
package run.halo.app.service.impl;
import lombok.extern.slf4j.Slf4j;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.transaction.annotation.Transactional;
@RunWith(SpringRunner.class)
@SpringBootTest
@ActiveProfiles("test")
@Slf4j
public class PostServiceImplTest {
@Disabled("Due to spring boot context needed")
class PostServiceImplTest {
private String standardMdContent = "---\n" +
String standardMdContent = "---\n" +
"title: springfox-swagger2配置成功但无法访问/swagger-ui.html\n" +
"tags:\n" +
" - spring boot\n" +
@ -29,7 +23,7 @@ public class PostServiceImplTest {
"\n" +
"在前后端分离项目中,通常需要用到 API 文档springfox 开发的 **[SpringFox](https://github.com/springfox/springfox)** 可以实现自动化 json API 文档。";
private String nonStandardMdContent = "---\n" +
String nonStandardMdContent = "---\n" +
"title: Basic concepts of JPA\n" +
"date: 2018-08-03 11:57:00\n" +
"tags: ['spring', 'jpa', 'database', 'concept']\n" +
@ -38,18 +32,17 @@ public class PostServiceImplTest {
"以下将讲解关系型数据的关系描述。仅仅是作为总结。";
@Autowired
private PostServiceImpl postService;
PostServiceImpl postService;
@Test
@Ignore
public void getContent() {
void getContent() {
String exportMarkdown = postService.exportMarkdown(18);
log.debug(exportMarkdown);
}
@Test
@Transactional
public void markdownImportTest() {
void markdownImportTest() {
postService.importMarkdown(standardMdContent, "standard");
postService.importMarkdown(nonStandardMdContent, "nonStandard");
}

View File

@ -1,130 +1,110 @@
package run.halo.app.service.impl;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.*;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.web.client.RestTemplate;
import run.halo.app.cache.AbstractStringCacheStore;
import run.halo.app.config.properties.HaloProperties;
import run.halo.app.handler.theme.config.ThemeConfigResolver;
import run.halo.app.handler.theme.config.support.ThemeProperty;
import run.halo.app.service.OptionService;
import run.halo.app.utils.FileUtils;
import run.halo.app.utils.GitUtils;
import run.halo.app.utils.GithubUtils;
import org.junit.jupiter.api.Disabled;
import java.io.File;
import java.nio.file.Path;
import java.util.*;
@RunWith(PowerMockRunner.class)
@PrepareForTest({GitUtils.class, GithubUtils.class, FileUtils.class, ThemeServiceImpl.class})
public class ThemeServiceImplTest {
@Mock
private HaloProperties haloProperties;
@Mock
private OptionService optionService;
@Mock
private AbstractStringCacheStore cacheStore;
@Mock
private ThemeConfigResolver themeConfigResolver;
@Mock
private RestTemplate restTemplate;
@Mock
private ApplicationEventPublisher eventPublisher;
@InjectMocks
public ThemeServiceImpl themeService;
@Before
public void setUp() throws Exception {
//Static Method
PowerMockito.mockStatic(GithubUtils.class);
PowerMockito.mockStatic(GitUtils.class);
PowerMockito.mockStatic(FileUtils.class);
PowerMockito.doReturn(Arrays.asList("master", "dev")).when(GitUtils.class, "getAllBranches", Mockito.any(String.class));
PowerMockito.doNothing().when(GitUtils.class, "cloneFromGit", Mockito.any(String.class), Mockito.any(Path.class));
PowerMockito.doReturn("propertyContent").when(GithubUtils.class, "accessThemeProperty", Mockito.any(String.class), Mockito.any(String.class));
PowerMockito.doReturn(new File("tmpPath").toPath()).when(FileUtils.class, "createTempDirectory");
PowerMockito.doNothing().when(FileUtils.class, "deleteFolderQuietly", Mockito.any(Path.class));
//Method
themeService = PowerMockito.spy(new ThemeServiceImpl(haloProperties, optionService, cacheStore, themeConfigResolver, restTemplate, eventPublisher));
Mockito.doNothing().when(eventPublisher).publishEvent(Mockito.any(String.class));
}
@Test
public void fetchGitTest() throws Exception {
String uri = "https://github.com/halo-dev/halo-theme-pinghsu";
PowerMockito.doNothing().when(themeService, "downloadZipAndUnzip", Mockito.any(String.class), Mockito.any(Path.class));
PowerMockito.doReturn(new ThemeProperty()).when(themeService, "add", Mockito.any(Path.class));
ThemeProperty themeProperty = themeService.fetch(uri);
Assert.assertNotNull(themeProperty);
}
@Test
public void fetchZipTest() throws Exception {
String uri = "https://github.com/halo-dev/halo-theme-pinghsu/archive/master.zip";
PowerMockito.doNothing().when(themeService, "downloadZipAndUnzip", Mockito.any(String.class), Mockito.any(Path.class));
PowerMockito.doReturn(new ThemeProperty()).when(themeService, "add", Mockito.any(Path.class));
ThemeProperty themeProperty = themeService.fetch(uri);
Assert.assertNotNull(themeProperty);
}
@Test
public void fetchBranchesTest() {
String uri = "https://github.com/halo-dev/halo-theme-hux";
List<ThemeProperty> themeProperties = themeService.fetchBranches(uri);
Assert.assertNotNull(themeProperties);
Assert.assertEquals(themeProperties.size(), 2);
}
@Test
public void fetchBranchTest() throws Exception {
String uri = "https://github.com/halo-dev/halo-theme-casper";
String branch = "master";
PowerMockito.doNothing().when(themeService, "downloadZipAndUnzip", Mockito.any(String.class), Mockito.any(Path.class));
PowerMockito.doReturn(new ThemeProperty()).when(themeService, "add", Mockito.any(Path.class));
ThemeProperty themeProperty = themeService.fetchBranch(uri, branch);
Assert.assertNotNull(themeProperty);
}
@Test
public void fetchLatestReleaseTest() throws Exception {
String uri = "https://github.com/halo-dev/halo-theme-casper";
PowerMockito.doNothing().when(themeService, "downloadZipAndUnzip", Mockito.any(String.class), Mockito.any(Path.class));
PowerMockito.doReturn(new ThemeProperty()).when(themeService, "add", Mockito.any(Path.class));
ThemeProperty themeProperty = themeService.fetchLatestRelease(uri);
Assert.assertNotNull(themeProperty);
}
@Test
public void updateTest() throws Exception {
PowerMockito.doNothing().when(themeService, "downloadZipAndUnzip", Mockito.any(String.class), Mockito.any(Path.class));
PowerMockito.doReturn(new ThemeProperty()).when(themeService, "add", Mockito.any(Path.class));
PowerMockito.doNothing().when(themeService, "pullFromGit", Mockito.any(ThemeProperty.class));
PowerMockito.doReturn(new ThemeProperty()).when(themeService, "getThemeOfNonNullBy", Mockito.any(String.class));
ThemeProperty themeProperty = themeService.update("String");
Assert.assertNotNull(themeProperty);
}
//@RunWith(PowerMockRunner.class)
//@PrepareForTest({GitUtils.class, GithubUtils.class, FileUtils.class, ThemeServiceImpl.class})
@Disabled("Due to power mockito dependency")
class ThemeServiceImplTest {
//
// @Mock
// HaloProperties haloProperties;
//
// @Mock
// OptionService optionService;
//
// @Mock
// AbstractStringCacheStore cacheStore;
//
// @Mock
// ThemeConfigResolver themeConfigResolver;
//
// @Mock
// RestTemplate restTemplate;
//
// @Mock
// ApplicationEventPublisher eventPublisher;
//
// @InjectMocks
// ThemeServiceImpl themeService;
//
// @BeforeEach
// void setUp() throws Exception {
// //Static Method
// PowerMockito.mockStatic(GithubUtils.class);
// PowerMockito.mockStatic(GitUtils.class);
// PowerMockito.mockStatic(FileUtils.class);
//
// PowerMockito.doReturn(Arrays.asList("master", "dev")).when(GitUtils.class, "getAllBranches", Mockito.any(String.class));
// PowerMockito.doNothing().when(GitUtils.class, "cloneFromGit", Mockito.any(String.class), Mockito.any(Path.class));
//
// PowerMockito.doReturn("propertyContent").when(GithubUtils.class, "accessThemeProperty", Mockito.any(String.class), Mockito.any(String.class));
//
// PowerMockito.doReturn(new File("tmpPath").toPath()).when(FileUtils.class, "createTempDirectory");
// PowerMockito.doNothing().when(FileUtils.class, "deleteFolderQuietly", Mockito.any(Path.class));
//
// //Method
// themeService = PowerMockito.spy(new ThemeServiceImpl(haloProperties, optionService, cacheStore, themeConfigResolver, restTemplate, eventPublisher));
//
// Mockito.doNothing().when(eventPublisher).publishEvent(Mockito.any(String.class));
// }
//
// @Test
// void fetchGitTest() throws Exception {
// String uri = "https://github.com/halo-dev/halo-theme-pinghsu";
// PowerMockito.doNothing().when(themeService, "downloadZipAndUnzip", Mockito.any(String.class), Mockito.any(Path.class));
// PowerMockito.doReturn(new ThemeProperty()).when(themeService, "add", Mockito.any(Path.class));
// ThemeProperty themeProperty = themeService.fetch(uri);
// Assertions.assertNotNull(themeProperty);
// }
//
// @Test
// void fetchZipTest() throws Exception {
// String uri = "https://github.com/halo-dev/halo-theme-pinghsu/archive/master.zip";
// PowerMockito.doNothing().when(themeService, "downloadZipAndUnzip", Mockito.any(String.class), Mockito.any(Path.class));
// PowerMockito.doReturn(new ThemeProperty()).when(themeService, "add", Mockito.any(Path.class));
// ThemeProperty themeProperty = themeService.fetch(uri);
// Assertions.assertNotNull(themeProperty);
// }
//
// @Test
// void fetchBranchesTest() {
// String uri = "https://github.com/halo-dev/halo-theme-hux";
//
// List<ThemeProperty> themeProperties = themeService.fetchBranches(uri);
//
// Assertions.assertNotNull(themeProperties);
// Assertions.assertEquals(themeProperties.size(), 2);
// }
//
//
// @Test
// void fetchBranchTest() throws Exception {
// String uri = "https://github.com/halo-dev/halo-theme-casper";
// String branch = "master";
// PowerMockito.doNothing().when(themeService, "downloadZipAndUnzip", Mockito.any(String.class), Mockito.any(Path.class));
// PowerMockito.doReturn(new ThemeProperty()).when(themeService, "add", Mockito.any(Path.class));
// ThemeProperty themeProperty = themeService.fetchBranch(uri, branch);
// Assertions.assertNotNull(themeProperty);
// }
//
// @Test
// void fetchLatestReleaseTest() throws Exception {
// String uri = "https://github.com/halo-dev/halo-theme-casper";
// PowerMockito.doNothing().when(themeService, "downloadZipAndUnzip", Mockito.any(String.class), Mockito.any(Path.class));
// PowerMockito.doReturn(new ThemeProperty()).when(themeService, "add", Mockito.any(Path.class));
// ThemeProperty themeProperty = themeService.fetchLatestRelease(uri);
// Assertions.assertNotNull(themeProperty);
// }
//
// @Test
// void updateTest() throws Exception {
// PowerMockito.doNothing().when(themeService, "downloadZipAndUnzip", Mockito.any(String.class), Mockito.any(Path.class));
// PowerMockito.doReturn(new ThemeProperty()).when(themeService, "add", Mockito.any(Path.class));
// PowerMockito.doNothing().when(themeService, "pullFromGit", Mockito.any(ThemeProperty.class));
// PowerMockito.doReturn(new ThemeProperty()).when(themeService, "getThemeOfNonNullBy", Mockito.any(String.class));
// ThemeProperty themeProperty = themeService.update("String");
// Assertions.assertNotNull(themeProperty);
// }
}

View File

@ -1,7 +1,7 @@
package run.halo.app.service.support;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.jupiter.api.Test;
import java.net.URI;
import java.net.URISyntaxException;
@ -11,10 +11,10 @@ import java.net.URISyntaxException;
* @date 19-4-19
*/
@Slf4j
public class HaloMediaTypeTest {
class HaloMediaTypeTest {
@Test
public void gitUrlCheckTest() throws URISyntaxException {
void gitUrlCheckTest() throws URISyntaxException {
String git = "https://github.com/halo-dev/halo.git";
URI uri = new URI(git);

View File

@ -2,7 +2,7 @@ package run.halo.app.utils;
import cn.hutool.crypto.digest.BCrypt;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.jupiter.api.Test;
/**
* BCrypt test.
@ -11,10 +11,10 @@ import org.junit.Test;
* @date 3/28/19
*/
@Slf4j
public class BcryptTest {
class BcryptTest {
@Test
public void cryptTest() {
void cryptTest() {
String cryptPassword = BCrypt.hashpw("opentest", BCrypt.gensalt());
log.debug("Crypt password: [{}]", cryptPassword);
}

View File

@ -3,23 +3,23 @@ package run.halo.app.utils;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.junit.Test;
import org.junit.jupiter.api.Test;
import java.util.Arrays;
import java.util.List;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNull;
/**
* BeanUtils test.
*
* @author johnniang
*/
public class BeanUtilsTest {
class BeanUtilsTest {
@Test
public void transformFrom() {
void transformFrom() {
TestA a = new TestA(1, 2);
TestC c = BeanUtils.transformFrom(a, TestC.class);
@ -36,7 +36,7 @@ public class BeanUtilsTest {
}
@Test
public void transformFromInBatch() {
void transformFromInBatch() {
TestA[] as = {
new TestA(1, 2),
new TestA(3, 4)
@ -60,7 +60,7 @@ public class BeanUtilsTest {
}
@Test
public void updateProperties() {
void updateProperties() {
TestA a = new TestA(1, 2);
TestB b = new TestB(3, 4);
TestC c = new TestC(5, 6);

View File

@ -1,156 +1,155 @@
package run.halo.app.utils;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.junit4.SpringRunner;
import org.junit.jupiter.api.Test;
import java.time.*;
import java.time.format.DateTimeFormatter;
import static org.junit.jupiter.api.Assertions.*;
/**
* DateTimeUtils
*
* @author LeiXinXin
* @date 2020/1/9
*/
@RunWith(SpringRunner.class)
public class DateTimeUtilsTest {
class DateTimeUtilsTest {
/**
*
*/
@Test
public void nowTest() {
void nowTest() {
final LocalDateTime now = DateTimeUtils.now().withNano(0);
Assert.assertNotNull(now);
assertNotNull(now);
final LocalDateTime ctt = DateTimeUtils.now(ZoneId.of(ZoneId.SHORT_IDS.get("CTT"))).withNano(0);
Assert.assertNotNull(ctt);
assertNotNull(ctt);
Assert.assertEquals(Duration.between(now, ctt).toMinutes(), 0);
assertEquals(0, Duration.between(now, ctt).toMinutes());
}
/**
*
*/
@Test
public void formatTest() {
void formatTest() {
final LocalDateTime now = LocalDateTime.of(2020, 1, 9, 20, 20, 20);
final String formatDate = DateTimeUtils.formatDate(now);
Assert.assertEquals(formatDate, "20200109");
assertEquals("20200109", formatDate);
final LocalDate localDate = LocalDate.of(2020, 1, 9);
final String localFormatDate = DateTimeUtils.formatDate(localDate);
Assert.assertEquals(localFormatDate, "20200109");
assertEquals("20200109", localFormatDate);
final DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy/MM/dd");
final String formatDateTime1 = DateTimeUtils.format(now, dateTimeFormatter);
Assert.assertEquals(formatDateTime1, "2020/01/09");
assertEquals("2020/01/09", formatDateTime1);
final LocalTime time1 = LocalTime.of(10, 20);
final String formatTime = DateTimeUtils.formatTime(time1);
Assert.assertEquals(formatTime, "1020");
assertEquals("1020", formatTime);
final String formatTime1 = DateTimeUtils.format(time1, DateTimeFormatter.ofPattern("HH:mm"));
Assert.assertEquals(formatTime1, "10:20");
assertEquals("10:20", formatTime1);
}
/**
*
*/
@Test
public void plusTest() {
void plusTest() {
final LocalDateTime now = LocalDateTime.of(2020, 1, 9, 10, 20);
final LocalDateTime localDateTime = DateTimeUtils.plusOneMinute(now);
Assert.assertEquals(localDateTime.toString(), "2020-01-09T10:21");
assertEquals("2020-01-09T10:21", localDateTime.toString());
LocalTime localTime = LocalTime.of(7, 30);
final LocalDateTime localDateTime1 = DateTimeUtils.plusOneMinute(now, localTime);
Assert.assertEquals(localDateTime1.toString(), "2020-01-09T07:31");
assertEquals("2020-01-09T07:31", localDateTime1.toString());
final LocalDate date = LocalDate.of(2020, 1, 3);
final LocalDateTime localDateTime2 = DateTimeUtils.plusOneMinute(date, localTime);
Assert.assertEquals(localDateTime2.toString(), "2020-01-03T07:31");
assertEquals("2020-01-03T07:31", localDateTime2.toString());
final LocalTime localTime1 = DateTimeUtils.plusOneMinute(localTime);
Assert.assertEquals(localTime1.toString(), "07:31");
assertEquals("07:31", localTime1.toString());
final LocalDateTime localDateTime3 = DateTimeUtils.plusDays(now, 10);
Assert.assertEquals(localDateTime3.toString(), "2020-01-19T10:20");
assertEquals("2020-01-19T10:20", localDateTime3.toString());
}
/**
* LocalDateTime
*/
@Test
public void parseTest() {
void parseTest() {
String time = "20200109135500000";
final LocalDateTime localDateTime = DateTimeUtils.parseCttDateTime(time);
Assert.assertEquals(localDateTime.toString(), "2020-01-09T13:55");
assertEquals("2020-01-09T13:55", localDateTime.toString());
String time2 = "2020/1/9 13:56";
final LocalDateTime dateTime = DateTimeUtils.parse(time2, DateTimeFormatter.ofPattern("yyyy/M/d HH:mm"));
Assert.assertEquals(dateTime.toString(), "2020-01-09T13:56");
assertEquals("2020-01-09T13:56", dateTime.toString());
}
/**
*
*/
@Test
public void minusTest() {
void minusTest() {
final LocalDateTime now = LocalDateTime.of(2020, 1, 3, 14, 20);
final LocalDateTime localDateTime = DateTimeUtils.minusOneMinutes(now);
Assert.assertEquals(localDateTime.toString(), "2020-01-03T14:19");
assertEquals("2020-01-03T14:19", localDateTime.toString());
}
/**
* Instant
*/
@Test
public void toInstantTest() {
void toInstantTest() {
final LocalDateTime now = LocalDateTime.of(2020, 1, 3, 14, 20);
final Instant instant = DateTimeUtils.toInstant(now);
Assert.assertEquals(instant.toString(), "2020-01-03T06:20:00Z");
assertEquals("2020-01-03T06:20:00Z", instant.toString());
final Instant jst = DateTimeUtils.toInstant(now, ZoneId.of(ZoneId.SHORT_IDS.get("JST")));
Assert.assertEquals(jst.toString(), "2020-01-03T05:20:00Z");
assertEquals("2020-01-03T05:20:00Z", jst.toString());
}
/**
* 使
*/
@Test
public void other() {
void other() {
LocalDateTime startInclusive = LocalDateTime.of(2020, 1, 3, 10, 10, 30);
LocalDateTime endInclusive = LocalDateTime.of(2020, 1, 4, 10, 10, 30);
// End 大于等于 Start
final boolean greaterOrEqual = DateTimeUtils.isGreaterOrEqual(startInclusive, endInclusive);
Assert.assertTrue(greaterOrEqual);
assertTrue(greaterOrEqual);
/*
*
*/
final boolean lessThanOrEqual = DateTimeUtils.isLessThanOrEqual(startInclusive, endInclusive);
Assert.assertFalse(lessThanOrEqual);
assertFalse(lessThanOrEqual);
/*
* 0
*/
final boolean zero = DateTimeUtils.isZero(startInclusive, endInclusive);
Assert.assertFalse(zero);
assertFalse(zero);
// 是否是负数startInclusive 大于 endInclusive 就是负数
final boolean negative = DateTimeUtils.isNegative(startInclusive, endInclusive);
Assert.assertFalse(negative);
assertFalse(negative);
// 是否是中午
final boolean noon = DateTimeUtils.isNoon(LocalTime.of(12, 0));
Assert.assertTrue(noon);
assertTrue(noon);
// 把纳秒和秒设置为0
final LocalDateTime localDateTime = LocalDateTime.of(2020, 1, 5, 6, 40, 30, 999);
final LocalDateTime time = DateTimeUtils.secondAndNanoSetZero(localDateTime);
Assert.assertEquals(time.toString(), "2020-01-05T06:40");
assertEquals("2020-01-05T06:40", time.toString());
}
}

View File

@ -1,13 +1,14 @@
package run.halo.app.utils;
import lombok.extern.slf4j.Slf4j;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Test;
import run.halo.app.exception.ForbiddenException;
import java.nio.file.Path;
import java.nio.file.Paths;
import static org.junit.jupiter.api.Assertions.*;
/**
* Directory attack test.
*
@ -15,12 +16,12 @@ import java.nio.file.Paths;
* @date 4/9/19
*/
@Slf4j
public class DirectoryAttackTest {
class DirectoryAttackTest {
private String userHome = System.getProperty("user.home");
String userHome = System.getProperty("user.home");
@Test
public void compareDirectoryFailureTest() {
void compareDirectoryFailureTest() {
Path workDirPath = Paths.get(userHome + "/halo-test/");
@ -29,12 +30,12 @@ public class DirectoryAttackTest {
log.debug("Work directory path: [{}]", workDirPath);
log.debug("Test path: [{}]", testPath);
Assert.assertFalse(testPath.startsWith(workDirPath));
Assert.assertFalse(workDirPath.startsWith(testPath));
assertFalse(testPath.startsWith(workDirPath));
assertFalse(workDirPath.startsWith(testPath));
}
@Test
public void compareDirectorySuccessfullyTest() {
void compareDirectorySuccessfullyTest() {
Path workDirPath = Paths.get(userHome + "/halo-test/");
Path testPath = Paths.get(userHome + "/halo-test/test.txt");
@ -42,13 +43,13 @@ public class DirectoryAttackTest {
log.debug("Work directory path: [{}]", workDirPath);
log.debug("Test path: [{}]", testPath);
Assert.assertTrue(testPath.startsWith(workDirPath));
Assert.assertFalse(workDirPath.startsWith(testPath));
assertTrue(testPath.startsWith(workDirPath));
assertFalse(workDirPath.startsWith(testPath));
}
@Test
public void compareDirectorySuccessfullyTest2() {
void compareDirectorySuccessfullyTest2() {
Path workDirPath = Paths.get(userHome + "/../../etc/").normalize();
Path testPath = Paths.get("/etc/passwd");
@ -56,12 +57,12 @@ public class DirectoryAttackTest {
log.debug("Work directory path: [{}]", workDirPath);
log.debug("Test path: [{}]", testPath);
Assert.assertTrue(testPath.startsWith(workDirPath));
Assert.assertFalse(workDirPath.startsWith(testPath));
assertTrue(testPath.startsWith(workDirPath));
assertFalse(workDirPath.startsWith(testPath));
}
@Test
public void getRealPathTest() {
void getRealPathTest() {
String pathname = "/home/test/../../etc/";
Path path = Paths.get(pathname);
@ -72,12 +73,13 @@ public class DirectoryAttackTest {
}
@Test
public void traversalTestWhenSuccess() {
void traversalTestWhenSuccess() {
FileUtils.checkDirectoryTraversal("/etc/", "/etc/halo/halo/../test");
}
@Test(expected = ForbiddenException.class)
public void traversalTestWhenFailure() {
FileUtils.checkDirectoryTraversal("/etc/", "/etc/../tmp");
@Test
void traversalTestWhenFailure() {
assertThrows(ForbiddenException.class,
() -> FileUtils.checkDirectoryTraversal("/etc/", "/etc/../tmp"));
}
}

View File

@ -1,9 +1,8 @@
package run.halo.app.utils;
import lombok.extern.slf4j.Slf4j;
import org.junit.Assert;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import run.halo.app.model.support.HaloConst;
import java.io.IOException;
@ -17,17 +16,17 @@ import java.util.stream.Collectors;
import java.util.stream.Stream;
import java.util.zip.ZipOutputStream;
import static org.hamcrest.Matchers.equalTo;
import static org.junit.jupiter.api.Assertions.*;
/**
* @author johnniang
* @date 19-4-19
*/
@Slf4j
public class FileUtilsTest {
class FileUtilsTest {
@Test
public void deleteFolder() throws IOException {
void deleteFolder() throws IOException {
// Create a temp folder
Path tempDirectory = Files.createTempDirectory("halo-test");
@ -39,35 +38,35 @@ public class FileUtilsTest {
try (Stream<Path> pathStream = Files.walk(tempDirectory)) {
List<Path> walkList = pathStream.collect(Collectors.toList());
walkList.forEach(path -> log.debug(path.toString()));
Assert.assertThat(walkList.size(), equalTo(4));
assertEquals(4, walkList.size());
}
try (Stream<Path> pathStream = Files.walk(tempDirectory, 1)) {
List<Path> walkList = pathStream.collect(Collectors.toList());
walkList.forEach(path -> log.debug(path.toString()));
Assert.assertThat(walkList.size(), equalTo(2));
assertEquals(2, walkList.size());
}
try (Stream<Path> pathStream = Files.list(tempDirectory)) {
List<Path> walkList = pathStream.collect(Collectors.toList());
walkList.forEach(path -> log.debug(path.toString()));
Assert.assertThat(walkList.size(), equalTo(1));
assertEquals(1, walkList.size());
}
try (Stream<Path> pathStream = Files.list(testPath)) {
List<Path> walkList = pathStream.collect(Collectors.toList());
walkList.forEach(path -> log.debug(path.toString()));
Assert.assertThat(walkList.size(), equalTo(0));
assertEquals(0, walkList.size());
}
// Delete it
FileUtils.deleteFolder(tempDirectory);
Assert.assertTrue(Files.notExists(tempDirectory));
assertTrue(Files.notExists(tempDirectory));
}
@Test
public void zipFolderTest() throws IOException {
void zipFolderTest() throws IOException {
// Create some temporary files
Path rootFolder = Files.createTempDirectory("zip-root-");
log.debug("Folder name: [{}]", rootFolder.getFileName());
@ -91,13 +90,13 @@ public class FileUtilsTest {
}
@Test
public void tempFolderTest() {
void tempFolderTest() {
log.debug(HaloConst.TEMP_DIR);
}
@Test
@Ignore
public void dbFileReadTest() throws IOException {
@Disabled("Due to depend on halo.mv.db file")
void dbFileReadTest() throws IOException {
Path dbPath = Paths.get(HaloConst.USER_HOME + "/halo-test/db/halo.mv.db");
try (RandomAccessFile randomAccessFile = new RandomAccessFile(dbPath.toString(), "r")) {
@ -111,7 +110,7 @@ public class FileUtilsTest {
}
@Test
public void testRenameFile() throws IOException {
void testRenameFile() throws IOException {
// Create a temp folder
Path tempDirectory = Files.createTempDirectory("halo-test");
@ -130,15 +129,15 @@ public class FileUtilsTest {
FileUtils.rename(filePath, "newName");
Path newPath = filePath.resolveSibling("newName");
Assert.assertFalse(Files.exists(filePath));
Assert.assertTrue(Files.isRegularFile(newPath));
Assert.assertEquals(new String(Files.readAllBytes(newPath)), content);
assertFalse(Files.exists(filePath));
assertTrue(Files.isRegularFile(newPath));
assertEquals(content, new String(Files.readAllBytes(newPath)));
FileUtils.deleteFolder(tempDirectory);
}
@Test
public void testRenameFolder() throws IOException {
void testRenameFolder() throws IOException {
// Create a temp folder
Path tempDirectory = Files.createTempDirectory("halo-test");
@ -153,14 +152,14 @@ public class FileUtilsTest {
FileUtils.rename(tempDirectory.resolve("test"), "newName");
Path newPath = tempDirectory.resolve("newName");
Assert.assertTrue(Files.isDirectory(newPath));
Assert.assertTrue(Files.isRegularFile(newPath.resolve("test.file")));
assertTrue(Files.isDirectory(newPath));
assertTrue(Files.isRegularFile(newPath.resolve("test.file")));
FileUtils.deleteFolder(tempDirectory);
}
@Test
public void testRenameRepeat() throws IOException {
void testRenameRepeat() throws IOException {
// Create a temp folder
Path tempDirectory = Files.createTempDirectory("halo-test");
@ -178,19 +177,19 @@ public class FileUtilsTest {
try {
FileUtils.rename(testPathOne, "testTwo");
} catch (Exception e) {
Assert.assertTrue(e instanceof FileAlreadyExistsException);
assertTrue(e instanceof FileAlreadyExistsException);
}
try {
FileUtils.rename(filePathOne, "testTwo.file");
} catch (Exception e) {
Assert.assertTrue(e instanceof FileAlreadyExistsException);
assertTrue(e instanceof FileAlreadyExistsException);
}
try {
FileUtils.rename(filePathOne, "testOne");
} catch (Exception e) {
Assert.assertTrue(e instanceof FileAlreadyExistsException);
assertTrue(e instanceof FileAlreadyExistsException);
}
FileUtils.deleteFolder(tempDirectory);

View File

@ -1,9 +1,8 @@
package run.halo.app.utils;
import org.junit.Test;
import org.junit.jupiter.api.Test;
import static org.hamcrest.Matchers.equalTo;
import static org.junit.Assert.assertThat;
import static org.junit.jupiter.api.Assertions.assertEquals;
/**
* Filename utilities test.
@ -11,18 +10,18 @@ import static org.junit.Assert.assertThat;
* @author johnniang
* @date 3/26/19
*/
public class FilenameUtilsTest {
class FilenameUtilsTest {
// a/b/c.txt --> c.txt
// a.txt --> a.txt
// a/b/c --> c
// a/b/c/ --> ""
@Test
public void getBasename() {
assertThat(FilenameUtils.getBasename("a/b/c.txt"), equalTo("c"));
assertThat(FilenameUtils.getBasename("a.txt"), equalTo("a"));
assertThat(FilenameUtils.getBasename("a/b/c"), equalTo("c"));
assertThat(FilenameUtils.getBasename("a/b/c/"), equalTo(""));
void getBasename() {
assertEquals("c", FilenameUtils.getBasename("a/b/c.txt"));
assertEquals("a", FilenameUtils.getBasename("a.txt"));
assertEquals("c", FilenameUtils.getBasename("a/b/c"));
assertEquals("", FilenameUtils.getBasename("a/b/c/"));
}
// foo.txt --> "txt"
@ -30,11 +29,11 @@ public class FilenameUtilsTest {
// a/b.txt/c --> ""
// a/b/c --> ""
@Test
public void getExtension() {
assertThat(FilenameUtils.getExtension("foo.txt"), equalTo("txt"));
assertThat(FilenameUtils.getExtension("a/b/c.jpg"), equalTo("jpg"));
assertThat(FilenameUtils.getExtension("a/b.txt/c"), equalTo(""));
assertThat(FilenameUtils.getExtension("a/b/c"), equalTo(""));
assertThat(FilenameUtils.getExtension("a/b/c/"), equalTo(""));
void getExtension() {
assertEquals("txt", FilenameUtils.getExtension("foo.txt"));
assertEquals("jpg", FilenameUtils.getExtension("a/b/c.jpg"));
assertEquals("", FilenameUtils.getExtension("a/b.txt/c"));
assertEquals("", FilenameUtils.getExtension("a/b/c"));
assertEquals("", FilenameUtils.getExtension("a/b/c/"));
}
}

View File

@ -7,7 +7,7 @@ import org.eclipse.jgit.api.errors.GitAPIException;
import org.eclipse.jgit.errors.RepositoryNotFoundException;
import org.eclipse.jgit.transport.RemoteConfig;
import org.eclipse.jgit.transport.URIish;
import org.junit.*;
import org.junit.jupiter.api.*;
import java.io.IOException;
import java.net.URISyntaxException;
@ -15,6 +15,9 @@ import java.nio.file.Files;
import java.nio.file.Path;
import java.util.List;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
/**
* Git test.
*
@ -22,39 +25,41 @@ import java.util.List;
* @date 19-5-21
*/
@Slf4j
public class GitTest {
class GitTest {
private Path tempPath;
Path tempPath;
@Before
public void setUp() throws IOException {
@BeforeEach
void setUp() throws IOException {
tempPath = Files.createTempDirectory("git-test");
}
@After
public void destroy() throws IOException {
@AfterEach
void destroy() throws IOException {
FileUtils.deleteFolder(tempPath);
}
@Test(expected = RepositoryNotFoundException.class)
public void openFailureTest() throws IOException {
Git.open(tempPath.toFile());
@Test
void openFailureTest() {
Assertions.assertThrows(RepositoryNotFoundException.class, () -> {
Git.open(tempPath.toFile());
});
}
@Test
public void initTest() throws GitAPIException {
void initTest() throws GitAPIException {
Git.init().setDirectory(tempPath.toFile()).call();
}
@Test
public void statusSuccessfulTest() throws GitAPIException {
void statusSuccessfulTest() throws GitAPIException {
Git git = Git.init().setDirectory(tempPath.toFile()).call();
Status status = git.status().call();
log.debug("Status missing: [{}]", status.getMissing());
}
@Test
public void remoteAddTest() throws GitAPIException, URISyntaxException {
void remoteAddTest() throws GitAPIException, URISyntaxException {
Git git = Git.init().setDirectory(tempPath.toFile()).call();
git.remoteRemove().setRemoteName("theme-provider").call();
git.remoteAdd().setName("theme-provider").setUri(new URIish("https://github.com/halo-dev/halo-theme-pinghsu.git")).call();
@ -63,14 +68,14 @@ public class GitTest {
}
@Test
@Ignore
public void cloneTest() throws GitAPIException {
@Disabled("Due to time-consumption cloning")
void cloneTest() throws GitAPIException {
cloneRepository();
}
@Test
@Ignore
public void pullTest() throws GitAPIException {
@Disabled("Due to time-consumption cloning and pulling")
void pullTest() throws GitAPIException {
Git git = cloneRepository();
git.pull().call();
git.clean().call();
@ -78,21 +83,21 @@ public class GitTest {
}
@Test
@Ignore
public void getAllBranchesTest() {
@Disabled("Due to time-consumption fetching")
void getAllBranchesTest() {
List<String> branches = GitUtils.getAllBranches("https://github.com/halo-dev/halo-theme-hux.git");
Assert.assertNotNull(branches);
assertNotNull(branches);
}
@Test
@Ignore
public void getAllBranchesWithInvalidURL() {
@Disabled("Due to time-consumption fetching")
void getAllBranchesWithInvalidURL() {
List<String> branches = GitUtils.getAllBranches("https://github.com/halo-dev/halo-theme.git");
Assert.assertNotNull(branches);
Assert.assertEquals(branches.size(), 0);
assertNotNull(branches);
assertEquals(0, branches.size());
}
private Git cloneRepository() throws GitAPIException {
Git cloneRepository() throws GitAPIException {
return Git.cloneRepository()
.setURI("https://github.com/halo-dev/halo-theme-pinghsu.git")
.setDirectory(tempPath.toFile())

View File

@ -1,9 +1,8 @@
package run.halo.app.utils;
import lombok.extern.slf4j.Slf4j;
import org.junit.Assert;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.springframework.http.ResponseEntity;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;
@ -18,29 +17,32 @@ import java.security.NoSuchAlgorithmException;
import java.util.List;
import java.util.Map;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
/**
* Github api test.
*
* @author johnniang
* @date 19-5-21
*/
@Ignore
@Slf4j
public class GithubTest {
@Disabled("Due to time-consumption")
class GithubTest {
private final static String API_URL = "https://api.github.com/repos/halo-dev/halo-admin/releases/latest";
private final static String HALO_ADMIN_REGEX = "halo-admin-\\d+\\.\\d+(\\.\\d+)?(-\\S*)?\\.zip";
private final Path tempPath;
private final RestTemplate restTemplate;
final static String API_URL = "https://api.github.com/repos/halo-dev/halo-admin/releases/latest";
final static String HALO_ADMIN_REGEX = "halo-admin-\\d+\\.\\d+(\\.\\d+)?(-\\S*)?\\.zip";
final Path tempPath;
final RestTemplate restTemplate;
public GithubTest() throws NoSuchAlgorithmException, KeyStoreException, KeyManagementException, IOException {
GithubTest() throws NoSuchAlgorithmException, KeyStoreException, KeyManagementException, IOException {
tempPath = Files.createTempDirectory("git-test");
this.restTemplate = new RestTemplate(new HttpComponentsClientHttpRequestFactory(HttpClientUtils.createHttpsClient(5000)));
}
@Test
@SuppressWarnings("unchecked")
public void getLatestReleaseTest() throws Throwable {
void getLatestReleaseTest() throws Throwable {
ResponseEntity<Map> responseEntity = restTemplate.getForEntity(API_URL, Map.class);
log.debug("Response: " + responseEntity);
Object assetsObject = responseEntity.getBody().get("assets");
@ -72,21 +74,21 @@ public class GithubTest {
}
@Test
public void nameMatchTEst() {
void nameMatchTEst() {
String name = "halo-admin-1.0.0-beta.1.zip";
Assert.assertTrue(name.matches(HALO_ADMIN_REGEX));
assertTrue(name.matches(HALO_ADMIN_REGEX));
name = "halo-admin-1.0.zip";
Assert.assertTrue(name.matches(HALO_ADMIN_REGEX));
assertTrue(name.matches(HALO_ADMIN_REGEX));
name = "halo-admin-1.0.0.zip";
Assert.assertTrue(name.matches(HALO_ADMIN_REGEX));
assertTrue(name.matches(HALO_ADMIN_REGEX));
name = "halo-admin-v1.0.0-beta.zip";
Assert.assertFalse(name.matches(HALO_ADMIN_REGEX));
assertFalse(name.matches(HALO_ADMIN_REGEX));
name = "halo-admin.zip";
Assert.assertFalse(name.matches(HALO_ADMIN_REGEX));
assertFalse(name.matches(HALO_ADMIN_REGEX));
}
}

View File

@ -2,45 +2,42 @@ package run.halo.app.utils;
import lombok.extern.slf4j.Slf4j;
import org.junit.Assert;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import java.util.List;
import java.util.Map;
import static org.junit.jupiter.api.Assertions.assertNull;
@Slf4j
public class GithubUtilsTest {
@Disabled("Dut to time-consumption")
class GithubUtilsTest {
@Test
@Ignore
public void getLatestReleasesWithValidURL() {
void getLatestReleasesWithValidURL() {
Map<String, Object> map = GithubUtils.getLatestRelease("https://github.com/halo-dev/halo-theme-hux");
}
@Test
@Ignore
public void getLatestReleasesWithInvalidURL() {
void getLatestReleasesWithInvalidURL() {
Map<String, Object> map = GithubUtils.getLatestRelease("https://github.com/halo-dev/halo-theme-hu");
Assert.assertNull(map);
assertNull(map);
}
@Test
@Ignore
public void accessThemePropertyWithValidURL() {
void accessThemePropertyWithValidURL() {
String content = GithubUtils.accessThemeProperty("https://github.com/halo-dev/halo-theme-hux", "master");
}
@Test
@Ignore
public void accessThemePropertyWithInvalidURL() {
void accessThemePropertyWithInvalidURL() {
String content = GithubUtils.accessThemeProperty("https://github.com/halo-dev/halo-theme-hu", "master");
Assert.assertNull(content);
assertNull(content);
}
@Test
@Ignore
public void getReleasesTest() {
void getReleasesTest() {
List<String> list = GithubUtils.getReleases("https://github.com/halo-dev/halo-theme-hux");
}
}

View File

@ -2,13 +2,12 @@ package run.halo.app.utils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.RandomUtils;
import org.junit.Test;
import org.junit.jupiter.api.Test;
import java.util.stream.IntStream;
import static org.hamcrest.Matchers.equalTo;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
/**
* Halo utilities test.
@ -18,116 +17,114 @@ import static org.junit.Assert.assertThat;
* @date 2019-03-29
*/
@Slf4j
public class HaloUtilsTest {
class HaloUtilsTest {
@Test
public void timeFormatTest() {
void timeFormatTest() {
long seconds = 0;
String timeFormat = HaloUtils.timeFormat(seconds);
assertThat(timeFormat, equalTo("0 second"));
assertEquals("0 second", timeFormat);
seconds = -1;
timeFormat = HaloUtils.timeFormat(seconds);
assertThat(timeFormat, equalTo("0 second"));
assertEquals("0 second", timeFormat);
seconds = 30;
timeFormat = HaloUtils.timeFormat(seconds);
assertThat(timeFormat, equalTo("30 seconds"));
assertEquals("30 seconds", timeFormat);
seconds = 60;
timeFormat = HaloUtils.timeFormat(seconds);
assertThat(timeFormat, equalTo("1 minute"));
assertEquals("1 minute", timeFormat);
seconds = 120;
timeFormat = HaloUtils.timeFormat(seconds);
assertThat(timeFormat, equalTo("2 minutes"));
assertEquals("2 minutes", timeFormat);
seconds = 3600;
timeFormat = HaloUtils.timeFormat(seconds);
assertThat(timeFormat, equalTo("1 hour"));
assertEquals("1 hour", timeFormat);
seconds = 7200;
timeFormat = HaloUtils.timeFormat(seconds);
assertThat(timeFormat, equalTo("2 hours"));
assertEquals("2 hours", timeFormat);
seconds = 7200 + 30;
timeFormat = HaloUtils.timeFormat(seconds);
assertThat(timeFormat, equalTo("2 hours, 30 seconds"));
assertEquals("2 hours, 30 seconds", timeFormat);
seconds = 7200 + 60 + 30;
timeFormat = HaloUtils.timeFormat(seconds);
assertThat(timeFormat, equalTo("2 hours, 1 minute, 30 seconds"));
assertEquals("2 hours, 1 minute, 30 seconds", timeFormat);
}
@Test
public void pluralizeTest() {
void pluralizeTest() {
String label = "chance";
String pluralLabel = "chances";
String pluralizedFormat = HaloUtils.pluralize(1, label, pluralLabel);
assertThat(pluralizedFormat, equalTo("1 chance"));
assertEquals("1 chance", pluralizedFormat);
pluralizedFormat = HaloUtils.pluralize(2, label, pluralLabel);
assertThat(pluralizedFormat, equalTo("2 chances"));
assertEquals("2 chances", pluralizedFormat);
pluralizedFormat = HaloUtils.pluralize(0, label, pluralLabel);
assertThat(pluralizedFormat, equalTo("no chances"));
assertEquals("no chances", pluralizedFormat);
// Test random positive time
IntStream.range(0, 10000).forEach(i -> {
long time = RandomUtils.nextLong(2, Long.MAX_VALUE);
String result = HaloUtils.pluralize(time, label, pluralLabel);
assertThat(result, equalTo(time + " " + pluralLabel));
assertEquals(time + " " + pluralLabel, result);
});
// Test random negative time
IntStream.range(0, 10000).forEach(i -> {
long time = (-1) * RandomUtils.nextLong();
String result = HaloUtils.pluralize(time, label, pluralLabel);
assertThat(result, equalTo("no " + pluralLabel));
assertEquals("no " + pluralLabel, result);
});
}
@Test(expected = IllegalArgumentException.class)
public void pluralizeLabelExceptionTest() {
HaloUtils.pluralize(1, null, null);
}
@Test
public void desensitizeSuccessTest() {
void pluralizeLabelExceptionTest() {
assertThrows(IllegalArgumentException.class, () -> HaloUtils.pluralize(1, null, null));
}
@Test
void desensitizeSuccessTest() {
String plainText = "12345678";
String desensitization = HaloUtils.desensitize(plainText, 1, 1);
assertThat(desensitization, equalTo("1******8"));
assertEquals("1******8", desensitization);
desensitization = HaloUtils.desensitize(plainText, 2, 3);
assertThat(desensitization, equalTo("12***678"));
assertEquals("12***678", desensitization);
desensitization = HaloUtils.desensitize(plainText, 2, 6);
assertThat(desensitization, equalTo("12345678"));
assertEquals("12345678", desensitization);
desensitization = HaloUtils.desensitize(plainText, 2, 7);
assertThat(desensitization, equalTo("12345678"));
assertEquals("12345678", desensitization);
desensitization = HaloUtils.desensitize(plainText, 0, 0);
assertThat(desensitization, equalTo("********"));
assertEquals("********", desensitization);
desensitization = HaloUtils.desensitize(plainText, -1, -1);
assertThat(desensitization, equalTo("********"));
}
@Test(expected = IllegalArgumentException.class)
public void desensitizeFailureTest() {
String plainText = " ";
HaloUtils.desensitize(plainText, 1, 1);
assertEquals("********", desensitization);
}
@Test
public void compositeHttpUrl() {
void desensitizeFailureTest() {
String plainText = " ";
assertThrows(IllegalArgumentException.class, () -> HaloUtils.desensitize(plainText, 1, 1));
}
@Test
void compositeHttpUrl() {
String url = HaloUtils.compositeHttpUrl("https://halo.run", "path1", "path2");
assertEquals("https://halo.run/path1/path2", url);
@ -145,7 +142,7 @@ public class HaloUtilsTest {
}
@Test
public void normalizeUrl() {
void normalizeUrl() {
assertEquals("/2019/2/2/avatar.jpg", HaloUtils.normalizeUrl("/2019/2/2/avatar.jpg"));
assertEquals("http://cn.gravatar.com/avatar?d=mm", HaloUtils.normalizeUrl("//cn.gravatar.com/avatar?d=mm"));

View File

@ -1,7 +1,7 @@
package run.halo.app.utils;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.jupiter.api.Test;
import java.net.InetAddress;
import java.net.UnknownHostException;
@ -12,10 +12,10 @@ import java.net.UnknownHostException;
* @author johnniang
*/
@Slf4j
public class InetAddressTest {
class InetAddressTest {
@Test
public void getMachaineAddressTest() throws UnknownHostException {
void getMachineAddressTest() throws UnknownHostException {
InetAddress localHost = InetAddress.getLocalHost();
log.debug("Localhost: " + localHost.getHostAddress());

View File

@ -1,19 +1,19 @@
package run.halo.app.utils;
import org.junit.Test;
import org.junit.jupiter.api.Test;
import java.io.IOException;
import static org.junit.Assert.assertEquals;
import static org.junit.jupiter.api.Assertions.assertEquals;
/**
* @author johnniang
* @date 19-4-29
*/
public class JsonUtilsTest {
class JsonUtilsTest {
@Test
public void longConvertTest() throws IOException {
void longConvertTest() throws IOException {
long num = 10;
String result = JsonUtils.objectToJson(num);

View File

@ -12,10 +12,10 @@ import java.time.format.DateTimeFormatter;
* @author johnniang
*/
@Slf4j
public class LocalDateTimeTest {
class LocalDateTimeTest {
@Test
public void dateTimeToStringTest() {
void dateTimeToStringTest() {
LocalDateTime dateTime = LocalDateTime.now();
log.debug(dateTime.toString());
log.debug(dateTime.toLocalDate().toString());

View File

@ -1,14 +1,15 @@
package run.halo.app.utils;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.jupiter.api.Test;
import java.net.URI;
import java.net.URISyntaxException;
import java.nio.file.FileSystemNotFoundException;
import java.nio.file.Path;
import java.nio.file.Paths;
import static org.junit.jupiter.api.Assertions.assertThrows;
/**
* Path test.
*
@ -16,14 +17,15 @@ import java.nio.file.Paths;
* @date 19-5-20
*/
@Slf4j
public class PathTest {
class PathTest {
@Test(expected = FileSystemNotFoundException.class)
public void getPathOfJarFileFailure() throws URISyntaxException {
@Test
void getPathOfJarFileFailure() {
String file = "jar:file:/path/to/jar/xxx.jar!/BOOT-INF/classes!/templates/themes";
URI uri = new URI(file);
Path path = Paths.get(uri);
log.debug("Path: " + path.toString());
assertThrows(FileSystemNotFoundException.class, () -> {
URI uri = new URI(file);
Path path = Paths.get(uri);
log.debug("Path: " + path.toString());
});
}
}

View File

@ -1,14 +1,13 @@
package run.halo.app.utils;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import java.nio.file.Path;
import java.nio.file.Paths;
import static org.hamcrest.Matchers.equalTo;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
/**
* Paths test.
@ -16,21 +15,21 @@ import static org.junit.Assert.assertTrue;
* @author johnniang
* @date 3/27/19
*/
public class PathsTest {
class PathsTest {
@Test
@Ignore
public void getTest() {
@Disabled("Due to platform dependent")
void getTest() {
Path path = Paths.get("/home/test/", "/upload/test.txt");
assertThat(path.toString(), equalTo("/home/test/upload/test.txt"));
assertThat(path.getParent().toString(), equalTo("/home/test/upload"));
assertThat(path.getFileName().toString(), equalTo("test.txt"));
assertEquals("/home/test/upload/test.txt", path.toString());
assertEquals("/home/test/upload", path.getParent().toString());
assertEquals("test.txt", path.getFileName().toString());
}
@Test
public void startWithTest() {
void startWithTest() {
Path path = Paths.get("/test/test.txt");
assertThat(path.getFileName().toString(), equalTo("test.txt"));
assertEquals("test.txt", path.getFileName().toString());
boolean isStartWith = FilenameUtils.getBasename(path.toString()).equalsIgnoreCase("test");
assertTrue(isStartWith);
}

View File

@ -1,7 +1,7 @@
package run.halo.app.utils;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.jupiter.api.Test;
import run.halo.app.model.params.BaseCommentParam;
import run.halo.app.model.params.JournalCommentParam;
@ -15,10 +15,10 @@ import java.lang.reflect.Type;
* @date 19-4-25
*/
@Slf4j
public class ReflectionUtilsTest {
class ReflectionUtilsTest {
@Test
public void getBaseCommentParamParameterizedTypeTest() {
void getBaseCommentParamParameterizedTypeTest() {
Class<JournalCommentParam> paramClass = JournalCommentParam.class;
log.debug(paramClass.getTypeName());

View File

@ -1,10 +1,8 @@
package run.halo.app.utils;
import lombok.extern.slf4j.Slf4j;
import org.junit.Assert;
import org.junit.Test;
import static org.hamcrest.Matchers.equalTo;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
/**
* @author johnniang
@ -17,14 +15,14 @@ public class SlugUtilsTest {
public void makeSlugTest() {
String slugResult = SlugUtils.slugify("Hello World");
Assert.assertThat(slugResult, equalTo("hello-world"));
Assertions.assertEquals("hello-world", slugResult);
}
@Test
public void slugTest() {
String slug = SlugUtils.slug("一二三四 +/~!@#$%^&*()_+ - hello-world");
Assert.assertThat(slug, equalTo("一二三四-hello-world"));
Assertions.assertEquals("一二三四-hello-world", slug);
}
@Test

View File

@ -1,7 +1,7 @@
package run.halo.app.utils;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.jupiter.api.Test;
import java.util.concurrent.TimeUnit;
@ -12,13 +12,13 @@ import java.util.concurrent.TimeUnit;
* @date 19-4-29
*/
@Slf4j
public class TimeUnitTest {
class TimeUnitTest {
@Test
public void convertTest() {
Long millis = TimeUnit.DAYS.toMillis(30);
void convertTest() {
long millis = TimeUnit.DAYS.toMillis(30);
log.debug("" + millis);
log.debug("" + millis.intValue());
log.debug("" + (int) millis);
}
}

View File

@ -1,7 +1,7 @@
package run.halo.app.utils;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.jupiter.api.Test;
/**
* Two-Factor Auth Test
@ -10,10 +10,10 @@ import org.junit.Test;
* @date 2020-04-03 10:10
*/
@Slf4j
public class TwoFactorAuthUtilsTest {
class TwoFactorAuthUtilsTest {
@Test
public void checkTFACodeTest() {
void checkTFACodeTest() {
// generate new key
final String key = TwoFactorAuthUtils.generateTFAKey();
// generate url

View File

@ -1,7 +1,7 @@
package run.halo.app.utils;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.jupiter.api.Test;
import java.net.URI;
import java.net.URISyntaxException;
@ -13,10 +13,10 @@ import java.net.URISyntaxException;
* @date 3/26/19
*/
@Slf4j
public class URITest {
class URITest {
@Test
public void createURITest() throws URISyntaxException {
void createURITest() throws URISyntaxException {
String homeDir = System.getProperty("user.home");
URI uri = new URI(homeDir);
log.debug("[{}]", uri);

View File

@ -1,14 +1,13 @@
package run.halo.app.utils;
import org.junit.Test;
import org.junit.jupiter.api.Test;
import run.halo.app.handler.theme.config.impl.YamlThemeConfigResolverImpl;
import run.halo.app.handler.theme.config.support.Group;
import java.io.IOException;
import java.util.List;
import static org.hamcrest.Matchers.equalTo;
import static org.junit.Assert.assertThat;
import static org.junit.jupiter.api.Assertions.assertEquals;
/**
* Yaml test.
@ -16,12 +15,12 @@ import static org.junit.Assert.assertThat;
* @author johnniang
* @date 4/8/19
*/
public class YamlTest {
class YamlTest {
private final YamlThemeConfigResolverImpl resolver = new YamlThemeConfigResolverImpl();
final YamlThemeConfigResolverImpl resolver = new YamlThemeConfigResolverImpl();
@Test
public void readYamlTest() throws IOException {
void readYamlTest() throws IOException {
String yaml = "sns:\n" +
" label: 社交资料设置\n" +
@ -64,13 +63,13 @@ public class YamlTest {
List<Group> groups = resolver.resolve(yaml);
assertThat(groups.size(), equalTo(2));
assertThat(groups.get(0).getItems().size(), equalTo(3));
assertThat(groups.get(1).getItems().size(), equalTo(2));
assertEquals(2, groups.size());
assertEquals(3, groups.get(0).getItems().size());
assertEquals(2, groups.get(1).getItems().size());
}
@Test
public void readAnotherYamlTest() throws IOException {
void readAnotherYamlTest() throws IOException {
String yaml = "sns:\n" +
" label: 社交资料设置\n" +
" items:\n" +
@ -120,13 +119,13 @@ public class YamlTest {
List<Group> groups = resolver.resolve(yaml);
assertThat(groups.size(), equalTo(2));
assertThat(groups.get(0).getItems().size(), equalTo(4));
assertThat(groups.get(1).getItems().size(), equalTo(3));
assertEquals(2, groups.size());
assertEquals(4, groups.get(0).getItems().size());
assertEquals(3, groups.get(1).getItems().size());
}
@Test
public void convertYamlTest() throws IOException {
void convertYamlTest() throws IOException {
String yaml = "- name: sns\n" +
" label: 社交资料设置\n" +
" items:\n" +
@ -175,10 +174,10 @@ public class YamlTest {
List<Group> groups = resolver.resolve(yaml);
assertThat(groups.size(), equalTo(2));
assertThat(groups.get(0).getItems().size(), equalTo(4));
assertThat(groups.get(1).getItems().size(), equalTo(3));
assertThat(groups.get(0).getItems().get(0).getOptions().size(), equalTo(2));
assertEquals(2, groups.size());
assertEquals(4, groups.get(0).getItems().size());
assertEquals(3, groups.get(1).getItems().size());
assertEquals(2, groups.get(0).getItems().get(0).getOptions().size());
}
}