@@ -116,6 +116,46 @@ void main() {
116
116
ProcessManager : () => mockProcessManager,
117
117
});
118
118
119
+ testUsingContext ('xcodeMajorVersion returns major version' , () {
120
+ when (mockProcessManager.runSync (< String > ['/usr/bin/xcodebuild' , '-version' ]))
121
+ .thenReturn (new ProcessResult (1 , 0 , 'Xcode 8.3.3\n Build version 8E3004b' , '' ));
122
+ expect (xcode.xcodeMajorVersion, 8 );
123
+ }, overrides: < Type , Generator > {
124
+ ProcessManager : () => mockProcessManager,
125
+ });
126
+
127
+ testUsingContext ('xcodeMajorVersion is null when version has unexpected format' , () {
128
+ when (mockProcessManager.runSync (< String > ['/usr/bin/xcodebuild' , '-version' ]))
129
+ .thenReturn (new ProcessResult (1 , 0 , 'Xcode Ultra5000\n Build version 8E3004b' , '' ));
130
+ expect (xcode.xcodeMajorVersion, isNull);
131
+ }, overrides: < Type , Generator > {
132
+ ProcessManager : () => mockProcessManager,
133
+ });
134
+
135
+ testUsingContext ('xcodeMinorVersion returns minor version' , () {
136
+ when (mockProcessManager.runSync (< String > ['/usr/bin/xcodebuild' , '-version' ]))
137
+ .thenReturn (new ProcessResult (1 , 0 , 'Xcode 8.3.3\n Build version 8E3004b' , '' ));
138
+ expect (xcode.xcodeMinorVersion, 3 );
139
+ }, overrides: < Type , Generator > {
140
+ ProcessManager : () => mockProcessManager,
141
+ });
142
+
143
+ testUsingContext ('xcodeMinorVersion returns 0 when minor version is unspecified' , () {
144
+ when (mockProcessManager.runSync (< String > ['/usr/bin/xcodebuild' , '-version' ]))
145
+ .thenReturn (new ProcessResult (1 , 0 , 'Xcode 8\n Build version 8E3004b' , '' ));
146
+ expect (xcode.xcodeMinorVersion, 0 );
147
+ }, overrides: < Type , Generator > {
148
+ ProcessManager : () => mockProcessManager,
149
+ });
150
+
151
+ testUsingContext ('xcodeMajorVersion is null when version has unexpected format' , () {
152
+ when (mockProcessManager.runSync (< String > ['/usr/bin/xcodebuild' , '-version' ]))
153
+ .thenReturn (new ProcessResult (1 , 0 , 'Xcode Ultra5000\n Build version 8E3004b' , '' ));
154
+ expect (xcode.xcodeMinorVersion, isNull);
155
+ }, overrides: < Type , Generator > {
156
+ ProcessManager : () => mockProcessManager,
157
+ });
158
+
119
159
testUsingContext ('eulaSigned is false when clang is not installed' , () {
120
160
when (mockProcessManager.runSync (< String > ['/usr/bin/xcrun' , 'clang' ]))
121
161
.thenThrow (const ProcessException ('/usr/bin/xcrun' , const < String > ['clang' ]));
0 commit comments