1from PyObjCTools.TestSupport import *
2
3from Foundation import *
4
5try:
6    unicode
7except NameError:
8    unicode = str
9
10class TestNSNetServicesHelper (NSObject):
11    def netServiceBrowser_didFindDomain_moreComing_(self, a, b, c): pass
12    def netServiceBrowser_didFindService_moreComing_(self, a, b, c): pass
13    def netServiceBrowser_didRemoveDomain_moreComing_(self, a, b, c): pass
14    def netServiceBrowser_didRemoveService_moreComing_(self, a, b, c): pass
15
16
17class TestNSNetservices (TestCase):
18    def testConstants(self):
19
20        self.assertIsInstance(NSNetServicesErrorCode, unicode)
21        self.assertIsInstance(NSNetServicesErrorDomain, unicode)
22        self.assertEqual(NSNetServicesUnknownError, -72000)
23        self.assertEqual(NSNetServicesCollisionError, -72001)
24        self.assertEqual(NSNetServicesNotFoundError, -72002)
25        self.assertEqual(NSNetServicesActivityInProgress, -72003)
26        self.assertEqual(NSNetServicesBadArgumentError, -72004)
27        self.assertEqual(NSNetServicesCancelledError, -72005)
28        self.assertEqual(NSNetServicesInvalidError, -72006)
29        self.assertEqual(NSNetServicesTimeoutError, -72007)
30        self.assertEqual(NSNetServiceNoAutoRename, 1)
31
32    def testOutput(self):
33        o = NSNetService.alloc().init()
34
35        m = o.getInputStream_outputStream_.__metadata__()
36        self.assertEqual(m['retval']['type'], b'Z')
37        self.assertEqual(m['arguments'][2]['type'], b'o^@')
38        self.assertEqual(m['arguments'][3]['type'], b'o^@')
39
40    def testMethods(self):
41        self.assertResultIsBOOL(NSNetService.getInputStream_outputStream_)
42        self.assertArgIsOut(NSNetService.getInputStream_outputStream_, 0)
43        self.assertArgIsOut(NSNetService.getInputStream_outputStream_, 1)
44        self.assertResultIsBOOL(NSNetService.setTXTRecordData_)
45
46        self.assertArgIsBOOL(TestNSNetServicesHelper.netServiceBrowser_didFindDomain_moreComing_, 2)
47        self.assertArgIsBOOL(TestNSNetServicesHelper.netServiceBrowser_didFindService_moreComing_, 2)
48        self.assertArgIsBOOL(TestNSNetServicesHelper.netServiceBrowser_didRemoveDomain_moreComing_, 2)
49        self.assertArgIsBOOL(TestNSNetServicesHelper.netServiceBrowser_didRemoveService_moreComing_, 2)
50
51if __name__ == "__main__":
52    main()
53