1
2from PyObjCTools.TestSupport import *
3from AppKit import *
4
5class TestNSRuleEditorHelper (NSObject):
6    def ruleEditor_numberOfChildrenForCriterion_withRowType_(self, ed, cr, rt): return 1
7    def ruleEditor_child_forCriterion_withRowType_(self, ed, ch, cr, rt): return 1
8    def ruleEditor_displayValueForCriterion_inRow_(self, ed, cr, rw): return 1
9    def ruleEditor_predicatePartsForCriterion_withDisplayValue_inRow_(self, ed, cr, dv, rw): return 1
10
11class TestNSRuleEditor (TestCase):
12    def testConstants(self):
13        self.failUnlessEqual(NSRuleEditorNestingModeSingle, 0)
14        self.failUnlessEqual(NSRuleEditorNestingModeList, 1)
15        self.failUnlessEqual(NSRuleEditorNestingModeCompound, 2)
16        self.failUnlessEqual(NSRuleEditorNestingModeSimple, 3)
17
18        self.failUnlessEqual(NSRuleEditorRowTypeSimple, 0)
19        self.failUnlessEqual(NSRuleEditorRowTypeCompound, 1)
20
21        self.failUnlessIsInstance(NSRuleEditorPredicateLeftExpression, unicode)
22        self.failUnlessIsInstance(NSRuleEditorPredicateRightExpression, unicode)
23        self.failUnlessIsInstance(NSRuleEditorPredicateComparisonModifier, unicode)
24        self.failUnlessIsInstance(NSRuleEditorPredicateOptions, unicode)
25        self.failUnlessIsInstance(NSRuleEditorPredicateOperatorType, unicode)
26        self.failUnlessIsInstance(NSRuleEditorPredicateCustomSelector, unicode)
27
28        self.failUnlessIsInstance(NSRuleEditorPredicateCompoundType, unicode)
29        self.failUnlessIsInstance(NSRuleEditorRowsDidChangeNotification, unicode)
30
31    def testMethods(self):
32        self.failUnlessResultIsBOOL(NSRuleEditor.isEditable)
33        self.failUnlessArgIsBOOL(NSRuleEditor.setEditable_, 0)
34        self.failUnlessResultIsBOOL(NSRuleEditor.canRemoveAllRows)
35        self.failUnlessArgIsBOOL(NSRuleEditor.setCanRemoveAllRows_, 0)
36        self.failUnlessArgIsBOOL(NSRuleEditor.insertRowAtIndex_withType_asSubrowOfRow_animate_, 3)
37        self.failUnlessArgIsBOOL(NSRuleEditor.removeRowsAtIndexes_includeSubrows_, 1)
38        self.failUnlessArgIsBOOL(NSRuleEditor.selectRowIndexes_byExtendingSelection_, 1)
39
40    def testProtocols(self):
41        self.failUnlessResultHasType(TestNSRuleEditorHelper.ruleEditor_numberOfChildrenForCriterion_withRowType_, objc._C_NSInteger)
42        self.failUnlessArgHasType(TestNSRuleEditorHelper.ruleEditor_numberOfChildrenForCriterion_withRowType_, 2, objc._C_NSUInteger)
43        self.failUnlessArgHasType(TestNSRuleEditorHelper.ruleEditor_child_forCriterion_withRowType_, 1, objc._C_NSInteger)
44        self.failUnlessArgHasType(TestNSRuleEditorHelper.ruleEditor_child_forCriterion_withRowType_, 3, objc._C_NSUInteger)
45        self.failUnlessArgHasType(TestNSRuleEditorHelper.ruleEditor_displayValueForCriterion_inRow_, 2, objc._C_NSInteger)
46        self.failUnlessArgHasType(TestNSRuleEditorHelper.ruleEditor_predicatePartsForCriterion_withDisplayValue_inRow_, 3, objc._C_NSInteger)
47
48
49if __name__ == "__main__":
50    main()
51