Skip to content

Commit

Permalink
[improve][test] try remove whitebox on MockZooKeeper (apache#17579)
Browse files Browse the repository at this point in the history
  • Loading branch information
tisonkun authored Sep 11, 2022
1 parent 1a638aa commit c1434fd
Showing 1 changed file with 15 additions and 19 deletions.
34 changes: 15 additions & 19 deletions testmocks/src/main/java/org/apache/zookeeper/MockZooKeeper.java
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.reflect.FieldUtils;
import org.apache.zookeeper.AsyncCallback.Children2Callback;
import org.apache.zookeeper.AsyncCallback.ChildrenCallback;
import org.apache.zookeeper.AsyncCallback.DataCallback;
Expand All @@ -59,7 +60,6 @@
import org.objenesis.Objenesis;
import org.objenesis.ObjenesisStd;
import org.objenesis.instantiator.ObjectInstantiator;
import org.powermock.reflect.Whitebox;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand Down Expand Up @@ -144,10 +144,7 @@ public static MockZooKeeper newInstanceForGlobalZK(ExecutorService executor, int

public static MockZooKeeper newInstance(ExecutorService executor, int readOpDelayMs) {
try {
MockZooKeeper zk = createMockZooKeeperInstance(executor, readOpDelayMs);
ObjectInstantiator<ClientCnxn> clientCnxnObjectInstantiator = objenesis.getInstantiatorOf(ClientCnxn.class);
Whitebox.setInternalState(zk, "cnxn", clientCnxnObjectInstantiator.newInstance());
return zk;
return createMockZooKeeperInstance(executor, readOpDelayMs);
} catch (RuntimeException e) {
throw e;
} catch (Exception e) {
Expand Down Expand Up @@ -1018,43 +1015,40 @@ public List<OpResult> multi(Iterable<org.apache.zookeeper.Op> ops) throws Interr
try {
for (org.apache.zookeeper.Op op : ops) {
switch (op.getType()) {
case ZooDefs.OpCode.create: {
case ZooDefs.OpCode.create -> {
org.apache.zookeeper.Op.Create opc = ((org.apache.zookeeper.Op.Create) op);
CreateMode cm = CreateMode.fromFlag(opc.flags);
String path = this.create(op.getPath(), opc.data, null, cm);
res.add(new OpResult.CreateResult(path));
break;
}
case ZooDefs.OpCode.delete:
this.delete(op.getPath(), Whitebox.getInternalState(op, "version"));
case ZooDefs.OpCode.delete -> {
this.delete(op.getPath(), (int) FieldUtils.readField(op, "version", true));
res.add(new OpResult.DeleteResult());
break;
case ZooDefs.OpCode.setData: {
Stat stat = this.setData(op.getPath(), Whitebox.getInternalState(op, "data"),
Whitebox.getInternalState(op, "version"));
}
case ZooDefs.OpCode.setData -> {
Stat stat = this.setData(
op.getPath(),
(byte[]) FieldUtils.readField(op, "data", true),
(int) FieldUtils.readField(op, "version", true));
res.add(new OpResult.SetDataResult(stat));
break;
}
case ZooDefs.OpCode.getChildren: {
case ZooDefs.OpCode.getChildren -> {
try {
List<String> children = this.getChildren(op.getPath(), null);
res.add(new OpResult.GetChildrenResult(children));
} catch (KeeperException e) {
res.add(new OpResult.ErrorResult(e.code().intValue()));
}
break;
}
case ZooDefs.OpCode.getData: {
case ZooDefs.OpCode.getData -> {
Stat stat = new Stat();
try {
byte[] payload = this.getData(op.getPath(), null, stat);
res.add(new OpResult.GetDataResult(payload, stat));
} catch (KeeperException e) {
res.add(new OpResult.ErrorResult(e.code().intValue()));
}
break;
}
default:
}
}
} catch (KeeperException e) {
Expand All @@ -1063,6 +1057,8 @@ public List<OpResult> multi(Iterable<org.apache.zookeeper.Op> ops) throws Interr
for (int i = res.size(); i < total; i++) {
res.add(new OpResult.ErrorResult(KeeperException.Code.RUNTIMEINCONSISTENCY.intValue()));
}
} catch (IllegalAccessException e) {
throw new IllegalStateException(e);
}
return res;
}
Expand Down

0 comments on commit c1434fd

Please sign in to comment.