001 package org.springframework.richclient.application.support; 002 003 import java.util.HashMap; 004 005 import org.springframework.binding.value.ValueChangeDetector; 006 import org.springframework.binding.value.support.DefaultValueChangeDetector; 007 import org.springframework.context.MessageSource; 008 import org.springframework.context.support.StaticMessageSource; 009 import org.springframework.richclient.application.ServiceNotFoundException; 010 import org.springframework.richclient.image.IconSource; 011 import org.springframework.richclient.test.SpringRichTestCase; 012 import org.springframework.rules.RulesSource; 013 014 /** 015 * Test cases for {@link DefaultApplicationServices} 016 * 017 * @author Larry Streepy 018 * 019 */ 020 public class DefaultApplicationServicesTests extends SpringRichTestCase { 021 022 public void testRegisteredServiceIsReturned() { 023 ValueChangeDetector vcd = new DefaultValueChangeDetector(); 024 getApplicationServices().setValueChangeDetector(vcd); 025 assertSame("Expected same object back", vcd, getApplicationServices().getService(ValueChangeDetector.class)); 026 027 MessageSource msrc = new StaticMessageSource(); 028 getApplicationServices().setMessageSource(msrc); 029 assertSame("Expected same object back", msrc, getApplicationServices().getService(MessageSource.class)); 030 } 031 032 public void testUnknownServiceFails() { 033 try { 034 getApplicationServices().getService(getClass()); 035 fail("Unknown service should have caused an exception"); 036 } catch( ServiceNotFoundException e ) { 037 ; // expected 038 } 039 } 040 041 public void testSetRegistryEntries() { 042 ValueChangeDetector vcd = new DefaultValueChangeDetector(); 043 MessageSource msrc = new StaticMessageSource(); 044 045 HashMap entries = new HashMap(); 046 entries.put("org.springframework.binding.value.ValueChangeDetector", vcd); 047 entries.put("org.springframework.context.MessageSource", msrc); 048 049 getApplicationServices().setRegistryEntries(entries); 050 051 assertSame("Expected same object back", vcd, getApplicationServices().getService(ValueChangeDetector.class)); 052 assertSame("Expected same object back", msrc, getApplicationServices().getService(MessageSource.class)); 053 } 054 055 public void testDefaultServicesImplementInterface() { 056 Object rulesSource = getApplicationServices().getService(RulesSource.class); 057 assertTrue("Returned service must implement service type", rulesSource instanceof RulesSource); 058 059 Object iconSource = getApplicationServices().getService(IconSource.class); 060 assertTrue("Returned service must implement service type", iconSource instanceof IconSource); 061 } 062 }