From 2f7e900573a34b5307a3760f28426a7d7b028ea4 Mon Sep 17 00:00:00 2001 From: lskublik Date: Tue, 22 Dec 2020 12:53:39 +0100 Subject: [PATCH] fix for import report with one value of multivalue attribute (MID-6737) --- .../report/impl/controller/fileformat/CsvController.java | 6 +++++- .../java/com/evolveum/midpoint/report/TestCsvReport.java | 8 ++++++++ .../src/test/resources/import/import-users.csv | 1 + 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/model/report-impl/src/main/java/com/evolveum/midpoint/report/impl/controller/fileformat/CsvController.java b/model/report-impl/src/main/java/com/evolveum/midpoint/report/impl/controller/fileformat/CsvController.java index aafe1eb424e..e2fd329151b 100644 --- a/model/report-impl/src/main/java/com/evolveum/midpoint/report/impl/controller/fileformat/CsvController.java +++ b/model/report-impl/src/main/java/com/evolveum/midpoint/report/impl/controller/fileformat/CsvController.java @@ -584,7 +584,11 @@ private ArrayList getImportStringValues(Object realValue, boolean isSing if (isSingleValue || realValue == null) { stringValues.add((String) realValue); } else { - stringValues.addAll((List) realValue); + if (realValue instanceof String) { + stringValues.add((String) realValue); + } else { + stringValues.addAll((List) realValue); + } } return stringValues; } diff --git a/model/report-impl/src/test/java/com/evolveum/midpoint/report/TestCsvReport.java b/model/report-impl/src/test/java/com/evolveum/midpoint/report/TestCsvReport.java index 317d0a90e63..2386f8ee4d3 100644 --- a/model/report-impl/src/test/java/com/evolveum/midpoint/report/TestCsvReport.java +++ b/model/report-impl/src/test/java/com/evolveum/midpoint/report/TestCsvReport.java @@ -189,6 +189,14 @@ public void test200ImportReportForUser() throws Exception { assertTrue(user.asObjectable().getSubtype().isEmpty()); assertEquals("Test import: test_NICK2", user.asObjectable().getNickName().getOrig()); assertTrue(user.asObjectable().getAssignment().isEmpty()); + + user = searchObjectByName(UserType.class, "testUser03"); + assertNotNull("User testUser03 was not created", user); + assertEquals(ActivationStatusType.ENABLED, user.asObjectable().getActivation().getAdministrativeStatus()); + assertEquals("2020-07-07T00:00:00.000+02:00", user.asObjectable().getActivation().getValidFrom().toString()); + assertEquals("sub31", user.asObjectable().getSubtype().get(0)); + assertEquals("Test import: test_NICK3", user.asObjectable().getNickName().getOrig()); + assertTrue(user.asObjectable().getAssignment().isEmpty()); } @Test(dependsOnMethods = {"test115CreateObjectCollectionReportWithCondition"}) diff --git a/model/report-impl/src/test/resources/import/import-users.csv b/model/report-impl/src/test/resources/import/import-users.csv index 6f6fa635a4e..9eef2361347 100644 --- a/model/report-impl/src/test/resources/import/import-users.csv +++ b/model/report-impl/src/test/resources/import/import-users.csv @@ -1,3 +1,4 @@ "Name (Collection)";"Administrative status";"Valid from";"Nick";"AssignmentOid";"Subtype" "testUser01";"enabled";"2020-07-07T00:00:00.000+02:00";"test_NICK";"00000000-0000-0000-0000-000000000008,00000000-0000-0000-0000-000000000004";"sub1,sub22" "testUser02";"enabled";"2020-07-07T00:00:00.000+02:00";"test_NICK2";; +"testUser03";"enabled";"2020-07-07T00:00:00.000+02:00";"test_NICK3";;"sub31"