1from PyObjCTools.TestSupport import *
2
3from Foundation import *
4
5class TestNSDateFormatter (TestCase):
6    def testOutput(self):
7        formatter = NSDateFormatter.alloc().init()
8        formatter.setDateFormat_("yyyy/mm/dd")
9
10        self.assertResultIsBOOL(NSDateFormatter.getObjectValue_forString_range_error_)
11        self.assertArgIsOut(NSDateFormatter.getObjectValue_forString_range_error_, 0)
12        self.assertArgIsInOut(NSDateFormatter.getObjectValue_forString_range_error_, 2)
13        self.assertArgIsOut(NSDateFormatter.getObjectValue_forString_range_error_, 3)
14        ok, val, range, err = formatter.getObjectValue_forString_range_error_(
15                None, "2008/10/12", NSRange(0, 10), None)
16        self.assertTrue(ok)
17        self.assertIsInstance(val, NSDate)
18        self.assertEqual(range , NSRange(0, 10))
19        self.assertIs(err, None)
20        self.assertResultIsBOOL(NSDateFormatter.getObjectValue_forString_range_error_)
21        self.assertArgIsInOut(NSDateFormatter.getObjectValue_forString_range_error_, 2)
22        self.assertArgIsOut(NSDateFormatter.getObjectValue_forString_range_error_, 3)
23
24    def testConstants(self):
25        self.assertEqual(NSDateFormatterNoStyle, kCFDateFormatterNoStyle)
26        self.assertEqual(NSDateFormatterShortStyle, kCFDateFormatterShortStyle)
27        self.assertEqual(NSDateFormatterMediumStyle, kCFDateFormatterMediumStyle)
28        self.assertEqual(NSDateFormatterLongStyle, kCFDateFormatterLongStyle)
29        self.assertEqual(NSDateFormatterFullStyle, kCFDateFormatterFullStyle)
30
31        self.assertEqual(NSDateFormatterBehaviorDefault, 0)
32        self.assertEqual(NSDateFormatterBehavior10_0, 1000)
33        self.assertEqual(NSDateFormatterBehavior10_4, 1040)
34
35    def testMethods(self):
36        self.assertResultIsBOOL(NSDateFormatter.generatesCalendarDates)
37        self.assertArgIsBOOL(NSDateFormatter.setGeneratesCalendarDates_, 0)
38        self.assertResultIsBOOL(NSDateFormatter.isLenient)
39        self.assertArgIsBOOL(NSDateFormatter.setLenient_, 0)
40        self.assertResultIsBOOL(NSDateFormatter.isLenient)
41        self.assertArgIsBOOL(NSDateFormatter.initWithDateFormat_allowNaturalLanguage_, 1)
42        self.assertResultIsBOOL(NSDateFormatter.allowsNaturalLanguage)
43
44    @min_os_level('10.6')
45    def testMethods10_6(self):
46        self.assertResultIsBOOL(NSDateFormatter.doesRelativeDateFormatting)
47        self.assertArgIsBOOL(NSDateFormatter.setDoesRelativeDateFormatting_, 0)
48
49
50
51if __name__ == "__main__":
52    main()
53