View Javadoc

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  }