protected void importObjectFromFile(File file, Task task, OperationResult result) throws FileNotFoundException { importObjectFromFile(file, MiscSchemaUtil.getDefaultImportOptions(), task, result); }
protected void importObjectsFromFileNotRaw(File file, Task task, OperationResult result) throws FileNotFoundException { ImportOptionsType options = MiscSchemaUtil.getDefaultImportOptions(); ModelExecuteOptionsType modelOptions = new ModelExecuteOptionsType(); modelOptions.setRaw(false); options.setModelExecutionOptions(modelOptions); importObjectFromFile(file, options, task, result); }
public <T extends ObjectType> void importSample(File sampleFile, Class<T> type, String objectName) throws FileNotFoundException, SchemaException { TestUtil.displayTestTitle(this, "Import sample "+sampleFile.getPath()); // GIVEN Task task = taskManager.createTaskInstance(); OperationResult result = new OperationResult(TestSampleImport.class.getName() + ".importSample"); result.addParam("file", sampleFile.getPath()); FileInputStream stream = new FileInputStream(sampleFile); // WHEN modelService.importObjectsFromStream(stream, MiscSchemaUtil.getDefaultImportOptions(), task, result); // THEN result.computeStatus(); display("Result after good import", result); TestUtil.assertSuccessOrWarning("Import has failed (result)", result,1); // ObjectQuery query = ObjectQuery.createObjectQuery(EqualsFilter.createEqual(type, prismContext, // ObjectType.F_NAME, PrismTestUtil.createPolyString(objectName))); // QueryType query = QueryUtil.createNameQuery(objectName); ObjectQuery query = ObjectQueryUtil.createNameQuery(objectName, prismContext); List<PrismObject<T>> objects = repositoryService.searchObjects(type, query, null, result); for (PrismObject<T> o : objects) { T object = o.asObjectable(); display("Found object",object); } assertEquals("Unexpected search result: "+objects,1,objects.size()); }
@Test public void test200BadImport() throws FileNotFoundException, SchemaException, ObjectNotFoundException { TestUtil.displayTestTitle(this,"test200BadImport"); // GIVEN Task task = taskManager.createTaskInstance(); OperationResult result = new OperationResult(AbstractImportTest.class.getName() + "test001GoodImport"); FileInputStream stream = new FileInputStream(getFile(BAD_IMPORT_FILE_NAME, false)); repositoryService.deleteObject(UserType.class, USER_JACK_OID, result); // WHEN modelService.importObjectsFromStream(stream, getLanguage(), getDefaultImportOptions(), task, result); // THEN result.computeStatus("Failed import."); display("Result after bad import", result); // Jack is OK in the import file, he should be imported try { UserType jack = repositoryService.getObject(UserType.class, USER_JACK_OID, null, result).asObjectable(); AssertJUnit.assertNotNull("Jack is null", jack); } catch (ObjectNotFoundException e) { AssertJUnit.fail("Jack was not imported"); } List<PrismObject<UserType>> users = repositoryService.searchObjects(UserType.class, null, null, result); AssertJUnit.assertNotNull(users); AssertJUnit.assertEquals("Search returned unexpected results: "+users, 8, users.size()); }
FileInputStream stream = new FileInputStream(getFile(USER_CONSTRAINED_WRONG_FILE_NAME, false)); ImportOptionsType importOptions = getDefaultImportOptions(); importOptions.setOverwrite(true); importOptions.setKeepOid(true);
@Test public void test004DuplicateImportUsers() throws Exception { TestUtil.displayTestTitle(this,"test004DuplicateImportUsers"); // GIVEN Task task = taskManager.createTaskInstance(); OperationResult result = new OperationResult(AbstractImportTest.class.getName() + "test004DuplicateImportUsers"); FileInputStream stream = new FileInputStream(getFile(IMPORT_USERS_FILE_NAME, false)); dummyAuditService.clear(); // WHEN modelService.importObjectsFromStream(stream, getLanguage(), getDefaultImportOptions(), task, result); // THEN result.computeStatus(); display("Result after duplicate import", result); assertFalse("Unexpected success", result.isSuccess()); // All three users should fail. First two because of OID conflict, // guybrush because of name conflict // (nobody else could have such a stupid name) for (OperationResult subresult : result.getSubresults().get(0).getSubresults()) { assertFalse("Unexpected success in subresult", subresult.isSuccess()); } assertUsers(4); // Check audit display("Audit", dummyAuditService); dummyAuditService.assertRecords(6); // 3 requests + 3 failed executions }
@Test public void test100GoodRefImport() throws Exception { final String TEST_NAME = "test100GoodRefImport"; TestUtil.displayTestTitle(this,TEST_NAME); // GIVEN Task task = taskManager.createTaskInstance(); OperationResult result = new OperationResult(AbstractImportTest.class.getName() + "." +TEST_NAME); FileInputStream stream = new FileInputStream(getFile(IMPORT_REF_FILE_NAME, false)); // WHEN modelService.importObjectsFromStream(stream, getLanguage(), getDefaultImportOptions(), task, result); // THEN result.computeStatus("Failed import."); display("Result after good import", result); TestUtil.assertSuccessOrWarning("Import has failed (result)", result, 2); // EqualsFilter equal = EqualsFilter.createEqual(UserType.F_NAME, UserType.class, PrismTestUtil.getPrismContext(), null, "jack"); // ObjectQuery query = ObjectQuery.createObjectQuery(equal); ObjectQuery query = ObjectQueryUtil.createNameQuery("jack", PrismTestUtil.getPrismContext()); List<PrismObject<UserType>> users = repositoryService.searchObjects(UserType.class, query, null, result); assertNotNull(users); assertEquals("Search returned unexpected results", 1, users.size()); UserType jack = users.get(0).asObjectable(); assertNotNull(jack); PrismAsserts.assertEqualsPolyString("wrong givenName", "Jack", jack.getGivenName()); PrismAsserts.assertEqualsPolyString("wrong familyName", "Sparrow", jack.getFamilyName()); PrismAsserts.assertEqualsPolyString("wrong fullName", "Cpt. Jack Sparrow", jack.getFullName()); }
@Test public void test060ImportConstrainedWrongFullProcessing() throws Exception { final String TEST_NAME = "test060ImportConstrainedWrongFullProcessing"; TestUtil.displayTestTitle(this,TEST_NAME); // GIVEN Task task = taskManager.createTaskInstance(); OperationResult result = new OperationResult(AbstractImportTest.class.getName() + "." + TEST_NAME); FileInputStream stream = new FileInputStream(getFile(USER_CONSTRAINED_WRONG_FILE_NAME, false)); ImportOptionsType importOptions = getDefaultImportOptions(); importOptions.setOverwrite(true); importOptions.setKeepOid(true); importOptions.setModelExecutionOptions(new ModelExecuteOptionsType().raw(false)); dummyAuditService.clear(); // WHEN modelService.importObjectsFromStream(stream, getLanguage(), importOptions, task, result); // THEN result.computeStatus(); display("Result after import", result); for (OperationResult subresult : result.getSubresults().get(0).getSubresults()) { assertFalse("Unexpected success in subresult", subresult.isSuccess()); } assertUsers(6); // none should be added // Check audit display("Audit", dummyAuditService); dummyAuditService.assertRecords(2); dummyAuditService.assertSimpleRecordSanity(); dummyAuditService.assertAnyRequestDeltas(); dummyAuditService.assertExecutionOutcome(OperationResultStatus.FATAL_ERROR); dummyAuditService.assertExecutionMessage(0, "Expected at least 1 values of familyName, got 0"); }
modelService.importObjectsFromStream(stream, getLanguage(), getDefaultImportOptions(), task, result);
modelService.importObjectsFromStream(stream, getLanguage(), getDefaultImportOptions(), task, result);
OperationResult result = new OperationResult(AbstractImportTest.class.getName() + "test005ImportUsersWithOverwrite"); FileInputStream stream = new FileInputStream(getFile(IMPORT_USERS_OVERWRITE_FILE_NAME, false)); ImportOptionsType options = getDefaultImportOptions(); options.setOverwrite(true); options.setKeepOid(true);
OperationResult result = new OperationResult(AbstractImportTest.class.getName() + "test005ImportUsersWithOverwrite"); FileInputStream stream = new FileInputStream(getFile(IMPORT_USERS_OVERWRITE_FILE_NAME, false)); ImportOptionsType options = getDefaultImportOptions(); options.setOverwrite(true);
modelService.importObjectsFromStream(stream, getLanguage(), getDefaultImportOptions(), task, result);
FileInputStream stream = new FileInputStream(getFile(USER_HERMAN_FILE_NAME, true)); ImportOptionsType importOptions = getDefaultImportOptions(); importOptions.setOverwrite(true); importOptions.setKeepOid(true);
FileInputStream stream = new FileInputStream(getFile(USER_HERMAN_FILE_NAME, true)); ImportOptionsType importOptions = getDefaultImportOptions(); importOptions.setEncryptProtectedValues(false);
modelService.importObjectsFromStream(stream, getLanguage(), getDefaultImportOptions(), task, result);
FileInputStream stream = new FileInputStream(getFile(RESOURCE_DUMMY_CHANGED_FILE_NAME, false)); ImportOptionsType options = getDefaultImportOptions(); options.setOverwrite(true);
modelService.importObjectsFromStream(stream, getLanguage(), getDefaultImportOptions(), task, result);
modelService.importObjectsFromStream(stream, getLanguage(), getDefaultImportOptions(), task, result);