@Test
public void testUser() throws Exception {
getPopulator().populateTestUsers();
doc("getting user info");
UserUI u1 = expectSuccess(getBuilder(getAPIv2().path("user/" + SampleDataPopulator.DEFAULT_USER_NAME)).buildGet(), UserUI.class);
assertEquals(SampleDataPopulator.DEFAULT_USER_NAME, u1.getUserName().getName());
assertEquals(SampleDataPopulator.DEFAULT_USER_NAME + "@dremio.test", u1.getUser().getEmail());
expectError(CLIENT_ERROR, getBuilder(getAPIv2().path("user/dac")).buildGet(), GenericErrorMessage.class);
doc("Creating user");
final User userConfig2 = SimpleUser.newBuilder().setUserName(testUserName("test11")).setEmail("test11@dremio.test").setFirstName("test11")
.setLastName("dremio").build();
expectSuccess(getBuilder(getAPIv2().path("user/" + testUserName("test11"))).buildPut(Entity.json(new UserForm(userConfig2, testPassword("test11")))), UserUI.class);
UserUI u2 = expectSuccess(getBuilder(getAPIv2().path("user/" + testUserName("test11"))).buildGet(), UserUI.class);
assertEquals(userConfig2.getEmail(), u2.getUser().getEmail());
assertEquals(userConfig2.getFirstName(), u2.getUser().getFirstName());
assertEquals(userConfig2.getLastName(), u2.getUser().getLastName());
doc("updating user");
User uc3 = SimpleUser.newBuilder(u2.getUser()).setEmail("test2@dremio.test").build();
expectSuccess(getBuilder(getAPIv2().path("user/" + testUserName("test11"))).buildPost(Entity.json(new UserForm(uc3))), UserUI.class);
UserUI u3 = expectSuccess(getBuilder(getAPIv2().path("user/" + testUserName("test11"))).buildGet(), UserUI.class);
assertEquals(u3.getUser().getEmail(), uc3.getEmail());
assertEquals(u3.getUser().getFirstName(), uc3.getFirstName());
assertEquals(u3.getUser().getLastName(), uc3.getLastName());
doc("deleting user");
expectSuccess(getBuilder(getAPIv2().path("user/" + testUserName("test11")).queryParam("version", u3.getUser().getVersion())).buildDelete());
expectError(CLIENT_ERROR, getBuilder(getAPIv2().path("user/" + testUserName("test11"))).buildGet(), GenericErrorMessage.class);
}