DataLoaderTest.java 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. package pl.dmcs;
  2. import org.apache.commons.lang3.tuple.Pair;
  3. import org.junit.jupiter.api.Test;
  4. import org.junit.jupiter.api.io.TempDir;
  5. import java.io.BufferedWriter;
  6. import java.io.File;
  7. import java.io.FileWriter;
  8. import java.io.IOException;
  9. import java.nio.file.Path;
  10. import java.util.Arrays;
  11. import java.util.Collections;
  12. import java.util.List;
  13. import static org.junit.jupiter.api.Assertions.*;
  14. public class DataLoaderTest {
  15. @TempDir
  16. Path tempDir;
  17. private File createTempFileWithData(String userData, List<String> recipients) throws IOException {
  18. File tempFile = tempDir.resolve("testdata.csv").toFile();
  19. try (BufferedWriter writer = new BufferedWriter(new FileWriter(tempFile))) {
  20. writer.write(userData);
  21. writer.write("\n");
  22. for (String recipient : recipients) {
  23. writer.write(recipient);
  24. writer.write("\n");
  25. }
  26. }
  27. return tempFile;
  28. }
  29. private void assertUserData(User expectedUser, List<String> expectedRecipients, Pair<User, List<String>> result) {
  30. User actualUser = result.getLeft();
  31. List<String> actualRecipients = result.getRight();
  32. assertEquals(expectedUser.getFirstName(), actualUser.getFirstName());
  33. assertEquals(expectedUser.getLastName(), actualUser.getLastName());
  34. assertEquals(expectedUser.getEmail(), actualUser.getEmail());
  35. assertEquals(expectedRecipients, actualRecipients);
  36. }
  37. @Test
  38. public void testLoadData() throws IOException {
  39. File tempFile = createTempFileWithData("John,Doe,john.doe@example.com",
  40. Arrays.asList("recipient1@example.com", "recipient2@example.com", "recipient3@example.com"));
  41. User expectedUser = new User("John", "Doe", "john.doe@example.com");
  42. List<String> expectedRecipients = Arrays.asList("recipient1@example.com", "recipient2@example.com", "recipient3@example.com");
  43. Pair<User, List<String>> result = DataLoader.loadData(tempFile.getAbsolutePath());
  44. assertUserData(expectedUser, expectedRecipients, result);
  45. }
  46. @Test
  47. public void testLoadDataEmptyRecipients() throws IOException {
  48. File tempFile = createTempFileWithData("John,Doe,john.doe@example.com", Collections.emptyList());
  49. User expectedUser = new User("John", "Doe", "john.doe@example.com");
  50. List<String> expectedRecipients = Collections.emptyList();
  51. Pair<User, List<String>> result = DataLoader.loadData(tempFile.getAbsolutePath());
  52. assertUserData(expectedUser, expectedRecipients, result);
  53. }
  54. @Test
  55. public void testLoadDataInvalidFile() {
  56. assertThrows(IOException.class, () -> {
  57. DataLoader.loadData("invalid/path/to/file.csv");
  58. });
  59. }
  60. }