@Test public void delete_by_user() { UserDto user = db.users().insertUser(); db.users().insertUserSetting(user); db.users().insertUserSetting(user); UserDto anotherUser = db.users().insertUser(); db.users().insertUserSetting(anotherUser); underTest.deleteByUser(db.getSession(), user); assertThat(underTest.selectByUser(db.getSession(), user)).isEmpty(); assertThat(underTest.selectByUser(db.getSession(), anotherUser)).hasSize(1); } }
@Test public void deactivate_user_deletes_his_user_settings() { logInAsSystemAdministrator(); UserDto user = db.users().insertUser(); db.users().insertUserSetting(user); db.users().insertUserSetting(user); UserDto anotherUser = db.users().insertUser(); db.users().insertUserSetting(anotherUser); deactivate(user.getLogin()); assertThat(db.getDbClient().userPropertiesDao().selectByUser(dbSession, user)).isEmpty(); assertThat(db.getDbClient().userPropertiesDao().selectByUser(dbSession, anotherUser)).hasSize(1); }
@Test public void select_by_user() { UserDto user = db.users().insertUser(); UserPropertyDto userSetting1 = db.users().insertUserSetting(user); UserPropertyDto userSetting2 = db.users().insertUserSetting(user); UserDto anotherUser = db.users().insertUser(); UserPropertyDto userSetting3 = db.users().insertUserSetting(anotherUser); List<UserPropertyDto> results = underTest.selectByUser(db.getSession(), user); assertThat(results) .extracting(UserPropertyDto::getUuid) .containsExactlyInAnyOrder(userSetting1.getUuid(), userSetting2.getUuid()) .doesNotContain(userSetting3.getUuid()); }
@Test public void return_user_settings() { UserDto user = db.users().insertUser(); db.users().insertUserSetting(user, userSetting -> userSetting .setKey("notifications.readDate") .setValue("1234")); db.users().insertUserSetting(user, userSetting -> userSetting .setKey("notifications.optOut") .setValue("true")); db.commit(); userSession.logIn(user); CurrentWsResponse response = call(); assertThat(response.getSettingsList()) .extracting(CurrentWsResponse.Setting::getKey, CurrentWsResponse.Setting::getValue) .containsExactlyInAnyOrder( tuple("notifications.optOut", "true"), tuple("notifications.readDate", "1234")); }
@Test public void update_existing_setting() { UserDto user = db.users().insertUser(); db.users().insertUserSetting(user, userSetting -> userSetting .setKey("notifications.optOut") .setValue("false")); userSession.logIn(user); ws.newRequest() .setParam("key", "notifications.optOut") .setParam("value", "true") .execute(); assertThat(db.getDbClient().userPropertiesDao().selectByUser(db.getSession(), user)) .extracting(UserPropertyDto::getKey, UserPropertyDto::getValue) .containsExactlyInAnyOrder(tuple("notifications.optOut", "true")); }
@Test public void keep_existing_setting_when_setting_new_one() { UserDto user = db.users().insertUser(); db.users().insertUserSetting(user, userSetting -> userSetting .setKey("notifications.readDate") .setValue("1234")); userSession.logIn(user); ws.newRequest() .setParam("key", "notifications.optOut") .setParam("value", "true") .execute(); assertThat(db.getDbClient().userPropertiesDao().selectByUser(db.getSession(), user)) .extracting(UserPropertyDto::getKey, UserPropertyDto::getValue) .containsExactlyInAnyOrder( tuple("notifications.readDate", "1234"), tuple("notifications.optOut", "true")); }