/*
* #%L
* Wisdom-Framework
* %%
* Copyright (C) 2013 - 2014 Wisdom Framework
* %%
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* #L%
*/
package org.wisdom.template.thymeleaf.impl;
import org.junit.Test;
import org.thymeleaf.messageresolver.MessageResolution;
import org.wisdom.api.i18n.InternationalizationService;
import java.util.Locale;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
/**
* Check the behavior of the Message Resolver
*/
public class WisdomMessageResolverTest {
private static Locale[] locales = new Locale[] { Locale.getDefault() };
private static Object[] NULL_ARRAY = null;
@Test
public void testMessageWhenNoI18N() {
WisdomMessageResolver resolver = new WisdomMessageResolver();
resolver.i18n = mock(InternationalizationService.class);
MessageResolution resolution = resolver.resolveMessage(null, "welcome", null);
assertThat(resolution).isNull();
}
@Test
public void testMessageWithAI18NButNoMessage() {
WisdomMessageResolver resolver = new WisdomMessageResolver();
resolver.i18n = mock(InternationalizationService.class);
when(resolver.i18n.get(locales, "welcome", NULL_ARRAY)).thenReturn("welcome");
MessageResolution resolution = resolver.resolveMessage(null, "welcome", null);
assertThat(resolution).isNotNull();
assertThat(resolution.getResolvedMessage()).isEqualTo("welcome");
resolution = resolver.resolveMessage(null, "missing", null);
assertThat(resolution).isNull();
}
@Test
public void testMessageWithParameters() {
WisdomMessageResolver resolver = new WisdomMessageResolver();
resolver.i18n = mock(InternationalizationService.class);
when(resolver.i18n.get(locales, "welcome", "wisdom")).thenReturn("welcome wisdom");
when(resolver.i18n.get(locales, "welcome", NULL_ARRAY)).thenReturn("welcome");
MessageResolution resolution = resolver.resolveMessage(null, "welcome", null);
assertThat(resolution).isNotNull();
assertThat(resolution.getResolvedMessage()).isEqualTo("welcome");
resolution = resolver.resolveMessage(null, "welcome", new Object[] {"wisdom"});
assertThat(resolution).isNotNull();
assertThat(resolution.getResolvedMessage()).isEqualTo("welcome wisdom");
}
}