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        ok, val, range, err = formatter.getObjectValue_forString_range_error_(
11                None, "2008/10/12", NSRange(0, 10), None)
12        self.failUnless(ok)
13        self.failUnless(isinstance(val, NSDate))
14        self.failUnless(range == NSRange(0, 10))
15        self.failUnless(err is None)
16
17        self.failUnlessResultIsBOOL(NSDateFormatter.getObjectValue_forString_range_error_)
18        self.failUnlessArgIsInOut(NSDateFormatter.getObjectValue_forString_range_error_, 2)
19        self.failUnlessArgIsOut(NSDateFormatter.getObjectValue_forString_range_error_, 3)
20
21    def testConstants(self):
22        self.assertEquals(NSDateFormatterNoStyle, kCFDateFormatterNoStyle)
23        self.assertEquals(NSDateFormatterShortStyle, kCFDateFormatterShortStyle)
24        self.assertEquals(NSDateFormatterMediumStyle, kCFDateFormatterMediumStyle)
25        self.assertEquals(NSDateFormatterLongStyle, kCFDateFormatterLongStyle)
26        self.assertEquals(NSDateFormatterFullStyle, kCFDateFormatterFullStyle)
27
28        self.assertEquals(NSDateFormatterBehaviorDefault, 0)
29        self.assertEquals(NSDateFormatterBehavior10_0, 1000)
30        self.assertEquals(NSDateFormatterBehavior10_4, 1040)
31
32    def testMethods(self):
33        self.failUnlessResultIsBOOL(NSDateFormatter.generatesCalendarDates)
34        self.failUnlessArgIsBOOL(NSDateFormatter.setGeneratesCalendarDates_, 0)
35        self.failUnlessResultIsBOOL(NSDateFormatter.isLenient)
36        self.failUnlessArgIsBOOL(NSDateFormatter.setLenient_, 0)
37        self.failUnlessResultIsBOOL(NSDateFormatter.isLenient)
38        self.failUnlessArgIsBOOL(NSDateFormatter.initWithDateFormat_allowNaturalLanguage_, 1)
39        self.failUnlessResultIsBOOL(NSDateFormatter.allowsNaturalLanguage)
40
41
42if __name__ == "__main__":
43    main()
44