添加单测

pull/2965/head
Allan-QLB 1 month ago
parent b49d35c3b5
commit a1bf19ca03

@ -9,7 +9,6 @@ import ognl.OgnlContext;
import ognl.OgnlException;
import ognl.OgnlRuntime;
import java.util.Map;
/**
* @author hengyunabc 2022-03-24

@ -0,0 +1,57 @@
package com.taobao.arthas.core.command.express;
import com.taobao.arthas.core.advisor.Advice;
import ognl.OgnlException;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import java.util.Arrays;
import java.util.List;
import static org.junit.jupiter.api.Assertions.*;
class ArthasObjectPropertyAccessorTest {
private Express express;
@BeforeEach
public void setUp () {
Fetcher fetcher = new Fetcher().add(new Fetcher.Fetch()
.add(new FlowContext("aa"))
.add(new FlowContext("bb"))
).add(new Fetcher.Fetch()
.add(new FlowContext("cc"))
.add(new FlowContext("dd"))
.add(new FlowContext("ee"))
);
Object[] params = new Object[4];
params[0] = fetcher;
Advice advice = Advice.newForAfterReturning(null, getClass(), null, null, params, null);
express = ExpressFactory.unpooledExpress(null).bind(advice);
}
@Test
void getPossibleProperty() throws ExpressException {
assertInstanceOf(List.class, express.get("params[0].completedFetches"));
assertEquals(2, ((List<?>) express.get("params[0].completedFetches")).size());
assertThrows(ExpressException.class, () -> express.is("params[0].hasCompletedFetches"));
assertTrue(express.is("params[0].hasCompletedFetches()"));
assertThrows(ExpressException.class, () -> express.is("params[0].getCompletedFetches"));
assertTrue(express.is("params[0].getCompletedFetches()"));
assertInstanceOf(Fetcher.Fetch.class, express.get("params[0].completedFetches[1]"));
assertInstanceOf(List.class, express.get("params[0].completedFetches[1].flowContexts"));
assertEquals(3, ((List) express.get("params[0].completedFetches[1].flowContexts")).size());
assertTrue(express.is("params[0].completedFetches[1].hasFlowContexts()"));
assertTrue(express.is("params[0].completedFetches[1].getFlowContexts()"));
assertInstanceOf(List.class, express.get("params[0].completedFetches[1].getFlowContexts1()"));
assertInstanceOf(List.class, express.get("params[0].completedFetches.{flowContexts.{flowAttribute.bxApp}}"));
assertIterableEquals(Arrays.asList(
Arrays.asList("aa", "bb"),
Arrays.asList("cc", "dd", "ee")
), (Iterable<?>) express.get("params[0].completedFetches.{flowContexts.{flowAttribute.bxApp}}"));
}
}

@ -0,0 +1,45 @@
package com.taobao.arthas.core.command.express;
import java.util.ArrayList;
import java.util.List;
public class Fetcher {
private final List<Fetch> completedFetches = new ArrayList<>();
public boolean hasCompletedFetches() {
return !completedFetches.isEmpty();
}
public boolean getCompletedFetches() {
return hasCompletedFetches();
}
public Fetcher add(Fetch fetch) {
completedFetches.add(fetch);
return this;
}
public static class Fetch {
private final List<FlowContext> flowContexts = new ArrayList<>();
public boolean hasFlowContexts() {
return !flowContexts.isEmpty();
}
public boolean getFlowContexts() {
return !flowContexts.isEmpty();
}
public List<FlowContext> getFlowContexts1() {
return flowContexts;
}
public Fetch add(FlowContext flowContext) {
flowContexts.add(flowContext);
return this;
}
}
}

@ -3,6 +3,13 @@ package com.taobao.arthas.core.command.express;
public class FlowAttribute {
private String bxApp = "aaa";
public FlowAttribute() {
}
public FlowAttribute(String bxApp) {
this.bxApp = bxApp;
}
public String getBxApp() {
return this.bxApp ;
}

@ -3,6 +3,14 @@ package com.taobao.arthas.core.command.express;
public class FlowContext {
private FlowAttribute flowAttribute = new FlowAttribute();
public FlowContext() {
}
public FlowContext(String app) {
this.flowAttribute = new FlowAttribute(app);
}
public FlowAttribute getFlowAttribute() {
return this.flowAttribute ;
}

Loading…
Cancel
Save