I find it confusing that GetContext is used for setting the context too. I tried to figure out where the context is set, looking up SetContext usage, with no luck - it's not used at all. So it's hard to see the flow of the execution for TestContext related code.