summaryrefslogtreecommitdiffstats
path: root/src/test/librarytest.h
blob: c7e99c645c3358957b952b90175add32854ef002 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#pragma once

#include <memory>

#include "test/mixxxtest.h"

#include "database/mixxxdb.h"
#include "library/trackcollection.h"
#include "library/trackcollectionmanager.h"
#include "util/db/dbconnectionpooler.h"
#include "util/db/dbconnectionpooled.h"

class LibraryTest : public MixxxTest {
  protected:
    LibraryTest();
    ~LibraryTest() override = default;

    const mixxx::DbConnectionPoolPtr& dbConnectionPool() const {
        return m_dbConnectionPooler;
    }

    QSqlDatabase dbConnection() const {
        return mixxx::DbConnectionPooled(m_dbConnectionPooler);
    }

    TrackCollectionManager* trackCollections() const {
        return m_pTrackCollectionManager.get();
    }

    TrackCollection* internalCollection() const {
        return trackCollections()->internalCollection();
    }

    TrackPointer getOrAddTrackByLocation(
            const QString& trackLocation) const;

  private:
    const MixxxDb m_mixxxDb;
    const mixxx::DbConnectionPooler m_dbConnectionPooler;
    const std::unique_ptr<TrackCollectionManager> m_pTrackCollectionManager;
    ControlObject m_keyNotationCO;
};