summaryrefslogtreecommitdiff
path: root/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMediaServiceDataSpec.m
blob: 9530a179dcf8672f2e336f5113eb1292e136404e (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
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
//
//  SDLMediaServiceDataSpec.m
//  SmartDeviceLinkTests
//
//  Created by Nicole on 2/8/19.
//  Copyright © 2019 smartdevicelink. All rights reserved.
//

#import <Quick/Quick.h>
#import <Nimble/Nimble.h>

#import "SDLMediaServiceData.h"
#import "SDLMediaType.h"
#import "SDLNames.h"

QuickSpecBegin(SDLMediaServiceDataSpec)

describe(@"Getter/Setter Tests", ^{
    __block SDLMediaType testMediaType = nil;
    __block NSString *testMediaTitle = nil;
    __block NSString *testMediaArtist = nil;
    __block NSString *testMediaAlbum = nil;
    __block NSString *testPlaylistName = nil;
    __block BOOL testIsExplicit = nil;
    __block int testTrackPlaybackProgress = 45;
    __block int testTrackPlaybackDuration = 3;
    __block int testQueuePlaybackProgress = 21;
    __block int testQueuePlaybackDuration = 5;
    __block int testQueueCurrentTrackNumber = 3;
    __block int testQueueTotalTrackCount = 56;

    beforeEach(^{
        testMediaType = SDLMediaTypePodcast;
        testMediaTitle = @"testMediaTitle";
        testMediaArtist = @"testMediaArtist";
        testMediaAlbum = @"testMediaAlbum";
        testPlaylistName = @"testPlaylistName";
        testIsExplicit = true;
    });

    it(@"Should set and get correctly", ^{
        SDLMediaServiceData *testStruct = [[SDLMediaServiceData alloc] init];
        testStruct.mediaType = testMediaType;
        testStruct.mediaTitle = testMediaTitle;
        testStruct.mediaArtist = testMediaArtist;
        testStruct.mediaAlbum = testMediaAlbum;
        testStruct.playlistName = testPlaylistName;
        testStruct.isExplicit = @(testIsExplicit);
        testStruct.trackPlaybackProgress = @(testTrackPlaybackProgress);
        testStruct.trackPlaybackDuration = @(testTrackPlaybackDuration);
        testStruct.queuePlaybackProgess = @(testQueuePlaybackProgress);
        testStruct.queuePlaybackDuration = @(testQueuePlaybackDuration);
        testStruct.queueCurrentTrackNumber = @(testQueueCurrentTrackNumber);
        testStruct.queueTotalTrackCount = @(testQueueTotalTrackCount);

        expect(testStruct.mediaType).to(equal(testMediaType));
        expect(testStruct.mediaTitle).to(equal(testMediaTitle));
        expect(testStruct.mediaArtist).to(equal(testMediaArtist));
        expect(testStruct.mediaAlbum).to(equal(testMediaAlbum));
        expect(testStruct.playlistName).to(equal(testPlaylistName));
        expect(testStruct.isExplicit).to(equal(testIsExplicit));
        expect(testStruct.trackPlaybackProgress).to(equal(testTrackPlaybackProgress));
        expect(testStruct.trackPlaybackDuration).to(equal(testTrackPlaybackDuration));
        expect(testStruct.queuePlaybackProgess).to(equal(testQueuePlaybackProgress));
        expect(testStruct.queuePlaybackDuration).to(equal(testQueuePlaybackDuration));
        expect(testStruct.queueCurrentTrackNumber).to(equal(testQueueCurrentTrackNumber));
        expect(testStruct.queueTotalTrackCount).to(equal(testQueueTotalTrackCount));
    });

    it(@"Should get correctly when initialized with a dictionary", ^{
        NSDictionary *dict = @{SDLNameMediaType:testMediaType,
                               SDLNameMediaTitle:testMediaTitle,
                               SDLNameMediaArtist:testMediaArtist,
                               SDLNameMediaAlbum:testMediaAlbum,
                               SDLNamePlaylistName:testPlaylistName,
                               SDLNameIsExplicit:@(testIsExplicit),
                               SDLNameTrackPlaybackProgress:@(testTrackPlaybackProgress),
                               SDLNameTrackPlaybackDuration:@(testTrackPlaybackDuration),
                               SDLNameQueuePlaybackProgess:@(testQueuePlaybackProgress),
                               SDLNameQueuePlaybackDuration:@(testQueuePlaybackDuration),
                               SDLNameQueueCurrentTrackNumber:@(testQueueCurrentTrackNumber),
                               SDLNameQueueTotalTrackCount:@(testQueueTotalTrackCount)
                               };
        SDLMediaServiceData *testStruct = [[SDLMediaServiceData alloc] initWithDictionary:dict];

        expect(testStruct.mediaType).to(equal(testMediaType));
        expect(testStruct.mediaTitle).to(equal(testMediaTitle));
        expect(testStruct.mediaArtist).to(equal(testMediaArtist));
        expect(testStruct.mediaAlbum).to(equal(testMediaAlbum));
        expect(testStruct.playlistName).to(equal(testPlaylistName));
        expect(testStruct.isExplicit).to(equal(testIsExplicit));
        expect(testStruct.trackPlaybackProgress).to(equal(testTrackPlaybackProgress));
        expect(testStruct.trackPlaybackDuration).to(equal(testTrackPlaybackDuration));
        expect(testStruct.queuePlaybackProgess).to(equal(testQueuePlaybackProgress));
        expect(testStruct.queuePlaybackDuration).to(equal(testQueuePlaybackDuration));
        expect(testStruct.queueCurrentTrackNumber).to(equal(testQueueCurrentTrackNumber));
        expect(testStruct.queueTotalTrackCount).to(equal(testQueueTotalTrackCount));
    });

    it(@"Should return nil if not set", ^{
        SDLMediaServiceData *testStruct = [[SDLMediaServiceData alloc] init];

        expect(testStruct.mediaType).to(beNil());
        expect(testStruct.mediaTitle).to(beNil());
        expect(testStruct.mediaArtist).to(beNil());
        expect(testStruct.mediaAlbum).to(beNil());
        expect(testStruct.playlistName).to(beNil());
        expect(testStruct.isExplicit).to(beNil());
        expect(testStruct.trackPlaybackProgress).to(beNil());
        expect(testStruct.trackPlaybackDuration).to(beNil());
        expect(testStruct.queuePlaybackProgess).to(beNil());
        expect(testStruct.queuePlaybackDuration).to(beNil());
        expect(testStruct.queueCurrentTrackNumber).to(beNil());
        expect(testStruct.queueTotalTrackCount).to(beNil());
    });
});

QuickSpecEnd