001    /**
002     * Copyright 2005-2014 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     */
016    package org.kuali.rice.krad.messages;
017    
018    import org.junit.Test;
019    
020    import java.util.ArrayList;
021    import java.util.Collection;
022    
023    import static org.junit.Assert.*;
024    
025    /**
026     * Test cases for {@link MessageServiceImpl}
027     *
028     * @author Kuali Rice Team (rice.collab@kuali.org)
029     */
030    public class MessageServiceImplTest {
031    
032        /**
033         * Test that list of messages are being correctly merged, messages of same
034         * type should not be overridden
035         */
036        @Test
037        public void testMergeMessages() {
038            Collection<Message> messages1 = new ArrayList<Message>();
039            Collection<Message> messages2 = new ArrayList<Message>();
040    
041            MessageBuilder builder = MessageBuilder.create("Default", "All", "Test Message");
042    
043            Message message1 = builder.build();
044    
045            builder.setKey("Test Message 2");
046            Message message2 = builder.build();
047    
048            builder.setComponentCode("TestView");
049            Message message3 = builder.build();
050    
051            builder.setNamespaceCode("KR-SAP");
052            Message message4 = builder.build();
053    
054            Message message5 = builder.build();
055    
056            messages1.add(message1);
057            messages1.add(message2);
058            messages1.add(message4);
059    
060            messages2.add(message1);
061            messages2.add(message3);
062            messages2.add(message4);
063            messages2.add(message5);
064    
065            MessageServiceImpl messageServiceImpl = new MessageServiceImpl();
066            messageServiceImpl.mergeMessages(messages1, messages2);
067    
068            assertEquals("Merged map is not correct size", 5, messages1.size());
069    
070        }
071    
072        public static class MessageBuilder {
073            private String namespaceCode;
074            private String componentCode;
075            private String key;
076            private String locale;
077            private String description;
078            private String text;
079    
080            public MessageBuilder(String namespaceCode, String componentCode, String key) {
081                setNamespaceCode(namespaceCode);
082                setComponentCode(componentCode);
083                setKey(key);
084            }
085    
086            public static MessageBuilder create(String namespaceCode, String componentCode, String key) {
087                return new MessageBuilder(namespaceCode, componentCode, key);
088            }
089    
090            public Message build() {
091                Message message = new Message();
092    
093                message.setNamespaceCode(getNamespaceCode());
094                message.setComponentCode(getComponentCode());
095                message.setKey(getKey());
096                message.setText(getText());
097                message.setDescription(getDescription());
098                message.setLocale(getLocale());
099    
100                return message;
101            }
102    
103            public String getNamespaceCode() {
104                return namespaceCode;
105            }
106    
107            public void setNamespaceCode(String namespaceCode) {
108                this.namespaceCode = namespaceCode;
109            }
110    
111            public String getComponentCode() {
112                return componentCode;
113            }
114    
115            public void setComponentCode(String componentCode) {
116                this.componentCode = componentCode;
117            }
118    
119            public String getKey() {
120                return key;
121            }
122    
123            public void setKey(String key) {
124                this.key = key;
125            }
126    
127            public String getLocale() {
128                return locale;
129            }
130    
131            public void setLocale(String locale) {
132                this.locale = locale;
133            }
134    
135            public String getDescription() {
136                return description;
137            }
138    
139            public void setDescription(String description) {
140                this.description = description;
141            }
142    
143            public String getText() {
144                return text;
145            }
146    
147            public void setText(String text) {
148                this.text = text;
149            }
150        }
151    }