summaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorPaul-Christian Volkmer2023-05-09 14:37:56 +0200
committerGitHub2023-05-09 14:37:56 +0200
commit161534bfcea30d84f3292b645ec67b20ccbf3396 (patch)
tree4d59a72d0e085b5d7d05aaab6987d153e58320ba /src/test
parent06b5381e885cf5cf4cb008e22e7cb2dff88f40b5 (diff)
parent2da02d1cf3cbb5d18597e18c2914fc2abe618121 (diff)
Merge pull request #30 from CCC-MF/issue_28
Ermitteln stützender molekularer Alterationen zu einem Formular "OS.Molekulargenetik"
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/DNPM/analyzer/EinzelempfehlungAnalyzerTest.java46
-rw-r--r--src/test/java/DNPM/dto/VariantTest.java103
-rw-r--r--src/test/java/DNPM/services/molekulargenetik/OsMolekluargenetikFormServiceTest.java49
3 files changed, 198 insertions, 0 deletions
diff --git a/src/test/java/DNPM/analyzer/EinzelempfehlungAnalyzerTest.java b/src/test/java/DNPM/analyzer/EinzelempfehlungAnalyzerTest.java
new file mode 100644
index 0000000..337ffdb
--- /dev/null
+++ b/src/test/java/DNPM/analyzer/EinzelempfehlungAnalyzerTest.java
@@ -0,0 +1,46 @@
+package DNPM.analyzer;
+
+import DNPM.security.DelegatingDataBasedPermissionEvaluator;
+import DNPM.services.molekulargenetik.MolekulargenetikFormService;
+import de.itc.onkostar.api.IOnkostarApi;
+import de.itc.onkostar.api.Procedure;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
+
+import java.util.Map;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.*;
+
+@ExtendWith(MockitoExtension.class)
+class EinzelempfehlungAnalyzerTest {
+
+ private IOnkostarApi onkostarApi;
+
+ private MolekulargenetikFormService molekulargenetikFormService;
+
+ private EinzelempfehlungAnalyzer analyzer;
+
+ @BeforeEach
+ void setup(
+ @Mock IOnkostarApi onkostarApi,
+ @Mock MolekulargenetikFormService molekulargenetikFormService,
+ @Mock DelegatingDataBasedPermissionEvaluator permissionEvaluator
+ ) {
+ this.onkostarApi = onkostarApi;
+ this.molekulargenetikFormService = molekulargenetikFormService;
+ this.analyzer = new EinzelempfehlungAnalyzer(onkostarApi, molekulargenetikFormService, permissionEvaluator);
+ }
+
+ @Test
+ void testShouldRequestVariantsFromMolekulargenetikFormService() {
+ doAnswer(invocationOnMock -> new Procedure(this.onkostarApi)).when(onkostarApi).getProcedure(anyInt());
+
+ analyzer.getVariants(Map.of("id", 123));
+ verify(molekulargenetikFormService, times(1)).getVariants(any(Procedure.class));
+ }
+
+}
diff --git a/src/test/java/DNPM/dto/VariantTest.java b/src/test/java/DNPM/dto/VariantTest.java
new file mode 100644
index 0000000..3242852
--- /dev/null
+++ b/src/test/java/DNPM/dto/VariantTest.java
@@ -0,0 +1,103 @@
+package DNPM.dto;
+
+import de.itc.onkostar.api.Item;
+import de.itc.onkostar.api.Procedure;
+import org.junit.jupiter.api.Test;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class VariantTest {
+
+ @Test
+ void testShouldMapVariantFromProcedureForSimpleVariant() {
+ var procedure = new Procedure(null);
+ procedure.setId(12345);
+ procedure.setFormName("OS.Molekulargenetische Untersuchung");
+
+ procedure.setValue("Ergebnis", new Item("Ergebnis", "P"));
+ procedure.setValue("Untersucht", new Item("Untersucht", "BRAF"));
+ procedure.setValue("ExonInt", new Item("ExonInt", 123));
+ procedure.setValue("Pathogenitaetsklasse", new Item("Pathogenitaetsklasse", "2"));
+
+ var actual = Variant.fromProcedure(procedure);
+
+ assertThat(actual).isPresent();
+ assertThat(actual.get().getId()).isEqualTo(12345);
+ assertThat(actual.get().getErgebnis()).isEqualTo("Einfache Variante (Mutation)");
+ assertThat(actual.get().getGen()).isEqualTo("BRAF");
+ assertThat(actual.get().getExon()).isEqualTo("123");
+ assertThat(actual.get().getPathogenitaetsklasse()).isEqualTo("2");
+ }
+
+ @Test
+ void testShouldMapVariantFromProcedureForCopyNumberVariation() {
+ var procedure = new Procedure(null);
+ procedure.setId(12345);
+ procedure.setFormName("OS.Molekulargenetische Untersuchung");
+
+ procedure.setValue("Ergebnis", new Item("Ergebnis", "CNV"));
+ procedure.setValue("Untersucht", new Item("Untersucht", "BRAF"));
+ procedure.setValue("ExonInt", new Item("ExonInt", 123));
+ procedure.setValue("Pathogenitaetsklasse", new Item("Pathogenitaetsklasse", "2"));
+
+ var actual = Variant.fromProcedure(procedure);
+
+ assertThat(actual).isPresent();
+ assertThat(actual.get().getId()).isEqualTo(12345);
+ assertThat(actual.get().getErgebnis()).isEqualTo("Copy Number Variation (CNV)");
+ assertThat(actual.get().getGen()).isEqualTo("BRAF");
+ assertThat(actual.get().getExon()).isEqualTo("123");
+ assertThat(actual.get().getPathogenitaetsklasse()).isEqualTo("2");
+ }
+
+ @Test
+ void testShouldMapVariantFromProcedureForFusion() {
+ var procedure = new Procedure(null);
+ procedure.setId(12345);
+ procedure.setFormName("OS.Molekulargenetische Untersuchung");
+
+ procedure.setValue("Ergebnis", new Item("Ergebnis", "F"));
+ procedure.setValue("Untersucht", new Item("Untersucht", "BRAF"));
+ procedure.setValue("ExonInt", new Item("ExonInt", 123));
+ procedure.setValue("Pathogenitaetsklasse", new Item("Pathogenitaetsklasse", "2"));
+
+ var actual = Variant.fromProcedure(procedure);
+
+ assertThat(actual).isPresent();
+ assertThat(actual.get().getId()).isEqualTo(12345);
+ assertThat(actual.get().getErgebnis()).isEqualTo("Fusion (Translokation Inversion Insertion)");
+ assertThat(actual.get().getGen()).isEqualTo("BRAF");
+ assertThat(actual.get().getExon()).isEqualTo("123");
+ assertThat(actual.get().getPathogenitaetsklasse()).isEqualTo("2");
+ }
+
+ @Test
+ void testShouldNotMapVariantFromProcedureForUnknownVariant() {
+ var procedure = new Procedure(null);
+ procedure.setId(12345);
+ procedure.setFormName("OS.Molekulargenetische Untersuchung");
+
+ procedure.setValue("Ergebnis", new Item("Ergebnis", "X"));
+ procedure.setValue("Untersucht", new Item("Untersucht", "BRAF"));
+ procedure.setValue("ExonInt", new Item("ExonInt", 123));
+ procedure.setValue("Pathogenitaetsklasse", new Item("Pathogenitaetsklasse", "2"));
+
+ var actual = Variant.fromProcedure(procedure);
+
+ assertThat(actual).isEmpty();
+ }
+
+ @Test
+ void testShouldNotMapVariantFromUnknownProcedureForm() {
+ var procedure = new Procedure(null);
+ procedure.setId(12345);
+ procedure.setFormName("ABC.Irgendwas");
+
+ procedure.setValue("Testfeld", new Item("Testfeld", "T"));
+
+ var actual = Variant.fromProcedure(procedure);
+
+ assertThat(actual).isEmpty();
+ }
+
+}
diff --git a/src/test/java/DNPM/services/molekulargenetik/OsMolekluargenetikFormServiceTest.java b/src/test/java/DNPM/services/molekulargenetik/OsMolekluargenetikFormServiceTest.java
new file mode 100644
index 0000000..4e11341
--- /dev/null
+++ b/src/test/java/DNPM/services/molekulargenetik/OsMolekluargenetikFormServiceTest.java
@@ -0,0 +1,49 @@
+package DNPM.services.molekulargenetik;
+
+import de.itc.onkostar.api.Item;
+import de.itc.onkostar.api.Procedure;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class OsMolekluargenetikFormServiceTest {
+
+ private OsMolekulargenetikFormService service;
+
+ @BeforeEach
+ void setup() {
+ this.service = new OsMolekulargenetikFormService();
+ }
+
+ @Test
+ void testShouldReturnVariants() {
+
+ var procedure = new Procedure(null);
+ procedure.setId(123);
+ procedure.setFormName("OS.Molekulargenetik");
+
+ var subProcedure1 = new Procedure(null);
+ subProcedure1.setId(1123);
+ subProcedure1.setFormName("OS.Molekulargenetische Untersuchung");
+ subProcedure1.setValue("Ergebnis", new Item("Ergebnis", "P"));
+ subProcedure1.setValue("Untersucht", new Item("Untersucht", "BRAF"));
+ subProcedure1.setValue("ExonInt", new Item("ExonInt", 123));
+ subProcedure1.setValue("Pathogenitaetsklasse", new Item("Pathogenitaetsklasse", "2"));
+ procedure.addSubProcedure("MolekulargenetischeUntersuchung", subProcedure1);
+
+ var subProcedure2 = new Procedure(null);
+ subProcedure2.setId(2123);
+ subProcedure2.setFormName("OS.Molekulargenetische Untersuchung");
+ subProcedure2.setValue("Ergebnis", new Item("Ergebnis", "CNV"));
+ subProcedure2.setValue("Untersucht", new Item("Untersucht", "BRAF"));
+ subProcedure2.setValue("ExonInt", new Item("ExonInt", 123));
+ subProcedure2.setValue("Pathogenitaetsklasse", new Item("Pathogenitaetsklasse", "2"));
+ procedure.addSubProcedure("MolekulargenetischeUntersuchung", subProcedure2);
+
+ var actual = service.getVariants(procedure);
+
+ assertThat(actual).hasSize(2);
+ }
+
+}