package org.simbasecurity.dwclient.gateway.resources.users;
import static org.fest.assertions.api.Assertions.*;
import java.io.IOException;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
import org.simbasecurity.dwclient.gateway.representations.SimbaUserR;
import org.simbasecurity.dwclient.test.rule.SimbaDatabaseRule;
import org.simbasecurity.dwclient.test.rule.SimbaManagerRule;
import com.yammer.dropwizard.config.ConfigurationException;
public class SimbaUserServiceTest {
@Rule
public ExpectedException expectedException = ExpectedException.none();
@Rule
public SimbaManagerRule simbaManagerRule = SimbaManagerRule.create();
@Rule
public SimbaDatabaseRule simbaDatabaseRule = SimbaDatabaseRule.create();
private SimbaUserService simbaUserService;
@Before
public void setUp() throws IOException, ConfigurationException {
simbaUserService = new SimbaUserService(simbaManagerRule.getSimbaWebResource());
simbaDatabaseRule.deleteAllUsersExcept(simbaManagerRule.getAppUser());
}
@Test
public void findUserByName_WhenNoUserFound_ThrowsIllegalArgumentException() throws Exception {
String username = "user";
expectedException.expect(IllegalArgumentException.class);
expectedException.expectMessage(String.format("No user found for name %s.", username));
simbaUserService.findUserByName(getValidSSOToken(), username);
}
@Test
public void findUserByName_WhenUserFound_ReturnsSimbaUser() throws Exception {
String username = "bruce@wayneindustries.com";
simbaDatabaseRule.createUser(username);
SimbaUserR simbaUser = simbaUserService.findUserByName(getValidSSOToken(), username);
assertThat(simbaUser.getUserName()).isEqualTo(username);
}
private String getValidSSOToken() {
return simbaManagerRule.getSsoToken().get();
}
}