| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- #include "test_notebook.h"
- #include <QDebug>
- #include <QTemporaryDir>
- #include <QFileInfo>
- #include <versioncontroller/dummyversioncontrollerfactory.h>
- #include <versioncontroller/iversioncontroller.h>
- #include <notebookconfigmgr/vxnotebookconfigmgrfactory.h>
- #include <notebookconfigmgr/inotebookconfigmgr.h>
- #include <notebookconfigmgr/bundlenotebookconfigmgr.h>
- #include <notebookbackend/localnotebookbackendfactory.h>
- #include <notebookbackend/inotebookbackend.h>
- #include <notebook/bundlenotebookfactory.h>
- #include <notebook/notebook.h>
- #include <notebook/notebookparameters.h>
- #include <utils/pathutils.h>
- using namespace tests;
- using namespace vnotex;
- TestNotebook::TestNotebook(QObject *p_parent)
- : QObject(p_parent)
- {
- m_testDir.reset(new QTemporaryDir);
- Q_ASSERT(m_testDir->isValid());
- }
- void TestNotebook::testVersionControllerServer()
- {
- Q_ASSERT(!m_vcServer);
- m_vcServer.reset(new NameBasedServer<IVersionControllerFactory>);
- // Dummy Version Controller.
- auto dummyFactory = QSharedPointer<DummyVersionControllerFactory>::create();
- m_vcServer->registerItem(dummyFactory->getName(), dummyFactory);
- auto factory = m_vcServer->getItem(dummyFactory->getName());
- auto dummyVC = factory->createVersionController();
- QCOMPARE(dummyVC->getName(), dummyFactory->getName());
- }
- void TestNotebook::testNotebookConfigMgrServer()
- {
- Q_ASSERT(!m_ncmServer);
- m_ncmServer.reset(new NameBasedServer<INotebookConfigMgrFactory>);
- // VX Notebook Config Manager.
- auto vxFactory = QSharedPointer<VXNotebookConfigMgrFactory>::create();
- m_ncmServer->registerItem(vxFactory->getName(), vxFactory);
- auto factory = m_ncmServer->getItem(vxFactory->getName());
- auto vxConfigMgr = factory->createNotebookConfigMgr(nullptr);
- QCOMPARE(vxConfigMgr->getName(), vxFactory->getName());
- }
- void TestNotebook::testNotebookBackendServer()
- {
- Q_ASSERT(!m_backendServer);
- m_backendServer.reset(new NameBasedServer<INotebookBackendFactory>);
- // Local Notebook Backend.
- auto localFactory = QSharedPointer<LocalNotebookBackendFactory>::create();
- m_backendServer->registerItem(localFactory->getName(), localFactory);
- auto factory = m_backendServer->getItem(localFactory->getName());
- auto localBackend = factory->createNotebookBackend("");
- QCOMPARE(localBackend->getName(), localFactory->getName());
- }
- void TestNotebook::testNotebookServer()
- {
- Q_ASSERT(!m_nbServer);
- m_nbServer.reset(new NameBasedServer<INotebookFactory>);
- // Bundle Notebook.
- auto bundleFacotry = QSharedPointer<BundleNotebookFactory>::create();
- m_nbServer->registerItem(bundleFacotry->getName(), bundleFacotry);
- auto factory = m_nbServer->getItem(bundleFacotry->getName());
- QVERIFY(factory == bundleFacotry);
- }
- void TestNotebook::testBundleNotebookFactoryNewNotebook()
- {
- auto nbFactory = m_nbServer->getItem("bundle.vnotex");
- NotebookParameters para;
- para.m_name = "test_notebook";
- para.m_description = "notebook description";
- para.m_rootFolderPath = getTestFolderPath();
- para.m_notebookBackend = m_backendServer->getItem("local.vnotex")
- ->createNotebookBackend(para.m_rootFolderPath);
- para.m_versionController = m_vcServer->getItem("dummy.vnotex")->createVersionController();
- para.m_notebookConfigMgr = m_ncmServer->getItem("vx.vnotex")->createNotebookConfigMgr(para.m_notebookBackend);
- auto notebook = nbFactory->newNotebook(para);
- // Verify the notebook is created.
- QVERIFY(QDir(para.m_rootFolderPath).exists());
- auto configMgr = dynamic_cast<BundleNotebookConfigMgr *>(para.m_notebookConfigMgr.data());
- const auto notebookConfigFolder = PathUtils::concatenateFilePath(para.m_rootFolderPath,
- configMgr->getConfigFolderName());
- const auto notebookConfigPath = PathUtils::concatenateFilePath(notebookConfigFolder,
- configMgr->getConfigName());
- QVERIFY(QFileInfo::exists(notebookConfigPath));
- }
- QString TestNotebook::getTestFolderPath() const
- {
- return m_testDir->path();
- }
- QTEST_MAIN(tests::TestNotebook)
|