test master 변경

This commit is contained in:
현성필
2024-01-23 11:24:09 +09:00
parent 75a695897d
commit 91e902af25
121 changed files with 329 additions and 338 deletions
@@ -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";
}
}