From 0e8a82f89a5293411cb877deb87703a352f8e421 Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Thu, 19 Feb 2015 01:19:36 +0000 Subject: Refactor mocked stuff in wrappers for easy setup/teardown and expose the fuse operations map instead of the app instance --- netfs/unittests/testCore.cpp | 72 ++++++++++++++++++++++++++++++-------------- 1 file changed, 50 insertions(+), 22 deletions(-) diff --git a/netfs/unittests/testCore.cpp b/netfs/unittests/testCore.cpp index 0f74925..495c5a7 100644 --- a/netfs/unittests/testCore.cpp +++ b/netfs/unittests/testCore.cpp @@ -35,6 +35,35 @@ class MockDaemon : public NetFSDaemon { } }; +class MockDaemonHost { + public: + MockDaemonHost() : + params({}), + ic(Ice::initialize(params)), + daemon(new MockDaemon(ic)) + { + ic->getProperties()->setProperty("NetFSD.HostNameOverride", "unittest"); + daemon->start("NetFSDaemonAdapter", ic, {}); + + } + + ~MockDaemonHost() + { + delete daemon; + ic->destroy(); + } + + Ice::StringSeq params; + Ice::CommunicatorPtr ic; + NetFSDaemon * daemon; +}; +typedef boost::shared_ptr MockDaemonHostPtr; + +char * argv[] = { + strdup((RootDir / ":testvol").string().c_str()), + strdup((RootDir / "test").string().c_str()) +}; + class FuseMock : public NetFS::FuseApp { public: FuseMock(int & argc, char ** argv) : @@ -81,39 +110,38 @@ class FuseMock : public NetFS::FuseApp { fuse_context context; }; -char * argv[] = { - strdup((RootDir / ":testvol").string().c_str()), - strdup((RootDir / "test").string().c_str()) -}; - -class Core { +class FuseMockHost { public: - Core() : - params({}), - ic(Ice::initialize(params)), - daemon(new MockDaemon(ic)), + FuseMockHost() : argc(2), - fuse(new FuseMock(argc, argv)) + app(new FuseMock(argc, argv)), + fuse(&app->ops) { - ic->getProperties()->setProperty("NetFSD.HostNameOverride", "unittest"); - daemon->start("NetFSDaemonAdapter", ic, {}); char ** a = argv; - FuseAppBase::run(argc, a, fuse); + FuseAppBase::run(argc, a, app); } - ~Core() + int argc; + FuseMock * app; + fuse_operations * fuse; +}; + +class Core { + public: + Core() : + ic(daemonHost.ic), + daemon(daemonHost.daemon), + fuse(fuseHost.fuse) { - delete fuse; - delete daemon; - ic->destroy(); } protected: - Ice::StringSeq params; + MockDaemonHost daemonHost; + FuseMockHost fuseHost; + Ice::CommunicatorPtr ic; - NetFSDaemon * daemon; - int argc; - FuseAppBase * fuse; + NetFSDaemon * const daemon; + fuse_operations * fuse;; }; BOOST_FIXTURE_TEST_SUITE( NetfsCore, Core ) -- cgit v1.2.3