#include <fruit/fruit.h> #include <gtest/gtest.h> namespace { class Greeter { public: virtual std::string greet() = 0; }; fruit::Component<Greeter> getGreeterComponent(); class GreeterImpl : public Greeter { public: INJECT(GreeterImpl()) = default; std::string greet() override { return "Hello, world!"; } }; fruit::Component<Greeter> getGreeterComponent() { return fruit::createComponent().bind<Greeter, GreeterImpl>(); } } // namespace TEST(TestDeps, Fruit) { auto injector = fruit::Injector<Greeter>{getGreeterComponent}; ASSERT_NE(injector.get<Greeter*>(), nullptr); }