# encoding: utf-8 require File.dirname(__FILE__) + '/../test_helper' class ArcServer::MapServerTest < Test::Unit::TestCase should "raise an error if the required url is not a map server url" do assert_raise(Exception) { ArcServer::MapServer.new('http://not.a.map/server/url') } end context "verifying delegation of actions to the SOAP service" do setup do @mock_soap_service = mock @map_server = ArcServer::MapServer.new( 'http://sampleserver1.arcgisonline.com/ArcGIS/services/Demographics/ESRI_Census_USA/MapServer', :soap_service => @mock_soap_service ) end should "forward get_default_map_name" do @mock_soap_service.expects(:get_default_map_name => nil) @map_server.get_default_map_name end should "forward get_legend_info" do @mock_soap_service.expects(:get_legend_info => nil) @map_server.get_legend_info end end context "verifying delegation of actions to the REST service" do setup do @mock_rest_service = mock @map_server = ArcServer::MapServer.new( 'http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer', :rest_service => @mock_rest_service ) end should "forward get_default_map_name" do @mock_rest_service.expects(:export => nil) @map_server.export end end context "verify delegation of legend image creation to ArcServer::Util::LegendImage" do setup do @map_server = ArcServer::MapServer.new('http://sampleserver1.arcgisonline.com/ArcGIS/services/Demographics/ESRI_Census_USA/MapServer') end should "fail if optional dependency RMagick is not installed" do Object.expects(:const_defined?).with("Magick").returns(false) @map_server.expects(:require).with('RMagick').raises(LoadError) assert_raise(ArcServer::ArcServerError) { @map_server.get_legend_image } end should "forward get_legend_image to LegendImage" do mock_legend_image = mock { expects(:get_image) } ArcServer::Util::LegendImage.expects(:new).with(@map_server).returns(mock_legend_image) @map_server.get_legend_image end end end