/*
* Copyright 2015 Hewlett-Packard Development Company, L.P.
* Licensed under the MIT License (the "License"); you may not use this file except in compliance with the License.
*/
package com.hp.autonomy.frontend.find.idol.test;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.hp.autonomy.frontend.configuration.authentication.CommunityPrincipal;
import com.hp.autonomy.frontend.find.core.savedsearches.EmbeddableIndex;
import com.hp.autonomy.frontend.find.core.test.MvcIntegrationTestUtils;
import com.hp.autonomy.searchcomponents.idol.test.IdolTestUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.core.env.Environment;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.stereotype.Component;
import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder;
import java.util.Collection;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@Component
@ConditionalOnProperty(value = "mock.configuration", matchIfMissing = true)
public class IdolMvcIntegrationTestUtils extends MvcIntegrationTestUtils {
private final Environment environment;
@Autowired
public IdolMvcIntegrationTestUtils(final Environment environment) {
this.environment = environment;
}
@Override
public String[] getDatabases() {
final String testDatabase = environment.getProperty(IdolTestUtils.TEST_DATABASE_PROPERTY, IdolTestUtils.DEFAULT_TEST_DATABASE);
return new String[]{testDatabase};
}
@Override
public String getDatabasesAsJson() throws JsonProcessingException {
return new ObjectMapper().writeValueAsString(getDatabases());
}
@Override
public EmbeddableIndex getEmbeddableIndex() {
return new EmbeddableIndex(getDatabases()[0], null);
}
@Override
protected Authentication createAuthentication(final Collection<GrantedAuthority> authorities) {
final CommunityPrincipal communityPrincipal = new CommunityPrincipal(1L, "user", null);
final UsernamePasswordAuthenticationToken authentication = mock(UsernamePasswordAuthenticationToken.class);
when(authentication.isAuthenticated()).thenReturn(true);
when(authentication.getPrincipal()).thenReturn(communityPrincipal);
when(authentication.getAuthorities()).thenReturn(authorities);
when(authentication.getName()).thenReturn("user");
return authentication;
}
@Override
protected void addFieldRequestParams(final MockHttpServletRequestBuilder requestBuilder) {
}
}