@@ -92,4 +92,28 @@ def test_does_not_search_from_different_rootdn
92
92
assert_equal results , [ "entry1" ]
93
93
end
94
94
95
+ def test_searches_domain_controllers_from_differet_domains
96
+ server1 = { :ncname => [ "DC=ghe,DC=local" ] , :dnsroot => [ "ghe.local" ] }
97
+ server2 = { :ncname => [ "DC=ad,DC=ghe,DC=local" ] , :dnsroot => [ "ad.ghe.local" ] }
98
+ server3 = { :ncname => [ "DC=eng,DC=ad,DC=ghe,DC=local" ] , :dnsroot => [ "eng.ad.ghe.local" ] }
99
+ mock_domains = [ server1 , server2 , server3 ]
100
+
101
+ mock_domain_controller = Object . new
102
+ @connection . expects ( :search ) . returns ( mock_domains )
103
+
104
+ mock_dc_connection1 = Object . new
105
+ mock_dc_connection2 = Object . new
106
+ mock_dc_connection3 = Object . new
107
+
108
+ Net ::LDAP . expects ( :new ) . returns ( mock_dc_connection1 )
109
+ Net ::LDAP . expects ( :new ) . returns ( mock_dc_connection2 )
110
+ Net ::LDAP . expects ( :new ) . returns ( mock_dc_connection3 )
111
+
112
+ mock_dc_connection1 . expects ( :search ) . once
113
+ mock_dc_connection2 . expects ( :search ) . once
114
+ mock_dc_connection3 . expects ( :search ) . once
115
+
116
+ base = "CN=user1,CN=Users,DC=eng,DC=ad,DC=ghe,DC=local"
117
+ @forest_search . search ( { :base => base } )
118
+ end
95
119
end
0 commit comments