Skip to content

Commit

Permalink
添加单测
Browse files Browse the repository at this point in the history
  • Loading branch information
Allan-QLB committed Dec 19, 2024
1 parent b49d35c commit a1bf19c
Show file tree
Hide file tree
Showing 5 changed files with 117 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
import ognl.OgnlException;
import ognl.OgnlRuntime;

import java.util.Map;

/**
* @author hengyunabc 2022-03-24
Expand Down
Original file line number Diff line number Diff line change
@@ -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}}"));
}



}
Original file line number Diff line number Diff line change
@@ -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;
}

}
}


Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,13 @@
public class FlowAttribute {
private String bxApp = "aaa";

public FlowAttribute() {
}

public FlowAttribute(String bxApp) {
this.bxApp = bxApp;
}

public String getBxApp() {
return this.bxApp ;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,14 @@
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 ;
}
Expand Down

0 comments on commit a1bf19c

Please sign in to comment.