summaryrefslogtreecommitdiff
path: root/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetMediaClockTimerSpec.m
blob: 721ba0b8691124335a77116cf0b23427aca0cc9f (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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
//
//  SDLSetMediaClockTimerSpec.m
//  SmartDeviceLink


#import <Foundation/Foundation.h>

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

#import "SDLRPCParameterNames.h"
#import "SDLRPCFunctionNames.h"
#import "SDLSetMediaClockTimer.h"
#import "SDLStartTime.h"
#import "SDLUpdateMode.h"


QuickSpecBegin(SDLSetMediaClockTimerSpec)

describe(@"SetMediaClocktimer Spec", ^ {
    __block NSTimeInterval testTime1Interval = 32887;
    __block NSTimeInterval testTime2Interval = 3723;
    __block SDLStartTime *time1 = [[SDLStartTime alloc] initWithHours:9 minutes:8 seconds:7];
    __block SDLStartTime *time2 = [[SDLStartTime alloc] initWithHours:1 minutes:2 seconds:3];
    __block SDLUpdateMode testUpdateMode = SDLUpdateModeCountUp;
    __block SDLAudioStreamingIndicator testIndicator = SDLAudioStreamingIndicatorPlayPause;

    describe(@"when initialized", ^{
        it(@"should properly initialize with initWithDictionary:", ^{
            NSDictionary *dict = @{SDLRPCParameterNameRequest:
                                       @{SDLRPCParameterNameParameters:
                                             @{SDLRPCParameterNameStartTime:time1,
                                               SDLRPCParameterNameEndTime:time2,
                                               SDLRPCParameterNameUpdateMode:testUpdateMode,
                                               SDLRPCParameterNameAudioStreamingIndicator:testIndicator
                                             },
                                         SDLRPCParameterNameOperationName:SDLRPCFunctionNameSetMediaClockTimer}
            };
            SDLSetMediaClockTimer *testRequest = [[SDLSetMediaClockTimer alloc] initWithDictionary:dict];

            expect(testRequest.startTime).to(equal(time1));
            expect(testRequest.endTime).to(equal(time2));
            expect(testRequest.updateMode).to(equal(testUpdateMode));
            expect(testRequest.audioStreamingIndicator).to(equal(testIndicator));
        });

        it(@"should properly initialize with init", ^{
            SDLSetMediaClockTimer* testRequest = [[SDLSetMediaClockTimer alloc] init];

            expect(testRequest.startTime).to(beNil());
            expect(testRequest.endTime).to(beNil());
            expect(testRequest.updateMode).to(beNil());
            expect(testRequest.audioStreamingIndicator).to(beNil());
        });

        it(@"should properly initialize with countUpWithStartTimeInterval:endTimeInterval:playPauseIndicator:", ^{
            SDLSetMediaClockTimer *testRequest = [SDLSetMediaClockTimer countUpFromStartTimeInterval:testTime1Interval toEndTimeInterval:testTime2Interval playPauseIndicator:testIndicator];

            expect(testRequest.startTime).to(equal(time1));
            expect(testRequest.endTime).to(equal(time2));
            expect(testRequest.updateMode).to(equal(SDLUpdateModeCountUp));
            expect(testRequest.audioStreamingIndicator).to(equal(testIndicator));
        });

        it(@"should properly initialize with countUpWithStartTime:endTime:playPauseIndicator:", ^{
            SDLSetMediaClockTimer *testRequest = [SDLSetMediaClockTimer countUpFromStartTime:time1 toEndTime:time2 playPauseIndicator:testIndicator];

            expect(testRequest.startTime).to(equal(time1));
            expect(testRequest.endTime).to(equal(time2));
            expect(testRequest.updateMode).to(equal(SDLUpdateModeCountUp));
            expect(testRequest.audioStreamingIndicator).to(equal(testIndicator));
        });

        it(@"should properly initialize with countUpWithStartTimeInterval:endTimeInterval:playPauseIndicator:", ^{
            SDLSetMediaClockTimer *testRequest = [SDLSetMediaClockTimer countDownFromStartTimeInterval:testTime1Interval toEndTimeInterval:testTime2Interval playPauseIndicator:testIndicator];

            expect(testRequest.startTime).to(equal(time1));
            expect(testRequest.endTime).to(equal(time2));
            expect(testRequest.updateMode).to(equal(SDLUpdateModeCountDown));
            expect(testRequest.audioStreamingIndicator).to(equal(testIndicator));
        });

        it(@"should properly initialize with countDownWithStartTime:endTime:playPauseIndicator:", ^{
            SDLSetMediaClockTimer *testRequest = [SDLSetMediaClockTimer countDownFromStartTime:time1 toEndTime:time2 playPauseIndicator:testIndicator];

            expect(testRequest.startTime).to(equal(time1));
            expect(testRequest.endTime).to(equal(time2));
            expect(testRequest.updateMode).to(equal(SDLUpdateModeCountDown));
            expect(testRequest.audioStreamingIndicator).to(equal(testIndicator));
        });

        it(@"should properly initialize with pauseWithPlayPauseIndicator", ^{
            SDLSetMediaClockTimer *testRequest = [SDLSetMediaClockTimer pauseWithPlayPauseIndicator:testIndicator];

            expect(testRequest.startTime).to(beNil());
            expect(testRequest.endTime).to(beNil());
            expect(testRequest.updateMode).to(equal(SDLUpdateModePause));
            expect(testRequest.audioStreamingIndicator).to(equal(testIndicator));
        });

        it(@"should properly initialize with updatePauseWithNewStartTimeInterval:endTimeInterval:playPauseIndicator:", ^{
            SDLSetMediaClockTimer *testRequest = [SDLSetMediaClockTimer updatePauseWithNewStartTimeInterval:testTime1Interval endTimeInterval:testTime2Interval playPauseIndicator:testIndicator];

            expect(testRequest.startTime).to(equal(time1));
            expect(testRequest.endTime).to(equal(time2));
            expect(testRequest.updateMode).to(equal(SDLUpdateModePause));
            expect(testRequest.audioStreamingIndicator).to(equal(testIndicator));
        });

        it(@"should properly initialize with updatePauseWithNewStartTime:endTime:playPauseIndicator:", ^{
            SDLSetMediaClockTimer *testRequest = [SDLSetMediaClockTimer updatePauseWithNewStartTime:time1 endTime:time2 playPauseIndicator:testIndicator];

            expect(testRequest.startTime).to(equal(time1));
            expect(testRequest.endTime).to(equal(time2));
            expect(testRequest.updateMode).to(equal(SDLUpdateModePause));
            expect(testRequest.audioStreamingIndicator).to(equal(testIndicator));
        });

        it(@"should properly initialize with resumeWithPlayPauseIndicator:", ^{
            SDLSetMediaClockTimer *testRequest = [SDLSetMediaClockTimer resumeWithPlayPauseIndicator:testIndicator];

            expect(testRequest.startTime).to(beNil());
            expect(testRequest.endTime).to(beNil());
            expect(testRequest.updateMode).to(equal(SDLUpdateModeResume));
            expect(testRequest.audioStreamingIndicator).to(equal(testIndicator));
        });

        it(@"should properly initialize with clearWithPlayPauseIndicator:", ^{
            SDLSetMediaClockTimer *testRequest = [SDLSetMediaClockTimer clearWithPlayPauseIndicator:testIndicator];

            expect(testRequest.startTime).to(beNil());
            expect(testRequest.endTime).to(beNil());
            expect(testRequest.updateMode).to(equal(SDLUpdateModeClear));
            expect(testRequest.audioStreamingIndicator).to(equal(testIndicator));
        });

        it(@"should properly initialize with initWithUpdateMode:startTime:endTime:playPauseIndicator:", ^{
            SDLSetMediaClockTimer *testRequest = [[SDLSetMediaClockTimer alloc] initWithUpdateMode:testUpdateMode startTime:time1 endTime:time2 playPauseIndicator:testIndicator];

            expect(testRequest.startTime).to(equal(time1));
            expect(testRequest.endTime).to(equal(time2));
            expect(testRequest.updateMode).to(equal(testUpdateMode));
            expect(testRequest.audioStreamingIndicator).to(equal(testIndicator));
        });
    });

    it(@"Should set and get correctly", ^ {
        SDLSetMediaClockTimer* testRequest = [[SDLSetMediaClockTimer alloc] init];
        
        testRequest.startTime = time1;
        testRequest.endTime = time2;
        testRequest.updateMode = SDLUpdateModeCountUp;
        testRequest.audioStreamingIndicator = SDLAudioStreamingIndicatorPlayPause;
        
        expect(testRequest.startTime).to(equal(time1));
        expect(testRequest.endTime).to(equal(time2));
        expect(testRequest.updateMode).to(equal(SDLUpdateModeCountUp));
        expect(testRequest.audioStreamingIndicator).to(equal(SDLAudioStreamingIndicatorPlayPause));
    });
});

QuickSpecEnd