У меня есть этот класс с 2 открытыми статическими методами, оба они обновляют базу данных (firestore). В этой ситуации, как лучше написать для него модульный тест? Макетировать локальную базу данных пожарного магазина?
Я немного искал, но не могу найти примеров того, как это сделать. кто-нибудь может помочь с этим? Спасибо!
public class LikeThisRestaurant {
// When current user likes a restaurant
public static void like(String restaurantId) {
// Update the restaurant in db (+1 totalRestaurantLikes))
RestaurantHelper.getRestaurant(restaurantId).addOnCompleteListener(task -> {
if (task.getResult() != null) {
Restaurant restaurant = task.getResult().toObject(Restaurant.class);
if (restaurant != null)
RestaurantHelper.updateTotalLikes(restaurantId, restaurant.getTotalLikes() + 1);
}
});
// Add this restaurant to the list of likes of current user
UserHelper.getUser(FirebaseAuth.getInstance().getUid()).addOnCompleteListener(task -> {
if (task.getResult() != null) {
User currentUser = task.getResult().toObject(User.class);
if (currentUser != null) {
List<String> restaurantsLiked = currentUser.getRestaurantsLiked();
restaurantsLiked.add(restaurantId);
UserHelper.updateRestaurantLikes(FirebaseAuth.getInstance().getUid(), restaurantsLiked);
}
}
});
}
// When current user unlikes a restaurant
public static void unlike(String restaurantId) {
// Update the restaurant in db (-1 totalRestaurantLikes))
RestaurantHelper.getRestaurant(restaurantId).addOnCompleteListener(task -> {
if (task.getResult() != null) {
Restaurant restaurant = task.getResult().toObject(Restaurant.class);
if (restaurant != null)
RestaurantHelper.updateTotalLikes(restaurantId, restaurant.getTotalLikes() - 1);
}
});
// Remove this restaurant from the list of likes of current user
UserHelper.getUser(FirebaseAuth.getInstance().getUid()).addOnCompleteListener(task -> {
if (task.getResult() != null) {
User currentUser = task.getResult().toObject(User.class);
if (currentUser != null) {
List<String> restaurantsLiked = currentUser.getRestaurantsLiked();
restaurantsLiked.remove(restaurantId);
UserHelper.updateRestaurantLikes(FirebaseAuth.getInstance().getUid(), restaurantsLiked);
}
}
});
}
}