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 }