Skip to content

Commit

Permalink
MID-8842 ninja - lookuptable merger + test
Browse files Browse the repository at this point in the history
  • Loading branch information
1azyman committed Sep 6, 2023
1 parent 898544d commit 680eb09
Show file tree
Hide file tree
Showing 6 changed files with 174 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,10 @@ static Map<Class<?>, Supplier<ItemMerger>> createStandardTypeSpecificMergersMap(
() -> new GenericItemMerger(marker, DefaultNaturalKeyImpl.of(SynchronizationReactionType.F_NAME))),
entry(
AbstractSynchronizationActionType.class,
() -> new GenericItemMerger(marker, DefaultNaturalKeyImpl.of(AbstractSynchronizationActionType.F_NAME)))
() -> new GenericItemMerger(marker, DefaultNaturalKeyImpl.of(AbstractSynchronizationActionType.F_NAME))),
entry(
LookupTableRowType.class,
() -> new GenericItemMerger(marker, DefaultNaturalKeyImpl.of(LookupTableRowType.F_KEY)))
);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
/*
* Copyright (C) 2010-2023 Evolveum and contributors
*
* This work is dual-licensed under the Apache License 2.0
* and European Union Public License. See LICENSE file for details.
*/

package com.evolveum.midpoint.schema.merger.object;

import com.evolveum.midpoint.schema.merger.BaseMergeOperation;
import com.evolveum.midpoint.schema.merger.GenericItemMerger;
import com.evolveum.midpoint.schema.merger.OriginMarker;
import com.evolveum.midpoint.xml.ns._public.common.common_3.LookupTableType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.SecurityPolicyType;

import org.jetbrains.annotations.NotNull;

import java.util.Map;

public class LookupTableMergeOperation extends BaseMergeOperation<LookupTableType> {

public LookupTableMergeOperation(
@NotNull LookupTableType target,
@NotNull LookupTableType source) {

super(target,
source,
new GenericItemMerger(
OriginMarker.forOid(source.getOid(), SecurityPolicyType.COMPLEX_TYPE),
createPathMap(Map.of(

))));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
/*
* Copyright (C) 2010-2023 Evolveum and contributors
*
* This work is dual-licensed under the Apache License 2.0
* and European Union Public License. See LICENSE file for details.
*/

package com.evolveum.midpoint.schema.merger;

import com.evolveum.midpoint.prism.PrismObject;
import com.evolveum.midpoint.schema.AbstractSchemaTest;
import com.evolveum.midpoint.schema.merger.object.LookupTableMergeOperation;

import com.evolveum.midpoint.xml.ns._public.common.common_3.LookupTableType;

import org.assertj.core.api.Assertions;
import org.testng.annotations.Test;

import java.io.File;

import static com.evolveum.midpoint.prism.util.PrismTestUtil.getPrismContext;

public class TestMerger extends AbstractSchemaTest {

private static final File TEST_ROOT_DIR = new File("./src/test/resources/merger");

@Test
public void testLookupTableMergeOperation() throws Exception {
PrismObject<LookupTableType> source = getPrismContext().parseObject(new File(TEST_ROOT_DIR, "lookup-table-source.xml"));
PrismObject<LookupTableType> target = getPrismContext().parseObject(new File(TEST_ROOT_DIR, "lookup-table-target.xml"));
PrismObject<LookupTableType> result = getPrismContext().parseObject(new File(TEST_ROOT_DIR, "lookup-table-result.xml"));

LookupTableMergeOperation operation = new LookupTableMergeOperation(target.asObjectable(), source.asObjectable());
operation.execute();

System.out.println("Merged object:\n" + target.debugDump());
// TODO

Assertions.assertThat(target)
.matches(t -> t.equivalent(result));
}
}
35 changes: 35 additions & 0 deletions infra/schema/src/test/resources/merger/lookup-table-result.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright (C) 2010-2023 Evolveum and contributors
~
~ This work is dual-licensed under the Apache License 2.0
~ and European Union Public License. See LICENSE file for details.
-->

<lookupTable oid="00000000-0000-0000-0000-000000000240"
xmlns='http://midpoint.evolveum.com/xml/ns/public/common/common-3'>

<name>States</name>

<row id="1">
<key>open</key>
<label>Open</label>
</row>
<row id="2">
<key>closed</key>
<label>Closed</label>
</row>
<row id="3">
<key>executing</key>
<label>custom executing</label>
</row>
<row>
<key>created</key>
<label>Created</label>
</row>
<row>
<key>closing</key>
<label>Closing</label>
</row>

</lookupTable>
32 changes: 32 additions & 0 deletions infra/schema/src/test/resources/merger/lookup-table-source.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright (c) 2017 Evolveum, AMI Praha and contributors
~
~ This work is dual-licensed under the Apache License 2.0
~ and European Union Public License. See LICENSE file for details.
-->

<lookupTable oid="00000000-0000-0000-0000-000000000240"
xmlns="http://midpoint.evolveum.com/xml/ns/public/common/common-3">
<name>States</name>
<row id="1">
<key>created</key>
<label>Created</label>
</row>
<row id="2">
<key>open</key>
<label>Open</label>
</row>
<row id="3">
<key>closing</key>
<label>Closing</label>
</row>
<row id="4">
<key>executing</key>
<label>Executing</label>
</row>
<row id="5">
<key>closed</key>
<label>Closed</label>
</row>
</lookupTable>
27 changes: 27 additions & 0 deletions infra/schema/src/test/resources/merger/lookup-table-target.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright (c) 2017 Evolveum, AMI Praha and contributors
~
~ This work is dual-licensed under the Apache License 2.0
~ and European Union Public License. See LICENSE file for details.
-->

<lookupTable oid="00000000-0000-0000-0000-000000000240"
xmlns='http://midpoint.evolveum.com/xml/ns/public/common/common-3'>

<name>States</name>

<row id="1">
<key>open</key>
<label>Open</label>
</row>
<row id="2">
<key>closed</key>
<label>Closed</label>
</row>
<row id="3">
<key>executing</key>
<label>custom executing</label>
</row>

</lookupTable>

0 comments on commit 680eb09

Please sign in to comment.