summaryrefslogtreecommitdiff
path: root/SmartDeviceLink-iOS/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLLanguageSpec.m
blob: 1c3ec06e0622e912d097e7abd96a5959796727ed (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
//
//  SDLLanguageSpec.m
//  SmartDeviceLink


#import <Foundation/Foundation.h>

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

#import "SDLLanguage.h"

QuickSpecBegin(SDLLanguageSpec)

describe(@"Individual Enum Value Tests", ^ {
    it(@"Should match internal values", ^ {
        expect([SDLLanguage EN_US].value).to(equal(@"EN-US"));
        expect([SDLLanguage ES_MX].value).to(equal(@"ES-MX"));
        expect([SDLLanguage FR_CA].value).to(equal(@"FR-CA"));
        expect([SDLLanguage DE_DE].value).to(equal(@"DE-DE"));
        expect([SDLLanguage ES_ES].value).to(equal(@"ES-ES"));
        expect([SDLLanguage EN_GB].value).to(equal(@"EN-GB"));
        expect([SDLLanguage RU_RU].value).to(equal(@"RU-RU"));
        expect([SDLLanguage TR_TR].value).to(equal(@"TR-TR"));
        expect([SDLLanguage PL_PL].value).to(equal(@"PL-PL"));
        expect([SDLLanguage FR_FR].value).to(equal(@"FR-FR"));
        expect([SDLLanguage IT_IT].value).to(equal(@"IT-IT"));
        expect([SDLLanguage SV_SE].value).to(equal(@"SV-SE"));
        expect([SDLLanguage PT_PT].value).to(equal(@"PT-PT"));
        expect([SDLLanguage NL_NL].value).to(equal(@"NL-NL"));
        expect([SDLLanguage EN_AU].value).to(equal(@"EN-AU"));
        expect([SDLLanguage ZH_CN].value).to(equal(@"ZH-CN"));
        expect([SDLLanguage ZH_TW].value).to(equal(@"ZH-TW"));
        expect([SDLLanguage JA_JP].value).to(equal(@"JA-JP"));
        expect([SDLLanguage AR_SA].value).to(equal(@"AR-SA"));
        expect([SDLLanguage KO_KR].value).to(equal(@"KO-KR"));
        expect([SDLLanguage PT_BR].value).to(equal(@"PT-BR"));
        expect([SDLLanguage CS_CZ].value).to(equal(@"CS-CZ"));
        expect([SDLLanguage DA_DK].value).to(equal(@"DA-DK"));
        expect([SDLLanguage NO_NO].value).to(equal(@"NO-NO"));
    });
});
describe(@"ValueOf Tests", ^ {
    it(@"Should return correct values when valid", ^ {
        expect([SDLLanguage valueOf:@"EN-US"]).to(equal([SDLLanguage EN_US]));
        expect([SDLLanguage valueOf:@"ES-MX"]).to(equal([SDLLanguage ES_MX]));
        expect([SDLLanguage valueOf:@"FR-CA"]).to(equal([SDLLanguage FR_CA]));
        expect([SDLLanguage valueOf:@"DE-DE"]).to(equal([SDLLanguage DE_DE]));
        expect([SDLLanguage valueOf:@"ES-ES"]).to(equal([SDLLanguage ES_ES]));
        expect([SDLLanguage valueOf:@"EN-GB"]).to(equal([SDLLanguage EN_GB]));
        expect([SDLLanguage valueOf:@"RU-RU"]).to(equal([SDLLanguage RU_RU]));
        expect([SDLLanguage valueOf:@"TR-TR"]).to(equal([SDLLanguage TR_TR]));
        expect([SDLLanguage valueOf:@"PL-PL"]).to(equal([SDLLanguage PL_PL]));
        expect([SDLLanguage valueOf:@"FR-FR"]).to(equal([SDLLanguage FR_FR]));
        expect([SDLLanguage valueOf:@"IT-IT"]).to(equal([SDLLanguage IT_IT]));
        expect([SDLLanguage valueOf:@"SV-SE"]).to(equal([SDLLanguage SV_SE]));
        expect([SDLLanguage valueOf:@"PT-PT"]).to(equal([SDLLanguage PT_PT]));
        expect([SDLLanguage valueOf:@"NL-NL"]).to(equal([SDLLanguage NL_NL]));
        expect([SDLLanguage valueOf:@"EN-AU"]).to(equal([SDLLanguage EN_AU]));
        expect([SDLLanguage valueOf:@"ZH-CN"]).to(equal([SDLLanguage ZH_CN]));
        expect([SDLLanguage valueOf:@"ZH-TW"]).to(equal([SDLLanguage ZH_TW]));
        expect([SDLLanguage valueOf:@"JA-JP"]).to(equal([SDLLanguage JA_JP]));
        expect([SDLLanguage valueOf:@"AR-SA"]).to(equal([SDLLanguage AR_SA]));
        expect([SDLLanguage valueOf:@"KO-KR"]).to(equal([SDLLanguage KO_KR]));
        expect([SDLLanguage valueOf:@"PT-BR"]).to(equal([SDLLanguage PT_BR]));
        expect([SDLLanguage valueOf:@"CS-CZ"]).to(equal([SDLLanguage CS_CZ]));
        expect([SDLLanguage valueOf:@"DA-DK"]).to(equal([SDLLanguage DA_DK]));
        expect([SDLLanguage valueOf:@"NO-NO"]).to(equal([SDLLanguage NO_NO]));
    });
    
    it(@"Should return nil when invalid", ^ {
        expect([SDLLanguage valueOf:nil]).to(beNil());
        expect([SDLLanguage valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil());
    });
});
describe(@"Value List Tests", ^ {
    NSArray* storedValues = [SDLLanguage values];
    __block NSArray* definedValues;
    beforeSuite(^ {
        definedValues = [@[[SDLLanguage EN_US],
                        [SDLLanguage ES_MX],
                        [SDLLanguage FR_CA],
                        [SDLLanguage DE_DE],
                        [SDLLanguage ES_ES],
                        [SDLLanguage EN_GB],
                        [SDLLanguage RU_RU],
                        [SDLLanguage TR_TR],
                        [SDLLanguage PL_PL],
                        [SDLLanguage FR_FR],
                        [SDLLanguage IT_IT],
                        [SDLLanguage SV_SE],
                        [SDLLanguage PT_PT],
                        [SDLLanguage NL_NL],
                        [SDLLanguage EN_AU],
                        [SDLLanguage ZH_CN],
                        [SDLLanguage ZH_TW],
                        [SDLLanguage JA_JP],
                        [SDLLanguage AR_SA],
                        [SDLLanguage KO_KR],
                        [SDLLanguage PT_BR],
                        [SDLLanguage CS_CZ],
                        [SDLLanguage DA_DK],
                        [SDLLanguage NO_NO]] copy];
    });
    
    it(@"Should contain all defined enum values", ^ {
        for (int i = 0; i < definedValues.count; i++) {
            expect(storedValues).to(contain(definedValues[i]));
        }
    });
    
    it(@"Should contain only defined enum values", ^ {
        for (int i = 0; i < storedValues.count; i++) {
            expect(definedValues).to(contain(storedValues[i]));
        }
    });
});

QuickSpecEnd