1 package io.github.magwas.coder.tests;
2
3 import static org.junit.jupiter.api.Assertions.*;
4 import static org.mockito.Mockito.*;
5
6 import java.util.List;
7
8 import org.junit.jupiter.api.DisplayName;
9 import org.junit.jupiter.api.Test;
10 import org.mockito.InjectMocks;
11
12 import io.github.magwas.coder.ErrorMessages;
13 import io.github.magwas.coder.ProcessedFilesData;
14 import io.github.magwas.coder.XMLFileWriterService;
15 import io.github.magwas.konveyor.testing.TestBase;
16
17 public class XMLFileWriterServiceTest extends TestBase implements XMLFileWriterTestData {
18
19 @InjectMocks
20 private XMLFileWriterService xmlFileWriterService;
21
22 @Test
23 @DisplayName("Write files from XML")
24 void testWriteFilesFromXml() throws Exception {
25 ProcessedFilesData result = xmlFileWriterService.apply(VALID_XML_WITH_FILES);
26 assertIterableEquals(List.of(FILE_NAME_1, FILE_NAME_2), result.modifiedFiles());
27 assertTrue(result.deletedFiles().isEmpty());
28 }
29
30 @Test
31 @DisplayName("Delete files from XML")
32 void testDeleteFilesFromXml() throws Exception {
33 ProcessedFilesData result = xmlFileWriterService.apply(VALID_XML_WITH_DELETIONS);
34 assertIterableEquals(List.of(FILE_NAME_1, FILE_NAME_2), result.deletedFiles());
35 assertTrue(result.modifiedFiles().isEmpty());
36 }
37
38 @Test
39 @DisplayName("Path traversal throws exception")
40 void testPathTraversalThrows() throws Exception {
41 Exception e = assertThrows(RuntimeException.class, () -> xmlFileWriterService.apply(XML_WITH_PATH_TRAVERSAL));
42 assertEquals(ErrorMessages.PATH_TRAVERSAL_ERROR, e.getMessage());
43 }
44 }