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 {
19 private I18nResolver resolver;
20 private SalMessageInterpolator salMessageInterpolator;
21 private MessageInterpolator.Context context;
22
23 @Before
24 public void setUp()
25 {
26 resolver = mock(I18nResolver.class);
27 salMessageInterpolator = new SalMessageInterpolator(resolver);
28 context = mock(MessageInterpolator.Context.class);
29 }
30
31 @Test
32 public void testInterpolate()
33 {
34 when(resolver.getText("foo")).thenReturn("bar");
35 assertEquals("bar", salMessageInterpolator.interpolate("foo", context));
36 }
37
38 @Test
39 public void testInterpolateMissing()
40 {
41 when(resolver.getText("foo")).thenReturn(null);
42 assertEquals("foo", salMessageInterpolator.interpolate("foo", context));
43 }
44
45 @Test
46 @Ignore("Enable once SAL is moved to 2.1 and we can interpolate with a map of arguments")
47 public void testInterpolateWithParams()
48 {
49 when(resolver.getText("foo")).thenReturn("bar");
50
51 ConstraintDescriptor constraintDescriptor = mock(ConstraintDescriptor.class);
52 when(constraintDescriptor.getAttributes()).thenReturn(Collections.singletonMap("foo", "bar"));
53 when(context.getConstraintDescriptor()).thenReturn(constraintDescriptor);
54 assertEquals("name: bar", salMessageInterpolator.interpolate("name: {foo}", context));
55 }
56
57 }