001/** 002 * Copyright 2005-2015 The Kuali Foundation 003 * 004 * Licensed under the Educational Community License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.opensource.org/licenses/ecl2.php 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016package org.kuali.rice.krad.uif.util; 017 018import java.util.Collection; 019import java.util.Collections; 020 021import org.kuali.rice.krad.messages.Message; 022import org.kuali.rice.krad.messages.MessageProvider; 023import org.kuali.rice.krad.messages.MessageService; 024import org.kuali.rice.krad.messages.MessageServiceImpl; 025import org.kuali.rice.krad.messages.providers.ResourceMessageProvider; 026 027/** 028 * Provides mock messages for UIF unit tests. 029 * 030 * @author Kuali Rice Team (rice.collab@kuali.org) 031 */ 032public class MockMessageService implements MessageService { 033 034 private MessageService delegate; 035 036 private MessageService getDelegate() { 037 if (delegate != null) { 038 return delegate; 039 } 040 041 ResourceMessageProvider provider = new ResourceMessageProvider(); 042 043 MessageServiceImpl messageServiceDelegate = new MessageServiceImpl(); 044 messageServiceDelegate.setMessageProviders(Collections.<MessageProvider> singletonList(provider)); 045 delegate = messageServiceDelegate; 046 return delegate; 047 } 048 049 /** 050 * @see org.kuali.rice.krad.messages.MessageService#getMessage(java.lang.String, 051 * java.lang.String, java.lang.String) 052 */ 053 @Override 054 public Message getMessage(String namespace, String component, String key) { 055 Message rv = getDelegate().getMessage(namespace, component, key); 056 if (rv != null) { 057 return rv; 058 } 059 060 rv = new Message(); 061 rv.setNamespaceCode(namespace); 062 rv.setComponentCode(component); 063 rv.setKey(key); 064 rv.setText(getMessageText(namespace, component, key)); 065 return rv; 066 } 067 068 /** 069 * @see org.kuali.rice.krad.messages.MessageService#getMessage(java.lang.String, 070 * java.lang.String, java.lang.String, java.lang.String) 071 */ 072 @Override 073 public Message getMessage(String namespace, String component, String key, String locale) { 074 Message rv = getDelegate().getMessage(namespace, component, key, locale); 075 if (rv != null) { 076 return rv; 077 } 078 079 rv = new Message(); 080 rv.setNamespaceCode(namespace); 081 rv.setComponentCode(component); 082 rv.setKey(key); 083 rv.setLocale(locale); 084 rv.setText(namespace + ":" + component + ":" + key + ":" + locale); 085 return rv; 086 } 087 088 /** 089 * @see org.kuali.rice.krad.messages.MessageService#getMessageText(java.lang.String, 090 * java.lang.String, java.lang.String) 091 */ 092 @Override 093 public String getMessageText(String namespace, String component, String key) { 094 String rv = getDelegate().getMessageText(namespace, component, key); 095 if (rv != null) { 096 return rv; 097 } 098 099 return namespace + ":" + component + ":" + key; 100 } 101 102 /** 103 * @see org.kuali.rice.krad.messages.MessageService#getMessageText(java.lang.String, 104 * java.lang.String, java.lang.String, java.lang.String) 105 */ 106 @Override 107 public String getMessageText(String namespace, String component, String key, String locale) { 108 String rv = getDelegate().getMessageText(namespace, component, key, locale); 109 if (rv != null) { 110 return rv; 111 } 112 113 return namespace + ":" + component + ":" + key + ":" + locale; 114 } 115 116 /** 117 * @see org.kuali.rice.krad.messages.MessageService#getMessageText(java.lang.String) 118 */ 119 @Override 120 public String getMessageText(String key) { 121 String rv = getDelegate().getMessageText(key); 122 if (rv != null) { 123 return rv; 124 } 125 126 return key; 127 } 128 129 /** 130 * @see org.kuali.rice.krad.messages.MessageService#getMessageText(java.lang.String, 131 * java.lang.String) 132 */ 133 @Override 134 public String getMessageText(String key, String locale) { 135 String rv = getDelegate().getMessageText(key, locale); 136 if (rv != null) { 137 return rv; 138 } 139 140 return key + ":" + locale; 141 } 142 143 /** 144 * @see org.kuali.rice.krad.messages.MessageService#getAllMessagesForComponent(java.lang.String, 145 * java.lang.String) 146 */ 147 @Override 148 public Collection<Message> getAllMessagesForComponent(String namespace, String component) { 149 Collection<Message> rv = getDelegate().getAllMessagesForComponent(namespace, component); 150 if (rv != null) { 151 return rv; 152 } 153 154 Message rm = new Message(); 155 rm.setNamespaceCode(namespace); 156 rm.setComponentCode(component); 157 rm.setText(namespace + ":" + component); 158 return Collections.singletonList(rm); 159 } 160 161 /** 162 * @see org.kuali.rice.krad.messages.MessageService#getAllMessagesForComponent(java.lang.String, 163 * java.lang.String, java.lang.String) 164 */ 165 @Override 166 public Collection<Message> getAllMessagesForComponent(String namespace, String component, String locale) { 167 Collection<Message> rv = getDelegate().getAllMessagesForComponent(namespace, component, locale); 168 if (rv != null) { 169 return rv; 170 } 171 172 Message rm = new Message(); 173 rm.setNamespaceCode(namespace); 174 rm.setComponentCode(component); 175 rm.setLocale(locale); 176 rm.setText(namespace + ":" + component + ":" + locale); 177 return Collections.singletonList(rm); 178 } 179 180}