X-Git-Url: https://scripts.mit.edu/gitweb/autoinstallsdev/mediawiki.git/blobdiff_plain/d57edfddd6c01f0ed6b1a84019649cdf6cddd5f8..83d871ca0d985c6d586b323bf96161afb510ebf6:/tests/phpunit/includes/libs/DnsSrvDiscovererTest.php diff --git a/tests/phpunit/includes/libs/DnsSrvDiscovererTest.php b/tests/phpunit/includes/libs/DnsSrvDiscovererTest.php new file mode 100644 index 00000000..cfc2d91b --- /dev/null +++ b/tests/phpunit/includes/libs/DnsSrvDiscovererTest.php @@ -0,0 +1,139 @@ +pickServer( $params ); + + $this->assertEquals( $expected, $record ); + } + + public static function provideRecords() { + return [ + [ + [ // record list + [ + 'target' => 'conf03.example.net', + 'port' => 'SRV', + 'pri' => 0, + 'weight' => 1, + ], + [ + 'target' => 'conf02.example.net', + 'port' => 'SRV', + 'pri' => 1, + 'weight' => 1, + ], + [ + 'target' => 'conf01.example.net', + 'port' => 'SRV', + 'pri' => 2, + 'weight' => 1, + ], + ], // selected record + [ + 'target' => 'conf03.example.net', + 'port' => 'SRV', + 'pri' => 0, + 'weight' => 1, + ] + ], + [ + [ // record list + [ + 'target' => 'conf03or2.example.net', + 'port' => 'SRV', + 'pri' => 0, + 'weight' => 1, + ], + [ + 'target' => 'conf03or2.example.net', + 'port' => 'SRV', + 'pri' => 0, + 'weight' => 1, + ], + [ + 'target' => 'conf01.example.net', + 'port' => 'SRV', + 'pri' => 2, + 'weight' => 1, + ], + [ + 'target' => 'conf04.example.net', + 'port' => 'SRV', + 'pri' => 2, + 'weight' => 1, + ], + [ + 'target' => 'conf05.example.net', + 'port' => 'SRV', + 'pri' => 3, + 'weight' => 1, + ], + ], // selected record + [ + 'target' => 'conf03or2.example.net', + 'port' => 'SRV', + 'pri' => 0, + 'weight' => 1, + ] + ], + ]; + } + + public function testRemoveServer() { + $dsd = new DnsSrvDiscoverer( 'localhost' ); + + $servers = [ + [ + 'target' => 'conf01.example.net', + 'port' => 35, + 'pri' => 2, + 'weight' => 1, + ], + [ + 'target' => 'conf04.example.net', + 'port' => 74, + 'pri' => 2, + 'weight' => 1, + ], + [ + 'target' => 'conf05.example.net', + 'port' => 77, + 'pri' => 3, + 'weight' => 1, + ], + ]; + $server = $servers[1]; + + $expected = [ + [ + 'target' => 'conf01.example.net', + 'port' => 35, + 'pri' => 2, + 'weight' => 1, + ], + [ + 'target' => 'conf05.example.net', + 'port' => 77, + 'pri' => 3, + 'weight' => 1, + ], + ]; + + $this->assertEquals( + $expected, + $dsd->removeServer( $server, $servers ), + "Correct server removed" + ); + $this->assertEquals( + $expected, + $dsd->removeServer( $server, $servers ), + "Nothing to remove" + ); + } +}