### Question:
TabpageStreamApi extends BaseStreamApi implements NeovimTabpageApi { @Override public CompletableFuture<Void> deleteVar(String name) { return sendWithNoResponse(prepareMessage(DEL_VAR).addArgument(name)); } TabpageStreamApi(ReactiveRpcStreamer reactiveRpcStreamer, Tabpage model); @Override Tabpage get(); @Override CompletableFuture<List<NeovimWindowApi>> getWindows(); @Override CompletableFuture<NeovimWindowApi> getWindow(); @Override CompletableFuture<Object> getVar(String name); @Override CompletableFuture<Void> setVar(String name, Object value); @Override CompletableFuture<Void> deleteVar(String name); @Override CompletableFuture<Integer> getNumber(); @Override CompletableFuture<Boolean> isValid(); @Override String toString();  }### Answer:
@Test public void deleteVarTest() throws ExecutionException, InterruptedException { assertNormalBehavior( () -> CompletableFuture.completedFuture(new ResponseMessage(1, null, null)), () -> tabpageStreamApi.deleteVar("name"), request -> assertMethodAndArguments(request, NeovimTabpageApi.DEL_VAR, tabpage, "name") ); assertErrorBehavior( () -> tabpageStreamApi.deleteVar("wrong name"), request -> assertMethodAndArguments(request, NeovimTabpageApi.DEL_VAR, tabpage, "wrong name") ); }