1 package com.atlassian.plugins.rest.common.validation;
2
3 import com.atlassian.sal.api.message.I18nResolver;
4 import org.junit.Before;
5 import org.junit.Ignore;
6 import org.junit.Test;
7
8 import javax.validation.MessageInterpolator;
9 import javax.validation.metadata.ConstraintDescriptor;
10
11 import java.util.Collections;
12
13 import static org.junit.Assert.assertEquals;
14 import static org.mockito.Mockito.mock;
15 import static org.mockito.Mockito.when;
16
17 public class SalMessageInterpolatorTest {
18 private I18nResolver resolver;
19 private SalMessageInterpolator salMessageInterpolator;
20 private MessageInterpolator.Context context;
21
22 @Before
23 public void setUp() {
24 resolver = mock(I18nResolver.class);
25 salMessageInterpolator = new SalMessageInterpolator(resolver);
26 context = mock(MessageInterpolator.Context.class);
27 }
28
29 @Test
30 public void testInterpolate() {
31 when(resolver.getText("foo")).thenReturn("bar");
32 assertEquals("bar", salMessageInterpolator.interpolate("foo", context));
33 }
34
35 @Test
36 public void testInterpolateMissing() {
37 when(resolver.getText("foo")).thenReturn(null);
38 assertEquals("foo", salMessageInterpolator.interpolate("foo", context));
39 }
40
41 @Test
42 @Ignore("Enable once SAL is moved to 2.1 and we can interpolate with a map of arguments")
43 public void testInterpolateWithParams() {
44 when(resolver.getText("foo")).thenReturn("bar");
45
46 ConstraintDescriptor constraintDescriptor = mock(ConstraintDescriptor.class);
47 when(constraintDescriptor.getAttributes()).thenReturn(Collections.singletonMap("foo", "bar"));
48 when(context.getConstraintDescriptor()).thenReturn(constraintDescriptor);
49 assertEquals("name: bar", salMessageInterpolator.interpolate("name: {foo}", context));
50 }
51
52 }