单元测试调试通过

This commit is contained in:
huangsimin 2019-05-31 18:05:07 +08:00
parent 4b35d74853
commit 85d5689d0f
2 changed files with 37 additions and 5 deletions

View File

@ -14,7 +14,6 @@ import org.springframework.web.server.ServerWebExchange;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import reactor.core.publisher.Mono; import reactor.core.publisher.Mono;
@Slf4j @Slf4j
@Component @Component
@SpringBootConfiguration @SpringBootConfiguration
@ -32,8 +31,11 @@ public class TokenFilter implements GlobalFilter {
if (token != null) { if (token != null) {
// //
if (VerifyToken(token)) {
return chain.filter(exchange); log.info("request token is Verify Successed: {}", token);
return chain.filter(exchange);
}
log.info("request token is Verify Fail: {} != {}", token, TEST_TOKEN);
} else { } else {
log.warn("request token is empty: {}", request.getURI()); log.warn("request token is empty: {}", request.getURI());
} }
@ -41,11 +43,19 @@ public class TokenFilter implements GlobalFilter {
ServerHttpResponse response = exchange.getResponse(); ServerHttpResponse response = exchange.getResponse();
if (!response.setStatusCode(HttpStatus.UNAUTHORIZED)) { if (!response.setStatusCode(HttpStatus.UNAUTHORIZED)) {
log.error("if the status code has not been set because the HTTP response is already committed"); log.error("if the status code has not been set because the HTTP response is already committed");
} }
return response.setComplete(); return response.setComplete();
} }
public static final String TEST_TOKEN = "yame";
public boolean VerifyToken(String token) {
if (token.equals( TEST_TOKEN) ) {
return true;
}
return false;
}
} }

View File

@ -1,5 +1,7 @@
package ocean.gateway.filters; package ocean.gateway.filters;
import java.lang.reflect.Field;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -7,12 +9,16 @@ import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.boot.test.web.client.TestRestTemplate;
import org.springframework.boot.web.server.LocalServerPort; import org.springframework.boot.web.server.LocalServerPort;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.util.Assert; import org.springframework.util.Assert;
import ocean.gateway.service.ServiceApplication; import ocean.gateway.service.ServiceApplication;
import ocean.gateway.service.filters.TokenFilter;
@RunWith(SpringRunner.class) @RunWith(SpringRunner.class)
@ -27,9 +33,25 @@ public class TokenFilterTests {
private TestRestTemplate restTemplate ; private TestRestTemplate restTemplate ;
@Test @Test
public void GetHello() { public void GetHelloWithoutToken() {
ResponseEntity<String> response = restTemplate.getForEntity("http://127.0.0.1:" + randomServerPort +"/hello", String.class); ResponseEntity<String> response = restTemplate.getForEntity("http://127.0.0.1:" + randomServerPort +"/hello", String.class);
Assert.notNull(response, "The class must not be null"); Assert.notNull(response, "The class must not be null");
Assert.state(response.getStatusCode() == HttpStatus.UNAUTHORIZED, "response.getStatusCode() must be HttpStatus.UNAUTHORIZED"); Assert.state(response.getStatusCode() == HttpStatus.UNAUTHORIZED, "response.getStatusCode() must be HttpStatus.UNAUTHORIZED");
} }
@Test
public void GetHelloWithToken() {
String uri = "http://127.0.0.1:" + randomServerPort +"/hello";
HttpHeaders headers = new HttpHeaders();
String key = TokenFilter.TEST_TOKEN;
headers.add("token",key);
HttpEntity<String> entity = new HttpEntity<>("", headers);
ResponseEntity<String> response = restTemplate.exchange(uri, HttpMethod.GET, entity, String.class);
Assert.notNull(response, "The class must not be null");
Assert.state(response.getStatusCode() != HttpStatus.UNAUTHORIZED, "response.getStatusCode() must not be HttpStatus.UNAUTHORIZED");
}
} }