aboutsummaryrefslogtreecommitdiff
path: root/Foundation/GTMNSAppleEventDescriptor+HandlerTest.m
blob: a137d8a8c9414a6f00a14b203d26635c128b015b (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
//
//  GTNNSAppleEventDescriptor+HandlerTest.m
//
//  Copyright 2008 Google Inc.
//
//  Licensed under the Apache License, Version 2.0 (the "License"); you may not
//  use this file except in compliance with the License.  You may obtain a copy
//  of the License at
// 
//  http://www.apache.org/licenses/LICENSE-2.0
// 
//  Unless required by applicable law or agreed to in writing, software
//  distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
//  WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
//  License for the specific language governing permissions and limitations under
//  the License.
//

#import <Carbon/Carbon.h>
#import "GTMSenTestCase.h"
#import "GTMNSAppleEventDescriptor+Foundation.h"
#import "GTMNSAppleEventDescriptor+Handler.h"
#import "GTMUnitTestDevLog.h"

@interface GTMNSAppleEventDescriptor_HandlerTest : GTMTestCase
@end

@implementation GTMNSAppleEventDescriptor_HandlerTest
// Most of this gets tested by the NSAppleScript+Handler tests.
- (void)testPositionalHandlers {
  NSAppleEventDescriptor *desc 
    = [NSAppleEventDescriptor gtm_descriptorWithPositionalHandler:nil
                                                  parametersArray:[NSArray array]];
  STAssertNil(desc, @"got a desc?");
  
  desc = [NSAppleEventDescriptor gtm_descriptorWithPositionalHandler:@"happy"
                                                parametersDescriptor:nil];
  STAssertNotNil(desc, @"didn't get a desc?");

  desc = [NSAppleEventDescriptor gtm_descriptorWithLabeledHandler:nil
                                                           labels:nil
                                                       parameters:nil
                                                            count:0];
  STAssertNil(desc, @"got a desc?");
  
  AEKeyword keys[] = { keyASPrepositionGiven };
  NSString *string = @"foo";
  [GTMUnitTestDevLog expectString:@"Must pass in dictionary for "
   "keyASPrepositionGiven (got foo)"];
  desc = [NSAppleEventDescriptor gtm_descriptorWithLabeledHandler:@"happy"
                                                           labels:keys
                                                       parameters:&string
                                                            count:1];
  STAssertNil(desc, @"got a desc?");

  NSDictionary *dict = [NSDictionary dictionaryWithObject:@"bart" 
                                                   forKey:[NSNumber numberWithInt:4]];
  [GTMUnitTestDevLog expectString:@"Keys must be of type NSString or "
   "GTMFourCharCode: 4"];
  [GTMUnitTestDevLog expectPattern:@"Dictionary for keyASPrepositionGiven must "
   "be a user record field dictionary \\(got .*"];
  desc = [NSAppleEventDescriptor gtm_descriptorWithLabeledHandler:@"happy"
                                                           labels:keys
                                                       parameters:&dict
                                                            count:1];
  STAssertNil(desc, @"got a desc?");

}

@end