TEST_F(MultiInheritTest, VerifyCast) { // Create a dummy context and make it current: AutoCreateContext ctxt; CurrentContextPusher pshr(ctxt); // Insert a MultiInherit object: auto obj = ctxt->Inject<MultiInherit>(); // Autowire in the pObj: Autowired<MultiInherit> wiredPobj; ASSERT_TRUE(wiredPobj.IsAutowired()) << "Autowiring failed for a multi-inheritance object"; // Verify that we get a pObj back with correct casting: ASSERT_EQ(obj.get(), wiredPobj.get()) << "Autowiring failed on a multiple inheritance object"; }