diff options
Diffstat (limited to 'src/test/java/org/onap/dcaegen2/services/pmmapper/AppTest.java')
-rw-r--r-- | src/test/java/org/onap/dcaegen2/services/pmmapper/AppTest.java | 99 |
1 files changed, 96 insertions, 3 deletions
diff --git a/src/test/java/org/onap/dcaegen2/services/pmmapper/AppTest.java b/src/test/java/org/onap/dcaegen2/services/pmmapper/AppTest.java index b4dc178..7c5340a 100644 --- a/src/test/java/org/onap/dcaegen2/services/pmmapper/AppTest.java +++ b/src/test/java/org/onap/dcaegen2/services/pmmapper/AppTest.java @@ -23,18 +23,21 @@ package org.onap.dcaegen2.services.pmmapper; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.junit.jupiter.api.Assertions.assertThrows; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.*; import static org.mockserver.integration.ClientAndServer.startClientAndServer; import static org.mockserver.model.HttpResponse.response; +import java.io.IOException; +import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.Arrays; import java.util.List; +import com.google.gson.Gson; +import io.undertow.server.HttpServerExchange; import io.undertow.util.StatusCodes; +import org.onap.dcaegen2.services.pmmapper.utils.XMLValidator; import reactor.core.publisher.Flux; import org.junit.jupiter.api.AfterAll; @@ -53,6 +56,7 @@ import org.onap.dcaegen2.services.pmmapper.model.EventMetadata; import org.onap.dcaegen2.services.pmmapper.model.MapperConfig; import org.onap.dcaegen2.services.pmmapper.utils.MeasConverter; import org.onap.dcaegen2.services.pmmapper.utils.MeasSplitter; +import utils.EventUtils; @ExtendWith(MockitoExtension.class) @@ -61,6 +65,13 @@ class AppTest { static ClientAndServer mockServer; static MockServerClient client; + private static EventMetadata eventMetadata; + + private static final Path dataDirectory = Paths.get("src/test/resources/mapper_test/mapping_data/"); + private static final Path metadata = Paths.get("src/test/resources/valid_metadata.json"); + private static final Path schema = Paths.get("src/main/resources/measCollec_plusString.xsd"); + + @BeforeAll public static void setup() { mockServer = startClientAndServer(1080); @@ -99,6 +110,88 @@ class AppTest { } @Test + public void testFilterByFileType_success() { + Event mockEvent = Mockito.mock(Event.class); + MapperConfig mockConfig = Mockito.mock(MapperConfig.class); + + HttpServerExchange exchange = Mockito.mock(HttpServerExchange.class); + when(mockEvent.getHttpServerExchange()).thenReturn(exchange); + when(exchange.getRequestPath()).thenReturn("ATEST.xml"); + + boolean result = App.filterByFileType(new MeasFilterHandler(new MeasConverter()), mockEvent, mockConfig); + assertTrue(result); + } + + @Test + public void testFilterByFileType_NonXML() { + Event mockEvent = Mockito.mock(Event.class); + MapperConfig mockConfig = Mockito.mock(MapperConfig.class); + + HttpServerExchange exchange = Mockito.mock(HttpServerExchange.class); + when(mockEvent.getHttpServerExchange()).thenReturn(exchange); + when(exchange.getRequestPath()).thenReturn("ATEST.png"); + + boolean result = App.filterByFileType(new MeasFilterHandler(new MeasConverter()), mockEvent, mockConfig); + assertFalse(result); + } + + @Test + public void testFilterByFileType_throwException() { + Event mockEvent = Mockito.mock(Event.class); + MeasFilterHandler mockFilter = Mockito.mock(MeasFilterHandler.class); + MapperConfig mockConfig = Mockito.mock(MapperConfig.class); + + Mockito.when(mockFilter.filterByFileType(mockEvent)).thenThrow(RuntimeException.class); + + boolean result = App.filterByFileType(mockFilter, mockEvent, mockConfig); + assertFalse(result); + } + + @Test + public void testValidateXML_success() throws IOException { + XMLValidator mockValidator = new XMLValidator(schema); + MapperConfig mockConfig = Mockito.mock(MapperConfig.class); + + String metadataFileContents = new String(Files.readAllBytes(metadata)); + eventMetadata = new Gson().fromJson(metadataFileContents, EventMetadata.class); + + Path testFile = Paths.get(dataDirectory + "/valid_data/meas_results.xml"); + Event mockEvent = EventUtils.makeMockEvent(EventUtils.fileContentsToString(testFile), eventMetadata); + + boolean result = App.validate(mockValidator, mockEvent, mockConfig); + + assertTrue(result); + } + + @Test + public void testValidateXML_failure() throws IOException { + XMLValidator mockValidator = new XMLValidator(schema); + MapperConfig mockConfig = Mockito.mock(MapperConfig.class); + + String metadataFileContents = new String(Files.readAllBytes(metadata)); + eventMetadata = new Gson().fromJson(metadataFileContents, EventMetadata.class); + + Path testFile = Paths.get(dataDirectory + "/invalid_data/no_managed_element.xml"); + Event mockEvent = EventUtils.makeMockEvent(EventUtils.fileContentsToString(testFile), eventMetadata); + + boolean result = App.validate(mockValidator, mockEvent, mockConfig); + + assertFalse(result); + } + + @Test + public void testValidateXML_throwException() { + Event mockEvent = Mockito.mock(Event.class); + XMLValidator mockValidator = Mockito.mock(XMLValidator.class); + MapperConfig mockConfig = Mockito.mock(MapperConfig.class); + + Mockito.when(mockValidator.validate(mockEvent)).thenThrow(RuntimeException.class); + boolean result = App.validate(mockValidator, mockEvent, mockConfig); + + assertFalse(result); + } + + @Test public void testFilter_success() { Event mockEvent = Mockito.mock(Event.class); List<Event> mockEvents = Arrays.asList(mockEvent); |