package com.constellio.model.entities.records.wrappers;
import static com.constellio.sdk.tests.TestUtils.asList;
import static org.assertj.core.api.Assertions.assertThat;
import java.util.ArrayList;
import java.util.Arrays;
import org.junit.Before;
import org.junit.Test;
import com.constellio.model.services.records.RecordServices;
import com.constellio.sdk.tests.ConstellioTest;
import com.constellio.sdk.tests.setups.Users;
public class UserAcceptanceTest extends ConstellioTest {
Users users = new Users();
RecordServices recordServices;
@Before
public void setUp()
throws Exception {
prepareSystem(withZeCollection().withAllTest(users));
recordServices = getModelLayerFactory().newRecordServices();
}
@Test
public void whenCallingWraperMethodsForConfiguringVisibleColumnsThenOK()
throws Exception {
User admin = users.adminIn(zeCollection);
assertThat(admin.getVisibleTableColumns()).isNull();
assertThat(admin.isVisibleTableColumnsConfiguredFor("zeTable")).isFalse();
assertThat(admin.isDirty()).isFalse();
admin.setVisibleTableColumns("zeTable", asList("column1", "column2"));
assertThat(admin.isDirty()).isTrue();
recordServices.update(admin);
recordServices.refresh(admin);
assertThat(admin.getVisibleTableColumnsFor("zeTable")).containsOnly("column1", "column2");
assertThat(admin.isVisibleTableColumnsConfiguredFor("zeTable")).isTrue();
assertThat(admin.isVisibleTableColumnsConfiguredFor("otherTable")).isFalse();
admin.setVisibleTableColumns("otherTable", new ArrayList<String>());
recordServices.update(admin);
recordServices.refresh(admin);
assertThat(admin.isVisibleTableColumnsConfiguredFor("otherTable")).isFalse();
admin.setVisibleTableColumns("otherTable", null);
recordServices.update(admin);
recordServices.refresh(admin);
assertThat(admin.isVisibleTableColumnsConfiguredFor("otherTable")).isFalse();
}
@Test
public void givenUserThenHavePersonalEmailsMetadata()
throws Exception {
User admin = users.adminIn(zeCollection);
admin.setPersonalEmails(Arrays.asList("admin@gmail.com"));
recordServices.update(admin);
admin = users.adminIn(zeCollection);
assertThat(admin.getPersonalEmails()).isEqualTo(Arrays.asList("admin@gmail.com"));
}
}