Skip to content

Commit

Permalink
✅ add test code
Browse files Browse the repository at this point in the history
  • Loading branch information
hellokaton committed Dec 25, 2017
1 parent d92b1b9 commit fdcca82
Show file tree
Hide file tree
Showing 9 changed files with 174 additions and 55 deletions.
31 changes: 22 additions & 9 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

<groupId>com.bladejava</groupId>
<artifactId>blade-mvc</artifactId>
<version>2.0.6-Alpha1</version>
<version>2.0.6-SNAPSHOT</version>
<packaging>jar</packaging>

<name>blade</name>
Expand Down Expand Up @@ -39,6 +39,11 @@
<netty.version>4.1.18.Final</netty.version>
<blade-asm.version>0.0.1</blade-asm.version>
<blade-log.version>0.0.6</blade-log.version>
<gson.version>2.8.0</gson.version>
<bootstrap.version>3.3.7</bootstrap.version>
<mockito.version>1.10.19</mockito.version>
<unirest-java.version>1.4.9</unirest-java.version>
<lombok.version>1.16.18</lombok.version>
</properties>

<dependencies>
Expand Down Expand Up @@ -90,46 +95,56 @@
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.0</version>
<version>${gson.version}</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.webjars</groupId>
<artifactId>bootstrap</artifactId>
<version>3.3.7</version>
<version>${bootstrap.version}</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>1.10.19</version>
<version>${mockito.version}</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>com.mashape.unirest</groupId>
<artifactId>unirest-java</artifactId>
<version>1.4.9</version>
<version>${unirest-java.version}</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.18</version>
<version>${lombok.version}</version>
<scope>provided</scope>
</dependency>

</dependencies>

<repositories>
<repository>
<id>oss-releases</id>
<url>https://oss.sonatype.org/content/repositories/releases</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>oss-snapshots</id>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
<releases>
<enabled>true</enabled>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
Expand Down Expand Up @@ -168,12 +183,10 @@
</formats>
<instrumentation>
<excludes>
<exclude>org/objectweb/asm/*.class</exclude>
<exclude>com/blade/ioc/annotation/*.class</exclude>
<exclude>com/blade/mvc/annotation/*.class</exclude>
<exclude>com/blade/kit/*.class</exclude>
<exclude>com/blade/server/*.class</exclude>
<exclude>io/example/blog/*.class</exclude>
<exclude>netty_hello/*.class</exclude>
</excludes>
</instrumentation>
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/blade/Blade.java
Original file line number Diff line number Diff line change
Expand Up @@ -369,7 +369,7 @@ public Blade gzip(boolean gzipEnable) {
* @param cls bean class type
* @return return bean instance
*/
public Object getBean(@NonNull Class<?> cls) {
public <T> T getBean(@NonNull Class<T> cls) {
return ioc.getBean(cls);
}

Expand Down
4 changes: 4 additions & 0 deletions src/main/java/com/blade/Environment.java
Original file line number Diff line number Diff line change
Expand Up @@ -386,4 +386,8 @@ public Properties props() {
return props;
}

public int size() {
return props.size();
}

}
2 changes: 1 addition & 1 deletion src/main/java/com/blade/mvc/route/RouteMatcher.java
Original file line number Diff line number Diff line change
Expand Up @@ -295,7 +295,7 @@ private String parsePath(String path) {
}

// a bad way
void register() {
public void register() {
routes.values().forEach(route -> log.info("Add route => {}", route));
hooks.values().forEach(route -> log.info("Add hook => {}", route));

Expand Down
4 changes: 0 additions & 4 deletions src/test/java/com/blade/BaseTestCase.java
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,6 @@ protected Response mockResponse(int code) {
return response;
}

protected Blade mockBlade(){
return mock(Blade.class);
}

protected HttpRequest get(String path) throws Exception {
log.info("[GET] {}", (origin + path));
return Unirest.get(origin + path);
Expand Down
152 changes: 122 additions & 30 deletions src/test/java/com/blade/BladeTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,21 @@

import com.blade.event.EventListener;
import com.blade.event.EventType;
import com.blade.kit.StringKit;
import com.blade.mvc.handler.ExceptionHandler;
import com.blade.mvc.handler.RouteHandler;
import com.blade.mvc.ui.template.TemplateEngine;
import com.blade.types.BladeClassDefineType;
import com.mashape.unirest.http.Unirest;
import netty_hello.Hello;
import org.junit.Assert;
import org.junit.Test;

import static org.mockito.Matchers.anyString;
import java.net.ConnectException;
import java.net.Socket;

import static com.blade.mvc.Const.*;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;

/**
* Blade test
Expand All @@ -19,70 +27,154 @@
public class BladeTest extends BaseTestCase {

@Test
public void testListen() {
Blade blade = mockBlade();
blade.listen(9001);
verify(blade).listen(9001);
public void testRouteCode() throws Exception {
Blade blade = Blade.me();

RouteHandler routeHandler = mock(RouteHandler.class);
blade.get("/", routeHandler);
blade.post("/", routeHandler);
blade.delete("/", routeHandler);
blade.put("/", routeHandler);
blade.before("/", routeHandler);
blade.after("/", routeHandler);

blade.routeMatcher().register();

Assert.assertNotNull(blade.routeMatcher().lookupRoute("GET", "/"));
Assert.assertNotNull(blade.routeMatcher().lookupRoute("POST", "/"));
Assert.assertNotNull(blade.routeMatcher().lookupRoute("DELETE", "/"));
Assert.assertNotNull(blade.routeMatcher().lookupRoute("PUT", "/"));
Assert.assertNotNull(blade.routeMatcher().getBefore("/"));
Assert.assertNotNull(blade.routeMatcher().getAfter("/"));
}

blade.listen("127.0.0.1", 9002);
@Test
public void testListen() throws Exception {
Blade blade = Blade.me();
blade.listen(9001).start().await();
try {
int code = Unirest.get("http://127.0.0.1:9001").asString().getStatus();
Assert.assertEquals(404, code);
} finally {
blade.stop();
try {
new Socket("127.0.0.1", 9001);
Assert.fail("Server is still running");
} catch (ConnectException e) {
}
}
}

verify(blade).listen("127.0.0.1", 9002);
@Test
public void testListenAddress() throws Exception {
Blade blade = Blade.me();
blade.listen("localhost", 9002).start().await();
try {
int code = Unirest.get("http://localhost:9002/").asString().getStatus();
Assert.assertEquals(404, code);
} finally {
blade.stop();
try {
new Socket("localhost", 9002);
Assert.fail("Server is still running");
} catch (ConnectException e) {
}
}
}

@Test
public void testStart() {
mockBlade().start(Hello.class, null);
Blade.me().start(Hello.class, null);
}

@Test
public void testAppName() {
Blade blade = mockBlade();
blade.appName(anyString());

verify(blade).appName(anyString());
Blade blade = Blade.me();
String anyString = StringKit.rand(10);
blade.appName(anyString);
Assert.assertEquals(anyString, blade.environment().getOrNull(ENV_KEY_APP_NAME));
}

@Test
public void testStartedEvent() {
Blade blade = mockBlade();
Blade blade = Blade.me();
EventListener listener = e1 -> System.out.println("Server started.");

blade.event(EventType.SERVER_STARTED, listener);

verify(blade).event(EventType.SERVER_STARTED, listener);
}

@Test
public void testTemplate() {
Blade blade = mockBlade();
Blade blade = Blade.me();
TemplateEngine templateEngine = mock(TemplateEngine.class);

blade.templateEngine(templateEngine);

verify(blade).templateEngine(templateEngine);
Assert.assertEquals(templateEngine, blade.templateEngine());
}

@Test
public void testRegister() {
Blade blade = mockBlade();
Object object = mock(Object.class);
Blade blade = Blade.me();
BladeClassDefineType object = new BladeClassDefineType();
blade.register(object);

verify(blade).register(object);
Assert.assertEquals(object, blade.ioc().getBean(BladeClassDefineType.class));
}

@Test
public void testAddStatics() {
Blade blade = mockBlade();
blade.addStatics("/assets/");
verify(blade).addStatics("/assets/");
Blade blade = Blade.me();
blade.addStatics("/assets/", "/public");

Assert.assertEquals(7, blade.getStatics().size());
Assert.assertEquals(Boolean.TRUE, blade.getStatics().contains("/assets/"));
Assert.assertEquals(Boolean.FALSE, blade.getStatics().contains("/hello/"));
}

@Test
public void testEnableCors() {
Blade blade = mockBlade();
Blade blade = Blade.me();
blade.enableCors(true);
Assert.assertEquals(Boolean.TRUE, blade.environment().getBooleanOrNull(ENV_KEY_CORS_ENABLE));
}

verify(blade).enableCors(true);
@Test
public void testShowFileList() {
Blade blade = Blade.me();
blade.showFileList(false);
Assert.assertEquals(Boolean.FALSE, blade.environment().getBooleanOrNull(ENV_KEY_STATIC_LIST));
}

@Test
public void testGZIP() {
Blade blade = Blade.me();
blade.gzip(true);
Assert.assertEquals(Boolean.TRUE, blade.environment().getBooleanOrNull(ENV_KEY_GZIP_ENABLE));
}

@Test
public void testGetBean() {
Blade blade = Blade.me();
blade.register("hello world");

String str = blade.getBean(String.class);
Assert.assertNotNull(str);
Assert.assertEquals("hello world", str);
}

@Test
public void testExceptionHandler() {
Blade blade = Blade.me();
ExceptionHandler exceptionHandler = mock(ExceptionHandler.class);

blade.exceptionHandler(exceptionHandler);

Assert.assertEquals(exceptionHandler, blade.exceptionHandler());
}

@Test
public void testDevMode() {
Blade blade = Blade.me();
blade.devMode(false);
Assert.assertEquals(Boolean.FALSE, blade.devMode());
}


}
27 changes: 23 additions & 4 deletions src/test/java/com/blade/EnvironmentTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,10 @@ public void testDefaultValue() {
properties.setProperty("name", "jack");
Environment environment = Environment.of(properties);

String name = environment.get("name", "rose");
String age = environment.get("age", "20");
int version = environment.getInt("app.version", 1001);
long base = environment.getLong("app.base", 1002);
String name = environment.get("name", "rose");
String age = environment.get("age", "20");
int version = environment.getInt("app.version", 1001);
long base = environment.getLong("app.base", 1002);

Assert.assertEquals("jack", name);
Assert.assertEquals("20", age);
Expand Down Expand Up @@ -146,4 +146,23 @@ public void testHasKey() {
Assert.assertEquals(false, environment.hasKey("hello"));
Assert.assertEquals(true, environment.hasKey("app.version"));
}

@Test(expected = IllegalStateException.class)
public void testNoEnv() {
Environment.of("url:http://www.biezhi.ddd");
}

@Test
public void testAddAll() {
Environment environment = Environment.empty();

Properties prop = new Properties();
prop.setProperty("a", "1");
environment.addAll(prop);

Assert.assertEquals(1, environment.size());

environment.addAll(Collections.singletonMap("aa", "bb"));
Assert.assertEquals(2, environment.size());
}
}
2 changes: 1 addition & 1 deletion src/test/java/com/blade/event/BeanProcessorTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ public class BeanProcessorTest extends BaseTestCase {

@Test
public void testBeanProcessor(){
Blade blade = mockBlade();
Blade blade = Blade.me();
BeanProcessor beanProcessor = mock(BeanProcessor.class);
beanProcessor.processor(blade);
verify(beanProcessor).processor(blade);
Expand Down
5 changes: 0 additions & 5 deletions src/test/java/com/blade/mvc/package-info.java

This file was deleted.

0 comments on commit fdcca82

Please sign in to comment.