### Question:
RpcContext { public static RpcContext getContext() { return LOCAL.get(); } protected  RpcContext(); static RpcContext getServerContext(); static void restoreServerContext(RpcContext oldServerContext); static void removeServerContext(); static RpcContext getContext(); static void restoreContext(RpcContext oldContext); RpcContext copyOf(); static void removeContext(); Object getRequest(); void setRequest(Object request); @SuppressWarnings("unchecked") T getRequest(Class<T> clazz); Object getResponse(); void setResponse(Object response); @SuppressWarnings("unchecked") T getResponse(Class<T> clazz); boolean isProviderSide(); boolean isConsumerSide(); @SuppressWarnings("unchecked") CompletableFuture<T> getCompletableFuture(); @SuppressWarnings("unchecked") Future<T> getFuture(); void setFuture(Future<?> future); List<URL> getUrls(); void setUrls(List<URL> urls); URL getUrl(); void setUrl(URL url); String getMethodName(); void setMethodName(String methodName); Class<?>[] getParameterTypes(); void setParameterTypes(Class<?>[] parameterTypes); Object[] getArguments(); void setArguments(Object[] arguments); RpcContext setLocalAddress(String host, int port); InetSocketAddress getLocalAddress(); RpcContext setLocalAddress(InetSocketAddress address); String getLocalAddressString(); String getLocalHostName(); RpcContext setRemoteAddress(String host, int port); InetSocketAddress getRemoteAddress(); RpcContext setRemoteAddress(InetSocketAddress address); String getRemoteAddressString(); String getRemoteHostName(); String getLocalHost(); int getLocalPort(); String getRemoteHost(); int getRemotePort(); String getAttachment(String key); RpcContext setAttachment(String key, String value); RpcContext removeAttachment(String key); Map<String, String> getAttachments(); RpcContext setAttachments(Map<String, String> attachment); void clearAttachments(); Map<String, Object> get(); RpcContext set(String key, Object value); RpcContext remove(String key); Object get(String key); @Deprecated boolean isServerSide(); @Deprecated boolean isClientSide(); @Deprecated @SuppressWarnings({"unchecked", "rawtypes"}) List<Invoker<?>> getInvokers(); RpcContext setInvokers(List<Invoker<?>> invokers); @Deprecated Invoker<?> getInvoker(); RpcContext setInvoker(Invoker<?> invoker); @Deprecated Invocation getInvocation(); RpcContext setInvocation(Invocation invocation); @SuppressWarnings("unchecked") CompletableFuture<T> asyncCall(Callable<T> callable); void asyncCall(Runnable runnable); @SuppressWarnings("unchecked") static AsyncContext startAsync(); boolean isAsyncStarted(); boolean stopAsync(); void setAsyncContext(AsyncContext asyncContext); AsyncContext getAsyncContext();  }### Answer:
@Test public void testGetContext() { RpcContext rpcContext = RpcContext.getContext(); Assertions.assertNotNull(rpcContext); RpcContext.removeContext(); Assertions.assertNotNull(RpcContext.getContext()); Assertions.assertNotEquals(rpcContext, RpcContext.getContext()); RpcContext serverRpcContext = RpcContext.getServerContext(); Assertions.assertNotNull(serverRpcContext); RpcContext.removeServerContext(); Assertions.assertNotEquals(serverRpcContext, RpcContext.getServerContext()); }