@Before
  public void setUp() {
    EmailSettings settings = mock(EmailSettings.class);
    when(settings.getServerBaseURL()).thenReturn("http://nemo.sonarsource.org");
    i18n = mock(DefaultI18n.class);
    userIndex = mock(UserIndex.class);
    // returns the login passed in parameter
    when(userIndex.getNullableByLogin(anyString()))
        .thenAnswer(
            new Answer<UserDoc>() {
              @Override
              public UserDoc answer(InvocationOnMock invocationOnMock) throws Throwable {
                return new UserDoc().setName((String) invocationOnMock.getArguments()[0]);
              }
            });
    when(i18n.message(any(Locale.class), eq("severity.BLOCKER"), anyString()))
        .thenReturn("Blocker");
    when(i18n.message(any(Locale.class), eq("severity.CRITICAL"), anyString()))
        .thenReturn("Critical");
    when(i18n.message(any(Locale.class), eq("severity.MAJOR"), anyString())).thenReturn("Major");
    when(i18n.message(any(Locale.class), eq("severity.MINOR"), anyString())).thenReturn("Minor");
    when(i18n.message(any(Locale.class), eq("severity.INFO"), anyString())).thenReturn("Info");

    template = new NewIssuesEmailTemplate(settings, i18n);
  }
  @Test
  public void do_not_assign_default_assignee_when_not_found_in_index() {
    inputIssue.setIsNew(true);
    String wolinski = "wolinski";
    projectSettings.setProperty(CoreProperties.DEFAULT_ISSUE_ASSIGNEE, wolinski);
    when(userIndex.getNullableByLogin(wolinski)).thenReturn(null);

    process();

    assertThat(Iterators.getOnlyElement(outputIssues.traverse()).assignee()).isNull();
    assertThat(logTester.logs())
        .contains(
            String.format(
                "the %s property was set with an unknown login: %s",
                CoreProperties.DEFAULT_ISSUE_ASSIGNEE, wolinski));
  }