@Test
public void getContext() throws Exception {

    RpcInvokeContext old = RpcInvokeContext.peekContext();
    try {
        if (old != null) {
            RpcInvokeContext.removeContext();
        }
        RpcInvokeContext context = RpcInvokeContext.peekContext();
        Assert.assertTrue(context == null);
        context = RpcInvokeContext.getContext();
        Assert.assertTrue(context != null);
        RpcInvokeContext.removeContext();
        Assert.assertTrue(RpcInvokeContext.peekContext() == null);
        context = new RpcInvokeContext();
        RpcInvokeContext.setContext(context);
        Assert.assertTrue(RpcInvokeContext.getContext() != null);
        Assert.assertEquals(RpcInvokeContext.getContext(), context);
        RpcInvokeContext.removeContext();
        Assert.assertTrue(RpcInvokeContext.peekContext() == null);
        Assert.assertTrue(context != null);
        RpcInvokeContext.removeContext();
        Assert.assertTrue(RpcInvokeContext.peekContext() == null);
    } finally {
        RpcInvokeContext.setContext(old);
    }
}