Mirki, ile u Was kosztuje wymiana opon i skąd jesteście? Bo z sezonu na sezon jest coraz drożej. Z letnich na zimowe płaciłam 120, a teraz z zimowych na letnie 130 - obwarzanek warszawski.
#wulkanizacja #opony #wymiana
#wulkanizacja #opony #wymiana
@test
void whenUserExist_DeleteUser() {
User user = userBuilder.buildById(1).build();
userSaver.save(user);
delete.deleteUserById(1);
assertThat(userChecker.userExist(1)).isFalse();
}
userSaver.save(user);
, to nie stanowi to problemu? Czy jakoś inaczej to zrobić?UserSaver
wygląda tak:@Component
public class UserSaver {
@autowired
private UserDAO userDAO;
@Transactional
public void save(User user) {
int userId = userDAO.save(user);
user.getRoles().forEach(role -> userDAO.assignRoleToUser(userId, role.getId()));
}
}
@Component
public class SessionChecker {
private final DataSource dataSource;
public SessionChecker(DataSource dataSource) {
this.dataSource = dataSource;
}
public boolean checkExistence(String sessionId) {
try {
String query = "SELECT COUNT(*) FROM sessions WHERE session_id = ?";
try (Connection connection = dataSource.getConnection();
PreparedStatement statement = connection.prepareStatement(query)) {
statement.setString(1, sessionId);
ResultSet resultSet = statement.executeQuery();
return resultSet.next() && resultSet.getInt(1) > 0;
}
} catch (SQLException e) {
private boolean checkExistence(String query, PreparedStatement statement)
. Wtedy każda z publicznych metodcheckExistence(String query, Consumer<PreparedStatement> propertySetter) {
try (Connection connection = dataSource.getConnection();
PreparedStatement statement = connection.prepareStatement(query)) {
propertySetter.accept(statement);
ResultSet resultSet = statement.executeQuery();
return resultSet.next() && resultSet.getInt(1) > 0;
} catch (SQLException e) {
throw new RuntimeException("Error during checking existence: " + e.getMessage(), e);
}
public boolean userHasActiveSession(int userId) {
String query = "SELECT COUNT(*) FROM sessions WHERE user_id = ?";
return checkExistence(query, st -> st.setInt(1, userId));
}
public boolean sessionExist(String sessionId)
@test
void whenUserExist_DeleteUserSessions() {
delete.deleteUserById(1);
assertThat(sessionChecker.hasActiveSession(1)).isFalse();
}
@test
void whenUserExist_DeleteUserSessions() {
int userId = 1;
delete.deleteUserById(1);
assertThat(sessionChecker.hasActiveSession(userId)).isFalse();
}
@test
void whenUserExist_DeleteUserSessions() {
int userId = 1;
delete.deleteUserById(userId);
assertThat(sessionChecker.hasActiveSession(userId)).isFalse();
}
Po 3 jak używasz zmiennej to wrzucasz jej wartość i do argumentów metody usuwania sesji i jej sprawdzania.
@test
void whenUserDeleted_SecondDeletionReturnNotFound() throws Exception {
Integer userId = idFetcher.fetchByUsername("Mark");
Cookie sessionId = auth.loginAdminUser();
mockMvc.perform(delete("/api/v1/users/" + userId).cookie(sessionId))
.andExpect(status().isOk());
mockMvc.perform(delete("/api/v1/users/" + userId).cookie(sessionId))
.andExpect(status().isNotFound());
}
mockMvc.perform(delete("/api/v1/users/" + userId).cookie(sessionId))
.andExpect(status().isOk());
@test
void whenUserIsAdmin_SuccessDeletionReturnStatusOk() throws Exception {
Integer userId = idFetcher.fetchByUsername("Mark");
Cookie sessionId = auth.loginAdminUser();
mockMvc.perform(delete("/api/v1/users/" + userId).cookie(sessionId))
.andExpect(status().isOk());
}
@test
void whenUserDeleted_SecondDeletionReturnNotFound() throws Exception {
Integer userId = idFetcher.fetchByUsername("Mark");
Cookie sessionId = auth.loginAdminUser();
mockMvc.perform(delete("/api/v1/users/" + userId).cookie(sessionId))
.andExpect(status().isOk());
mockMvc.perform(delete("/api/v1/users/" + userId).cookie(sessionId))
.andExpect(status().isNotFound());
}
@test
void whenLogoutSuccess_DeleteSession() throws Exception {
Cookie sessionCookie = logoutHelper.loginAndGetCookie();
String sessionId = tokenGenerator.generateHashedToken(sessionCookie.getValue());
mockMvc.perform(post("/api/v1/users/logout").cookie(sessionCookie))
.andExpect(status().isOk());
assertThat(session.sessionExist(sessionId)).isFalse();
}
@test
void whenLogoutSuccess_DeleteSession() throws Exception {
Cookie sessionCookie = logoutHelper.loginAndGetCookie();
String sessionId = tokenGenerator.generateHashedToken(sessionCookie.getValue());
assertThat(session.sessionExist(sessionId)).isTrue();
mockMvc.perform(post("/api/v1/users/logout").cookie(sessionCookie))
.andExpect(status().isOk());
assertThat(session.sessionExist(sessionId)).isFalse();
}
Wykop.pl
#pytanie #dzieci #rozowepaski #niebieskiepaski