File: medialibrarytest.h

package info (click to toggle)
plasma-mediacenter 5.7.5-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 2,268 kB
  • sloc: cpp: 8,057; makefile: 5; sh: 4
file content (77 lines) | stat: -rw-r--r-- 3,033 bytes parent folder | download | duplicates (2)
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
/***********************************************************************************
 *   Copyright 2014 Shantanu Tushar <shantanu@kde.org>                             *
 *                                                                                 *
 *                                                                                 *
 *   This library is free software; you can redistribute it and/or                 *
 *   modify it under the terms of the GNU Lesser General Public                    *
 *   License as published by the Free Software Foundation; either                  *
 *   version 2.1 of the License, or (at your option) any later version.            *
 *                                                                                 *
 *   This library is distributed in the hope that it will be useful,               *
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of                *
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU             *
 *   Lesser General Public License for more details.                               *
 *                                                                                 *
 *   You should have received a copy of the GNU Lesser General Public              *
 *   License along with this library.  If not, see <http://www.gnu.org/licenses/>. *
 ***********************************************************************************/

#ifndef MEDIALIBRARYTEST_H
#define MEDIALIBRARYTEST_H

#include <QObject>
#include <QMetaType>
#include <QSharedPointer>
#include <qtest.h>
#include <QSignalSpy>

#include "mediavalidator.h"

#include "medialibrary.h"
#include "mediacenter.h"

#include "pmcmedia.h"
#include "pmcalbum.h"
#include "pmcartist.h"

class MediaLibraryTest : public QObject
{
    Q_OBJECT
private slots:
    void initTestCase();
    void cleanupTestCase();

    void init();
    void cleanup();

    void addsNewMediaAndItsMetadata();

    void shouldEmitUpdatedForMediaInsteadOfNewMediaWhenDataUpdated();

    void shouldNotEmitUpdatedWhenNothingUpdated();

    void shouldEmitUpdatedWhenAlbumOrArtistChanged();

    void shouldNotAddMediaForNonExistentFile();

    void shouldCleanupEntriesForNonExistentMedia();

    void shouldAddDifferentAlbumsWhenArtistsAreDifferent();

    void shouldReturnCorrectAlbumsAndArtists();

    void shouldEmitMediaRemovedWhenMediaIsPresentAndRemoved();

    void shouldNotEmitMediaRemovedWhenRemoveMediaIsCalledAndMediaNotPresent();

private:
    QHash< int, QVariant > createTestMediaData() const;
    QHash< int, QVariant > createTestMediaDataWithAlbumArtist(const QString& albumName = "album", const QString& artistName = "artist", const QString& albumArtist = "albumartist") const;
    QHash< int, QVariant > createTestMediaDataWithUrl(const QString& url="/foo/bar") const;
};

Q_DECLARE_METATYPE(QList<QSharedPointer<PmcMedia> >)
Q_DECLARE_METATYPE(QList<QSharedPointer<PmcAlbum> >)
Q_DECLARE_METATYPE(QList<QSharedPointer<PmcArtist> >)

#endif // MEDIALIBRARYTEST_H