test master 변경
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
package com.eactive.testmaster.api.condition;
|
||||
|
||||
import com.eactive.testmaster.api.dto.MockRequest;
|
||||
import com.eactive.testmaster.api.entity.MockCondition;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public interface ConditionMatcher {
|
||||
boolean matches(MockCondition condition, MockRequest request, Map<String, String> pathVariables);
|
||||
|
||||
String getType();
|
||||
|
||||
String getDisplayName();
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.eactive.testmaster.api.condition;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service(value = "ConditionMatcherService")
|
||||
public class ConditionMatcherService {
|
||||
|
||||
private final Map<String, ConditionMatcher> matchers;
|
||||
|
||||
private final List<ConditionMatcher> matchersList;
|
||||
|
||||
public ConditionMatcherService(List<ConditionMatcher> matchersList) {
|
||||
this.matchersList = matchersList;
|
||||
this.matchers = this.matchersList.stream().collect(Collectors.toMap(ConditionMatcher::getType, Function.identity()));
|
||||
}
|
||||
|
||||
public ConditionMatcher getMatcher(String key) {
|
||||
return matchers.get(key);
|
||||
}
|
||||
|
||||
public List<ConditionMatcher> getMatchersList() {
|
||||
return matchersList;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.eactive.testmaster.api.condition;
|
||||
|
||||
import com.eactive.testmaster.api.dto.MockRequest;
|
||||
import com.eactive.testmaster.api.entity.MockCondition;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@Component
|
||||
public class HeaderMatcher implements ConditionMatcher {
|
||||
@Override
|
||||
public boolean matches(MockCondition condition, MockRequest request, Map<String, String> pathVariables) {
|
||||
return condition.getValue().equals(request.getHeader(condition.getKey()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getType() {
|
||||
return "header";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDisplayName() {
|
||||
return "Header";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
package com.eactive.testmaster.api.condition;
|
||||
|
||||
import com.eactive.testmaster.api.dto.MockRequest;
|
||||
import com.eactive.testmaster.api.entity.MockCondition;
|
||||
import com.jayway.jsonpath.JsonPath;
|
||||
import com.jayway.jsonpath.PathNotFoundException;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
@Component
|
||||
public class JsonPathMatcher implements ConditionMatcher {
|
||||
@Override
|
||||
public boolean matches(MockCondition condition, MockRequest request, Map<String, String> pathVariables) {
|
||||
try {
|
||||
Object value = JsonPath.read(request.getBody(), condition.getKey());
|
||||
return value.toString().equals(condition.getValue());
|
||||
} catch (PathNotFoundException e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getType() {
|
||||
return "jsonpath";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDisplayName() {
|
||||
return "JSON Path";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.eactive.testmaster.api.condition;
|
||||
|
||||
import com.eactive.testmaster.api.dto.MockRequest;
|
||||
import com.eactive.testmaster.api.entity.MockCondition;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@Component
|
||||
public class PathMatcher implements ConditionMatcher {
|
||||
@Override
|
||||
public boolean matches(MockCondition condition, MockRequest request, Map<String, String> pathVariables) {
|
||||
return condition.getValue().equals(pathVariables.get(condition.getKey()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getType() {
|
||||
return "path";
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String getDisplayName() {
|
||||
return "Path";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.eactive.testmaster.api.condition;
|
||||
|
||||
import com.eactive.testmaster.api.dto.MockRequest;
|
||||
import com.eactive.testmaster.api.entity.MockCondition;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
@Component
|
||||
public class QueryMatcher implements ConditionMatcher {
|
||||
@Override
|
||||
public boolean matches(MockCondition condition, MockRequest request, Map<String, String> pathVariables) {
|
||||
return condition.getValue().equals(request.getParam(condition.getKey()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getType() {
|
||||
return "query";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDisplayName() {
|
||||
return "Query";
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user