diff --git a/dist/pom.xml b/dist/pom.xml index 26c12b53873..28de97a8d0b 100644 --- a/dist/pom.xml +++ b/dist/pom.xml @@ -51,7 +51,6 @@ com.evolveum.midpoint.tools test-ng - 4.1-SNAPSHOT test diff --git a/gui/admin-gui/pom.xml b/gui/admin-gui/pom.xml index 67c6dbe3ac7..df810286013 100644 --- a/gui/admin-gui/pom.xml +++ b/gui/admin-gui/pom.xml @@ -708,7 +708,6 @@ com.evolveum.midpoint.tools test-ng - 4.1-SNAPSHOT test diff --git a/gui/admin-gui/src/test/java/com/evolveum/midpoint/gui/test/TestMidPointSpringApplication.java b/gui/admin-gui/src/test/java/com/evolveum/midpoint/gui/test/TestMidPointSpringApplication.java index dace37efb32..c57e0b00907 100644 --- a/gui/admin-gui/src/test/java/com/evolveum/midpoint/gui/test/TestMidPointSpringApplication.java +++ b/gui/admin-gui/src/test/java/com/evolveum/midpoint/gui/test/TestMidPointSpringApplication.java @@ -81,7 +81,7 @@ public static void main(String[] args) { " Application mode:" + mode + " context:" + applicationContext); } - if (applicationContext != null && mode != null && "stop".equals(mode)) { + if (applicationContext != null && "stop".equals(mode)) { System.exit(SpringApplication.exit(applicationContext, new ExitCodeGenerator() { @Override diff --git a/infra/common/pom.xml b/infra/common/pom.xml index c9a0371983f..13a9fa15e27 100644 --- a/infra/common/pom.xml +++ b/infra/common/pom.xml @@ -144,7 +144,6 @@ com.evolveum.midpoint.tools test-ng - 4.1-SNAPSHOT test diff --git a/infra/prism-impl/src/test/java/com/evolveum/midpoint/prism/AbstractPrismTest.java b/infra/prism-impl/src/test/java/com/evolveum/midpoint/prism/AbstractPrismTest.java index 18d6be34103..f9a6913d098 100644 --- a/infra/prism-impl/src/test/java/com/evolveum/midpoint/prism/AbstractPrismTest.java +++ b/infra/prism-impl/src/test/java/com/evolveum/midpoint/prism/AbstractPrismTest.java @@ -31,9 +31,6 @@ import com.evolveum.midpoint.util.PrettyPrinter; import com.evolveum.midpoint.util.exception.SchemaException; -/** - * @author semancik - */ public class AbstractPrismTest extends AbstractUnitTest { protected static final String USER_FOO_OID = "01234567"; diff --git a/infra/prism-impl/src/test/java/com/evolveum/midpoint/prism/lex/AbstractJsonLexicalProcessorTest.java b/infra/prism-impl/src/test/java/com/evolveum/midpoint/prism/lex/AbstractJsonLexicalProcessorTest.java index 9d753de2933..74d9c70e0a3 100644 --- a/infra/prism-impl/src/test/java/com/evolveum/midpoint/prism/lex/AbstractJsonLexicalProcessorTest.java +++ b/infra/prism-impl/src/test/java/com/evolveum/midpoint/prism/lex/AbstractJsonLexicalProcessorTest.java @@ -9,7 +9,6 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.testng.AssertJUnit.assertEquals; -import static org.testng.AssertJUnit.fail; import java.util.ArrayList; import java.util.List; @@ -22,9 +21,6 @@ import com.evolveum.midpoint.util.DebugUtil; import com.evolveum.midpoint.util.exception.SchemaException; -/** - * @author mederly - */ @SuppressWarnings("Duplicates") public abstract class AbstractJsonLexicalProcessorTest extends AbstractLexicalProcessorTest { diff --git a/infra/prism-impl/src/test/java/com/evolveum/midpoint/prism/lex/AbstractLexicalProcessorTest.java b/infra/prism-impl/src/test/java/com/evolveum/midpoint/prism/lex/AbstractLexicalProcessorTest.java index 48fac86fcc8..53441fc3931 100644 --- a/infra/prism-impl/src/test/java/com/evolveum/midpoint/prism/lex/AbstractLexicalProcessorTest.java +++ b/infra/prism-impl/src/test/java/com/evolveum/midpoint/prism/lex/AbstractLexicalProcessorTest.java @@ -6,6 +6,25 @@ */ package com.evolveum.midpoint.prism.lex; +import static org.testng.AssertJUnit.*; + +import static com.evolveum.midpoint.prism.PrismInternalTestUtil.*; +import static com.evolveum.midpoint.prism.util.PrismTestUtil.createDefaultParsingContext; + +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Map.Entry; +import java.util.Set; +import javax.xml.XMLConstants; +import javax.xml.namespace.QName; + +import org.testng.annotations.Test; +import org.w3c.dom.Element; +import org.xml.sax.SAXException; + import com.evolveum.midpoint.prism.*; import com.evolveum.midpoint.prism.delta.DiffUtil; import com.evolveum.midpoint.prism.delta.ObjectDelta; @@ -20,37 +39,15 @@ import com.evolveum.midpoint.prism.polystring.PolyString; import com.evolveum.midpoint.prism.util.PrismAsserts; import com.evolveum.midpoint.prism.util.PrismTestUtil; -import com.evolveum.midpoint.prism.xnode.*; +import com.evolveum.midpoint.prism.xnode.RootXNode; +import com.evolveum.midpoint.prism.xnode.XNode; import com.evolveum.midpoint.util.DOMUtil; import com.evolveum.midpoint.util.DebugUtil; -import com.evolveum.midpoint.util.PrettyPrinter; import com.evolveum.midpoint.util.exception.SchemaException; import com.evolveum.prism.xml.ns._public.types_3.PolyStringType; import com.evolveum.prism.xml.ns._public.types_3.SchemaDefinitionType; -import org.testng.annotations.BeforeSuite; -import org.testng.annotations.Test; -import org.w3c.dom.Element; -import org.xml.sax.SAXException; - -import javax.xml.XMLConstants; -import javax.xml.namespace.QName; -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Map.Entry; -import java.util.Set; - -import static com.evolveum.midpoint.prism.PrismInternalTestUtil.*; -import static com.evolveum.midpoint.prism.util.PrismTestUtil.createDefaultParsingContext; -import static org.testng.AssertJUnit.*; -/** - * @author semancik - * - */ -public abstract class AbstractLexicalProcessorTest { +public abstract class AbstractLexicalProcessorTest extends AbstractPrismTest { private static final QName XSD_COMPLEX_TYPE_ELEMENT_NAME = new QName(XMLConstants.W3C_XML_SCHEMA_NS_URI, "complexType"); @@ -63,12 +60,6 @@ public abstract class AbstractLexicalProcessorTest { private static final String OBJECTS_6_SINGLE = "objects-6-single"; private static final String OBJECTS_7_SINGLE = "objects-7-single"; - @BeforeSuite - public void setupDebug() throws SchemaException, SAXException, IOException { - PrettyPrinter.setDefaultNamespacePrefix(DEFAULT_NAMESPACE_PREFIX); - PrismTestUtil.resetPrismContext(new PrismInternalTestUtil()); - } - protected abstract String getSubdirName(); protected abstract String getFilenameSuffix(); @@ -78,7 +69,7 @@ protected File getCommonSubdir() { } protected File getFile(String baseName) { - return new File(getCommonSubdir(), baseName+"."+getFilenameSuffix()); + return new File(getCommonSubdir(), baseName + "." + getFilenameSuffix()); } protected abstract LexicalProcessor createParser(); @@ -171,9 +162,9 @@ public void testParseUserRoundTrip() throws Exception { System.out.println("\naccountRef object diff:"); System.out.println(accountRefObjDiff.debugDump()); - assertTrue("Re-parsed object in accountRef does not match: "+accountRefObjDiff, accountRefObjDiff.isEmpty()); + assertTrue("Re-parsed object in accountRef does not match: " + accountRefObjDiff, accountRefObjDiff.isEmpty()); - assertTrue("Re-parsed user does not match: "+diff, diff.isEmpty()); + assertTrue("Re-parsed user does not match: " + diff, diff.isEmpty()); } // to check if timestamps are serialized correctly @@ -245,10 +236,9 @@ public void testParseResourceRoundTrip() throws Exception { System.out.println("\nDiff:"); System.out.println(diff.debugDump()); - assertTrue("Re-parsed user does not match: "+diff, diff.isEmpty()); + assertTrue("Re-parsed user does not match: " + diff, diff.isEmpty()); } - private void assertResourceRum(PrismObject resource) throws SchemaException { resource.checkConsistence(); resource.assertDefinitions("test"); @@ -279,7 +269,7 @@ private void assertResourceRum(PrismObject resource) throws Schema } private PrismObject findObjectFromAccountRef(PrismObject user) { - for (PrismReferenceValue rval: user.findReference(UserType.F_ACCOUNT_REF).getValues()) { + for (PrismReferenceValue rval : user.findReference(UserType.F_ACCOUNT_REF).getValues()) { if (rval.getObject() != null) { return rval.getObject(); } @@ -288,33 +278,33 @@ private PrismObject findObjectFromAccountRef(PrismObject user) { } protected X getAssertXNode(String message, XNode xnode, Class expectedClass) { - assertNotNull(message+" is null", xnode); - assertTrue(message+", expected "+expectedClass.getSimpleName()+", was "+xnode.getClass().getSimpleName(), + assertNotNull(message + " is null", xnode); + assertTrue(message + ", expected " + expectedClass.getSimpleName() + ", was " + xnode.getClass().getSimpleName(), expectedClass.isAssignableFrom(xnode.getClass())); return (X) xnode; } protected X getAssertXMapSubnode(String message, MapXNodeImpl xmap, QName key, Class expectedClass) { XNodeImpl xsubnode = xmap.get(key); - assertNotNull(message+" no key "+key, xsubnode); - return getAssertXNode(message+" key "+key, xsubnode, expectedClass); + assertNotNull(message + " no key " + key, xsubnode); + return getAssertXNode(message + " key " + key, xsubnode, expectedClass); } protected void assertUserJackXNodeOrdering(String message, XNode xnode) { if (xnode instanceof RootXNodeImpl) { - xnode = ((RootXNodeImpl)xnode).getSubnode(); + xnode = ((RootXNodeImpl) xnode).getSubnode(); } - MapXNodeImpl xmap = getAssertXNode(message+": top", xnode, MapXNodeImpl.class); + MapXNodeImpl xmap = getAssertXNode(message + ": top", xnode, MapXNodeImpl.class); Set> reTopMapEntrySet = xmap.entrySet(); Iterator> reTopMapEntrySetIter = reTopMapEntrySet.iterator(); Entry reTopMapEntry0 = reTopMapEntrySetIter.next(); - assertEquals(message+": Wrong entry 0, the xnodes were shuffled", "oid", reTopMapEntry0.getKey().getLocalPart()); + assertEquals(message + ": Wrong entry 0, the xnodes were shuffled", "oid", reTopMapEntry0.getKey().getLocalPart()); Entry reTopMapEntry1 = reTopMapEntrySetIter.next(); - assertEquals(message+": Wrong entry 1, the xnodes were shuffled", "version", reTopMapEntry1.getKey().getLocalPart()); + assertEquals(message + ": Wrong entry 1, the xnodes were shuffled", "version", reTopMapEntry1.getKey().getLocalPart()); Entry reTopMapEntry2 = reTopMapEntrySetIter.next(); - assertEquals(message+": Wrong entry 2, the xnodes were shuffled", UserType.F_NAME, reTopMapEntry2.getKey()); + assertEquals(message + ": Wrong entry 2, the xnodes were shuffled", UserType.F_NAME, reTopMapEntry2.getKey()); Entry reTopMapEntry3 = reTopMapEntrySetIter.next(); - assertEquals(message+": Wrong entry 3, the xnodes were shuffled", UserType.F_DESCRIPTION, reTopMapEntry3.getKey()); + assertEquals(message + ": Wrong entry 3, the xnodes were shuffled", UserType.F_DESCRIPTION, reTopMapEntry3.getKey()); } diff --git a/infra/prism-impl/src/test/java/com/evolveum/midpoint/prism/lex/TestProtectedString.java b/infra/prism-impl/src/test/java/com/evolveum/midpoint/prism/lex/TestProtectedString.java index ae8f976ee9b..38c745de3e7 100644 --- a/infra/prism-impl/src/test/java/com/evolveum/midpoint/prism/lex/TestProtectedString.java +++ b/infra/prism-impl/src/test/java/com/evolveum/midpoint/prism/lex/TestProtectedString.java @@ -6,30 +6,21 @@ */ package com.evolveum.midpoint.prism.lex; +import static org.testng.AssertJUnit.assertEquals; + +import static com.evolveum.midpoint.prism.util.PrismTestUtil.createDefaultParsingContext; + +import org.testng.annotations.Test; + import com.evolveum.midpoint.prism.AbstractPrismTest; import com.evolveum.midpoint.prism.PrismContext; -import com.evolveum.midpoint.prism.impl.PrismContextImpl; import com.evolveum.midpoint.prism.PrismInternalTestUtil; import com.evolveum.midpoint.prism.crypto.Protector; -import com.evolveum.midpoint.prism.util.PrismTestUtil; +import com.evolveum.midpoint.prism.impl.PrismContextImpl; import com.evolveum.midpoint.prism.impl.xnode.MapXNodeImpl; -import com.evolveum.midpoint.util.PrettyPrinter; -import com.evolveum.midpoint.util.exception.SchemaException; +import com.evolveum.midpoint.prism.util.PrismTestUtil; import com.evolveum.prism.xml.ns._public.types_3.ProtectedStringType; -import org.testng.annotations.BeforeSuite; -import org.testng.annotations.Test; -import org.xml.sax.SAXException; - -import java.io.IOException; - -import static com.evolveum.midpoint.prism.PrismInternalTestUtil.DEFAULT_NAMESPACE_PREFIX; -import static com.evolveum.midpoint.prism.util.PrismTestUtil.createDefaultParsingContext; -import static org.testng.AssertJUnit.assertEquals; - -/** - * @author mederly - */ public class TestProtectedString extends AbstractPrismTest { @Test diff --git a/infra/prism-impl/src/test/java/com/evolveum/midpoint/prism/path/ItemPathTest.java b/infra/prism-impl/src/test/java/com/evolveum/midpoint/prism/path/ItemPathTest.java index ad608ab11ce..2bcc8be6dd8 100644 --- a/infra/prism-impl/src/test/java/com/evolveum/midpoint/prism/path/ItemPathTest.java +++ b/infra/prism-impl/src/test/java/com/evolveum/midpoint/prism/path/ItemPathTest.java @@ -7,6 +7,7 @@ package com.evolveum.midpoint.prism.path; +import com.evolveum.midpoint.prism.AbstractPrismTest; import com.evolveum.midpoint.prism.PrismInternalTestUtil; import com.evolveum.midpoint.prism.impl.marshaller.ItemPathHolder; import com.evolveum.midpoint.prism.impl.marshaller.PathHolderSegment; @@ -48,7 +49,7 @@ * * @author semancik */ -public class ItemPathTest { +public class ItemPathTest extends AbstractPrismTest { private static final String FILENAME_STRANGECHARS = "src/test/resources/path/strange.txt"; private static final String FILENAME_DATA_XML = "src/test/resources/path/data.xml"; diff --git a/infra/schema-pure-jaxb/pom.xml b/infra/schema-pure-jaxb/pom.xml index dbd03200410..9d6ceeb88f1 100644 --- a/infra/schema-pure-jaxb/pom.xml +++ b/infra/schema-pure-jaxb/pom.xml @@ -35,7 +35,6 @@ com.evolveum.midpoint.tools test-ng - 4.1-SNAPSHOT test diff --git a/infra/schema/src/test/java/com/evolveum/midpoint/schema/parser/AbstractParserTest.java b/infra/schema/src/test/java/com/evolveum/midpoint/schema/parser/AbstractParserTest.java index 3bb452b5a56..b1301625a7d 100644 --- a/infra/schema/src/test/java/com/evolveum/midpoint/schema/parser/AbstractParserTest.java +++ b/infra/schema/src/test/java/com/evolveum/midpoint/schema/parser/AbstractParserTest.java @@ -10,36 +10,23 @@ import static com.evolveum.midpoint.schema.TestConstants.COMMON_DIR_PATH; import java.io.File; -import java.io.IOException; import org.testng.annotations.BeforeClass; -import org.testng.annotations.BeforeSuite; import org.testng.annotations.Optional; import org.testng.annotations.Parameters; -import org.xml.sax.SAXException; import com.evolveum.midpoint.prism.PrismContext; import com.evolveum.midpoint.prism.util.PrismTestUtil; -import com.evolveum.midpoint.schema.MidPointPrismContextFactory; -import com.evolveum.midpoint.schema.constants.MidPointConstants; -import com.evolveum.midpoint.tools.testng.AbstractUnitTest; -import com.evolveum.midpoint.util.PrettyPrinter; -import com.evolveum.midpoint.util.exception.SchemaException; +import com.evolveum.midpoint.schema.AbstractSchemaTest; /** * @author mederly */ -public abstract class AbstractParserTest extends AbstractUnitTest { +public abstract class AbstractParserTest extends AbstractSchemaTest { protected String language; protected boolean namespaces; - @BeforeSuite - public void setup() throws SchemaException, SAXException, IOException { - PrettyPrinter.setDefaultNamespacePrefix(MidPointConstants.NS_MIDPOINT_PUBLIC_PREFIX); - PrismTestUtil.resetPrismContext(MidPointPrismContextFactory.FACTORY); - } - @BeforeClass @Parameters({ "language", "namespaces" }) public void temp(@Optional String language, @Optional Boolean namespaces) { diff --git a/infra/schema/src/test/java/com/evolveum/midpoint/schema/path/ItemPathCanonicalizationTest.java b/infra/schema/src/test/java/com/evolveum/midpoint/schema/path/ItemPathCanonicalizationTest.java index 5693b02152e..d5cea5d66d7 100644 --- a/infra/schema/src/test/java/com/evolveum/midpoint/schema/path/ItemPathCanonicalizationTest.java +++ b/infra/schema/src/test/java/com/evolveum/midpoint/schema/path/ItemPathCanonicalizationTest.java @@ -7,45 +7,25 @@ package com.evolveum.midpoint.schema.path; -import static com.evolveum.midpoint.prism.util.PrismTestUtil.getPrismContext; import static org.testng.AssertJUnit.assertEquals; -import static org.testng.AssertJUnit.assertTrue; -import com.evolveum.midpoint.prism.Containerable; +import static com.evolveum.midpoint.prism.util.PrismTestUtil.getPrismContext; + +import javax.xml.namespace.QName; +import org.testng.annotations.Test; + +import com.evolveum.midpoint.prism.Containerable; import com.evolveum.midpoint.prism.impl.path.CanonicalItemPathImpl; import com.evolveum.midpoint.prism.path.ItemPath; +import com.evolveum.midpoint.schema.AbstractSchemaTest; import com.evolveum.midpoint.schema.constants.SchemaConstants; import com.evolveum.midpoint.xml.ns._public.common.common_3.ActivationType; import com.evolveum.midpoint.xml.ns._public.common.common_3.AssignmentType; import com.evolveum.midpoint.xml.ns._public.common.common_3.ResourceType; import com.evolveum.midpoint.xml.ns._public.common.common_3.UserType; -import org.testng.annotations.BeforeSuite; -import org.testng.annotations.Test; - -import com.evolveum.midpoint.prism.util.PrismTestUtil; -import com.evolveum.midpoint.schema.MidPointPrismContextFactory; -import com.evolveum.midpoint.schema.constants.MidPointConstants; -import com.evolveum.midpoint.util.PrettyPrinter; -import com.evolveum.midpoint.util.exception.SchemaException; - -import java.io.IOException; - -import javax.xml.namespace.QName; - -import org.xml.sax.SAXException; - -public class ItemPathCanonicalizationTest { - - public ItemPathCanonicalizationTest() { - } - - @BeforeSuite - public void setup() throws SchemaException, SAXException, IOException { - PrettyPrinter.setDefaultNamespacePrefix(MidPointConstants.NS_MIDPOINT_PUBLIC_PREFIX); - PrismTestUtil.resetPrismContext(MidPointPrismContextFactory.FACTORY); - } +public class ItemPathCanonicalizationTest extends AbstractSchemaTest { @Test public void testCanonicalizationEmpty() { @@ -138,7 +118,7 @@ public void testCanonicalizationMixedNs2() { // from IntegrationTestTools private static final String NS_RESOURCE_DUMMY_CONFIGURATION = "http://midpoint.evolveum.com/xml/ns/public/connector/icf-1/bundle/com.evolveum.icf.dummy/com.evolveum.icf.dummy.connector.DummyConnector"; - private static final QName RESOURCE_DUMMY_CONFIGURATION_USELESS_STRING_ELEMENT_NAME = new QName(NS_RESOURCE_DUMMY_CONFIGURATION ,"uselessString"); + private static final QName RESOURCE_DUMMY_CONFIGURATION_USELESS_STRING_ELEMENT_NAME = new QName(NS_RESOURCE_DUMMY_CONFIGURATION, "uselessString"); @Test public void testCanonicalizationLong() { @@ -149,15 +129,14 @@ public void testCanonicalizationLong() { "\\" + COMMON + "#connectorConfiguration\\" + ICFS + "#configurationProperties\\" + ICF + "/bundle/com.evolveum.icf.dummy/com.evolveum.icf.dummy.connector.DummyConnector#uselessString"); } - private void assertCanonical(ItemPath path, Class clazz, String... representations) { CanonicalItemPathImpl canonicalItemPath = CanonicalItemPathImpl.create(path, clazz, getPrismContext()); System.out.println(path + " => " + canonicalItemPath.asString() + " (" + clazz + ")"); for (int i = 0; i < representations.length; i++) { String c = canonicalItemPath.allUpToIncluding(i).asString(); - assertEquals("Wrong string representation of length " + (i+1), representations[i], c); + assertEquals("Wrong string representation of length " + (i + 1), representations[i], c); } - assertEquals("Wrong string representation ", representations[representations.length-1], canonicalItemPath.asString()); + assertEquals("Wrong string representation ", representations[representations.length - 1], canonicalItemPath.asString()); } } diff --git a/infra/schema/src/test/java/com/evolveum/midpoint/schema/performance/AbstractSchemaPerformanceTest.java b/infra/schema/src/test/java/com/evolveum/midpoint/schema/performance/AbstractSchemaPerformanceTest.java index eac411af0c5..427147655ad 100644 --- a/infra/schema/src/test/java/com/evolveum/midpoint/schema/performance/AbstractSchemaPerformanceTest.java +++ b/infra/schema/src/test/java/com/evolveum/midpoint/schema/performance/AbstractSchemaPerformanceTest.java @@ -6,38 +6,36 @@ */ package com.evolveum.midpoint.schema.performance; +import static com.evolveum.midpoint.prism.util.PrismTestUtil.getPrismContext; + +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; +import java.io.PrintWriter; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import org.jetbrains.annotations.NotNull; +import org.testng.annotations.BeforeSuite; +import org.xml.sax.SAXException; + import com.evolveum.midpoint.prism.PrismObject; import com.evolveum.midpoint.prism.util.PrismTestUtil; import com.evolveum.midpoint.schema.MidPointPrismContextFactory; import com.evolveum.midpoint.schema.constants.MidPointConstants; import com.evolveum.midpoint.schema.internals.InternalsConfig; +import com.evolveum.midpoint.tools.testng.AbstractUnitTest; import com.evolveum.midpoint.util.CheckedProducer; import com.evolveum.midpoint.util.PrettyPrinter; import com.evolveum.midpoint.util.exception.CommonException; import com.evolveum.midpoint.util.exception.SchemaException; -import com.evolveum.midpoint.util.logging.Trace; -import com.evolveum.midpoint.util.logging.TraceManager; import com.evolveum.midpoint.xml.ns._public.common.common_3.UserType; -import org.jetbrains.annotations.NotNull; -import org.testng.annotations.BeforeSuite; -import org.xml.sax.SAXException; -import java.io.*; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -import static com.evolveum.midpoint.prism.util.PrismTestUtil.getPrismContext; - -/** - * - */ -public class AbstractSchemaPerformanceTest { +public class AbstractSchemaPerformanceTest extends AbstractUnitTest { protected static final String LABEL = "new-mapxnode"; - protected static final Trace LOGGER = TraceManager.getTrace(AbstractSchemaPerformanceTest.class); - public static final File TEST_DIR = new File("src/test/resources/performance"); public static final File USER_JACK_FILE = new File(TEST_DIR, "user-jack.xml"); @@ -57,11 +55,11 @@ public void setup() throws SchemaException, SAXException, IOException { assert !InternalsConfig.isConsistencyChecks(); } - protected double measure(String label, CheckedProducer producer) throws CommonException, IOException { - return measure(label, producer, DEFAULT_EXECUTION, DEFAULT_REPEATS); + protected void measure(String label, CheckedProducer producer) throws CommonException, IOException { + measure(label, producer, DEFAULT_EXECUTION, DEFAULT_REPEATS); } - protected double measure(String label, CheckedProducer producer, long executionTime, int repeats) throws CommonException, IOException { + protected void measure(String label, CheckedProducer producer, long executionTime, int repeats) throws CommonException, IOException { List times = new ArrayList<>(); for (int i = 0; i < repeats; i++) { double micros = measureSingle(label, producer, executionTime); @@ -73,7 +71,7 @@ protected double measure(String label, CheckedProducer producer, long executi double max = times.stream().max(Double::compareTo).orElse(0.0); double sum = times.stream().mapToDouble(Double::doubleValue).sum(); double avg = sum / repeats; - double avg2 = (sum-min-max) / (repeats-2); + double avg2 = (sum - min - max) / (repeats - 2); resultsWriter.print(runId + ";" + new Date() + ";" + LABEL + ";" + label + ";" + executionTime + ";" + repeats + ";" + avg2 + ";" + avg + ";" + min + ";" + max); for (Double time : times) { resultsWriter.print(";" + time); @@ -82,7 +80,6 @@ protected double measure(String label, CheckedProducer producer, long executi resultsWriter.close(); System.out.println(label + ": Average without the best and the worst = " + avg2); - return avg; } protected double measureSingle(String label, CheckedProducer producer, long executionTime) throws CommonException { @@ -98,7 +95,7 @@ protected double measureSingle(String label, CheckedProducer producer, long e double micros = ((double) executionTime) * 1000 / (double) iteration; String message = label + ": " + iteration + " iterations in " + executionTime + " milliseconds (" + micros + " us per iteration)"; System.out.println(message); - LOGGER.info(message); + logger.info(message); return micros; } diff --git a/infra/schema/src/test/java/com/evolveum/midpoint/schema/performance/TestBasicPerformance.java b/infra/schema/src/test/java/com/evolveum/midpoint/schema/performance/TestBasicPerformance.java index 563c2dd16f9..f31225e22cf 100644 --- a/infra/schema/src/test/java/com/evolveum/midpoint/schema/performance/TestBasicPerformance.java +++ b/infra/schema/src/test/java/com/evolveum/midpoint/schema/performance/TestBasicPerformance.java @@ -18,40 +18,28 @@ import static com.evolveum.midpoint.prism.util.PrismTestUtil.getPrismContext; -/** - * - * - */ public class TestBasicPerformance extends AbstractSchemaPerformanceTest { @Test public void test010Dummy() throws Exception { - System.out.println("===[ test010Dummy ]==="); - measure("currentTimeMillis", () -> System.currentTimeMillis()); measure("long numbers addition", () -> System.currentTimeMillis() + 2000L); } @Test public void test100FindNameProperty() throws Exception { - System.out.println("===[ test100FindNameProperty ]==="); - PrismObject jack = getJack(); measure("findProperty(name)", () -> jack.findProperty(UserType.F_NAME)); } @Test public void test110FindNameItem() throws Exception { - System.out.println("===[ test110FindNameItem ]==="); - PrismObject jack = getJack(); measure("findItem(name)", () -> jack.findItem(UserType.F_NAME)); } @Test public void test120FindExtensionProperty() throws Exception { - System.out.println("===[ test120FindExtensionProperty ]==="); - PrismObject jack = getJack(); ItemPath bar23 = ItemPath.create(UserType.F_EXTENSION, "bar23"); measure("findProperty(extension/bar23)", () -> jack.findProperty(bar23)); @@ -59,8 +47,6 @@ public void test120FindExtensionProperty() throws Exception { @Test public void test130FindExtensionItem() throws Exception { - System.out.println("===[ test130FindExtensionItem ]==="); - PrismObject jack = getJack(); ItemPath bar23 = ItemPath.create(UserType.F_EXTENSION, "bar23"); measure("findItem(extension/bar23)", () -> jack.findItem(bar23)); @@ -68,8 +54,6 @@ public void test130FindExtensionItem() throws Exception { @Test public void test200SetName() throws Exception { - System.out.println("===[ test200SetName ]==="); - PrismObject jack = getJack(); measure("setName(name)", () -> { jack.asObjectable().setName(PolyStringType.fromOrig("jack_" + Math.random())); @@ -79,8 +63,6 @@ public void test200SetName() throws Exception { @Test public void test210SetNameViaProperty() throws Exception { - System.out.println("===[ test210SetNameViaProperty ]==="); - PrismObject jack = getJack(); measure("findProperty(name).setRealValue", () -> { jack.findProperty(UserType.F_NAME).setRealValue(PolyString.fromOrig("jack_" + Math.random())); @@ -90,8 +72,6 @@ public void test210SetNameViaProperty() throws Exception { @Test public void test215SetNameViaPropertyUsingExistingValue() throws Exception { - System.out.println("===[ test215SetNameViaPropertyUsingExistingValue ]==="); - PrismObject jack = getJack(); PolyString realValue = PolyString.fromOrig("jack_" + Math.random()); measure("findProperty(name).setRealValue(existing)", () -> { @@ -102,8 +82,6 @@ public void test215SetNameViaPropertyUsingExistingValue() throws Exception { @Test public void test220SetExtensionItemString() throws Exception { - System.out.println("===[ test220SetExtensionItemString ]==="); - PrismObject jack = getJack(); ItemPath bar23 = ItemPath.create(UserType.F_EXTENSION, "bar23"); measure("findProperty(extension/bar23).setRealValue", () -> { @@ -114,8 +92,6 @@ public void test220SetExtensionItemString() throws Exception { @Test public void test230SetExtensionItemPolyString() throws Exception { - System.out.println("===[ test230SetExtensionItemPolyString ]==="); - PrismObject jack = getJack(); ItemPath bar23 = ItemPath.create(UserType.F_EXTENSION, "bar23"); measure("findProperty(extension/bar23).setRealValue(polystring)", () -> { @@ -126,16 +102,12 @@ public void test230SetExtensionItemPolyString() throws Exception { @Test public void test300Clone() throws Exception { - System.out.println("===[ test300Clone ]==="); - PrismObject jack = getJack(); measure("jack.clone", () -> jack.clone()); } @Test public void test310ParseXml() throws Exception { - System.out.println("===[ test310ParseXml ]==="); - PrismObject jack = getJack(); String string = getPrismContext().xmlSerializer().serialize(jack); measure("parse XML (" + string.length() + " chars)", () -> getPrismContext().parserFor(string).xml().parse()); @@ -144,8 +116,6 @@ public void test310ParseXml() throws Exception { @Test public void test320ParseJson() throws Exception { - System.out.println("===[ test320ParseJson ]==="); - PrismObject jack = getJack(); String string = getPrismContext().jsonSerializer().serialize(jack); measure("parse JSON (" + string.length() + " chars)", () -> getPrismContext().parserFor(string).json().parse()); @@ -154,8 +124,6 @@ public void test320ParseJson() throws Exception { @Test public void test330ParseYaml() throws Exception { - System.out.println("===[ test330ParseYaml ]==="); - PrismObject jack = getJack(); String string = getPrismContext().yamlSerializer().serialize(jack); measure("parse YAML (" + string.length() + " chars)", () -> getPrismContext().parserFor(string).yaml().parse()); @@ -164,8 +132,6 @@ public void test330ParseYaml() throws Exception { @Test public void test340ParseXNode() throws Exception { - System.out.println("===[ test340ParseXNode ]==="); - PrismObject jack = getJack(); RootXNode xnode = getPrismContext().xnodeSerializer().serialize(jack); measure("parse XNode", () -> getPrismContext().parserFor(xnode).parse()); @@ -173,32 +139,24 @@ public void test340ParseXNode() throws Exception { @Test public void test350SerializeToXml() throws Exception { - System.out.println("===[ test350SerializeToXml ]==="); - PrismObject jack = getJack(); measure("serialize to XML", () -> getPrismContext().xmlSerializer().serialize(jack)); } @Test public void test360SerializeToJson() throws Exception { - System.out.println("===[ test360SerializeToJson ]==="); - PrismObject jack = getJack(); measure("serialize to JSON", () -> getPrismContext().jsonSerializer().serialize(jack)); } @Test public void test370SerializeToYaml() throws Exception { - System.out.println("===[ test370SerializeToYaml ]==="); - PrismObject jack = getJack(); measure("serialize to YAML", () -> getPrismContext().yamlSerializer().serialize(jack)); } @Test public void test400FindNameDefinition() throws Exception { - System.out.println("===[ test400FindNameDefinition ]==="); - SchemaRegistry schemaRegistry = getPrismContext().getSchemaRegistry(); PrismObjectDefinition userDefinition = schemaRegistry.findObjectDefinitionByCompileTimeClass(UserType.class); measure("userDefinition.findItemDefinition(UserType.F_NAME)", () -> userDefinition.findItemDefinition(UserType.F_NAME)); @@ -206,8 +164,6 @@ public void test400FindNameDefinition() throws Exception { @Test public void test410FindAdminGuiConfigurationDefinition() throws Exception { - System.out.println("===[ test410FindAdminGuiConfigurationDefinition ]==="); - SchemaRegistry schemaRegistry = getPrismContext().getSchemaRegistry(); PrismObjectDefinition userDefinition = schemaRegistry.findObjectDefinitionByCompileTimeClass(UserType.class); measure("userDefinition.findItemDefinition(UserType.F_ADMIN_GUI_CONFIGURATION)", () -> userDefinition.findItemDefinition(UserType.F_ADMIN_GUI_CONFIGURATION)); @@ -215,10 +171,7 @@ public void test410FindAdminGuiConfigurationDefinition() throws Exception { @Test public void test420FindUserDefinition() throws Exception { - System.out.println("===[ test420FindUserDefinition ]==="); - SchemaRegistry schemaRegistry = getPrismContext().getSchemaRegistry(); measure("schemaRegistry.findObjectDefinitionByCompileTimeClass(UserType.class)", () -> schemaRegistry.findObjectDefinitionByCompileTimeClass(UserType.class)); } - } diff --git a/infra/schema/src/test/java/com/evolveum/midpoint/schema/performance/TestDeltaPerformance.java b/infra/schema/src/test/java/com/evolveum/midpoint/schema/performance/TestDeltaPerformance.java index 26cb63aeedc..03b4eb01d80 100644 --- a/infra/schema/src/test/java/com/evolveum/midpoint/schema/performance/TestDeltaPerformance.java +++ b/infra/schema/src/test/java/com/evolveum/midpoint/schema/performance/TestDeltaPerformance.java @@ -21,16 +21,10 @@ import static com.evolveum.midpoint.prism.util.PrismTestUtil.getPrismContext; -/** - * - * - */ public class TestDeltaPerformance extends AbstractSchemaPerformanceTest { @Test public void test100ApplyNameDelta() throws Exception { - System.out.println("===[ test100ApplyNameDelta ]==="); - PrismObject jack = getJack(); PrismObject temp = jack.clone(); ObjectDelta delta = getPrismContext().deltaFor(UserType.class) @@ -45,8 +39,6 @@ public void test100ApplyNameDelta() throws Exception { @Test public void test102ApplyPasswordValueDelta() throws Exception { - System.out.println("===[ test102ApplyPasswordValueDelta ]==="); - PrismObject jack = getJack(); PrismObject temp = jack.clone(); ObjectDelta delta = getPrismContext().deltaFor(UserType.class) @@ -60,8 +52,6 @@ public void test102ApplyPasswordValueDelta() throws Exception { @Test public void test104ApplyExtensionItemDelta() throws Exception { - System.out.println("===[ test104ApplyExtensionItemDelta ]==="); - PrismObject jack = getJack(); PrismObject temp = jack.clone(); ObjectDelta delta = getPrismContext().deltaFor(UserType.class) @@ -75,8 +65,6 @@ public void test104ApplyExtensionItemDelta() throws Exception { @Test public void test110ApplyDeltaWith5Modifications() throws Exception { - System.out.println("===[ test110ApplyDeltaWith5Modifications ]==="); - PrismObject jack = getJack(); PrismObject temp = jack.clone(); ObjectDelta delta = getPrismContext().deltaFor(UserType.class) @@ -93,13 +81,12 @@ public void test110ApplyDeltaWith5Modifications() throws Exception { } private PrismPropertyDefinition def(String name) { - return getPrismContext().definitionFactory().createPropertyDefinition(new QName(NS_FOO, name), DOMUtil.XSD_STRING); + return getPrismContext().definitionFactory() + .createPropertyDefinition(new QName(NS_FOO, name), DOMUtil.XSD_STRING); } @Test public void test120ApplyDeltaWith30Modifications() throws Exception { - System.out.println("===[ test120ApplyDeltaWith30Modifications ]==="); - PrismObject jack = getJack(); PrismObject temp = jack.clone(); ObjectDelta delta = getPrismContext().deltaFor(UserType.class) @@ -139,5 +126,4 @@ public void test120ApplyDeltaWith30Modifications() throws Exception { delta.applyTo(jack2); measure("jack2.diff(jack)", () -> jack2.diff(jack)); } - } diff --git a/infra/schema/src/test/java/com/evolveum/midpoint/schema/processor/SchemaProcessorTest.java b/infra/schema/src/test/java/com/evolveum/midpoint/schema/processor/SchemaProcessorTest.java index 85600e6566e..98849d751ee 100644 --- a/infra/schema/src/test/java/com/evolveum/midpoint/schema/processor/SchemaProcessorTest.java +++ b/infra/schema/src/test/java/com/evolveum/midpoint/schema/processor/SchemaProcessorTest.java @@ -7,25 +7,25 @@ package com.evolveum.midpoint.schema.processor; -import static org.testng.AssertJUnit.assertNotNull; -import static org.testng.AssertJUnit.assertFalse; -import static org.testng.AssertJUnit.assertTrue; -import static org.testng.AssertJUnit.assertEquals; +import static org.testng.AssertJUnit.*; import java.io.IOException; -import com.evolveum.midpoint.prism.*; -import com.evolveum.midpoint.prism.path.ItemName; -import com.evolveum.midpoint.prism.impl.schema.PrismSchemaImpl; +import org.testng.AssertJUnit; import org.testng.annotations.BeforeSuite; import org.testng.annotations.Test; -import org.testng.AssertJUnit; - import org.w3c.dom.Document; import org.xml.sax.SAXException; +import com.evolveum.midpoint.prism.ItemProcessing; +import com.evolveum.midpoint.prism.MutablePrismContainerDefinition; +import com.evolveum.midpoint.prism.PrismContainerDefinition; +import com.evolveum.midpoint.prism.PrismPropertyDefinition; +import com.evolveum.midpoint.prism.impl.schema.PrismSchemaImpl; +import com.evolveum.midpoint.prism.path.ItemName; import com.evolveum.midpoint.prism.schema.PrismSchema; import com.evolveum.midpoint.prism.util.PrismTestUtil; +import com.evolveum.midpoint.schema.AbstractSchemaTest; import com.evolveum.midpoint.schema.MidPointPrismContextFactory; import com.evolveum.midpoint.schema.constants.MidPointConstants; import com.evolveum.midpoint.schema.constants.SchemaConstants; @@ -36,7 +36,7 @@ import com.evolveum.midpoint.xml.ns._public.common.common_3.ShadowKindType; import com.evolveum.prism.xml.ns._public.types_3.ProtectedStringType; -public class SchemaProcessorTest { +public class SchemaProcessorTest extends AbstractSchemaTest { private static final String SCHEMA_NS = "http://foo.com/xml/ns/schema"; @@ -117,37 +117,36 @@ public void testRoundTripGeneric() throws SchemaException { // THEN - PrismPropertyDefinition number1def = newSchema.findItemDefinitionByElementName(new ItemName(SCHEMA_NS,"number1"), PrismPropertyDefinition.class); - assertEquals(new ItemName(SCHEMA_NS,"number1"),number1def.getItemName()); - assertEquals(DOMUtil.XSD_INT,number1def.getTypeName()); + PrismPropertyDefinition number1def = newSchema.findItemDefinitionByElementName(new ItemName(SCHEMA_NS, "number1"), PrismPropertyDefinition.class); + assertEquals(new ItemName(SCHEMA_NS, "number1"), number1def.getItemName()); + assertEquals(DOMUtil.XSD_INT, number1def.getTypeName()); - PrismContainerDefinition newContainerDef = schema.findContainerDefinitionByType(new ItemName(SCHEMA_NS,"ContainerType")); - assertEquals(new ItemName(SCHEMA_NS,"ContainerType"),newContainerDef.getTypeName()); + PrismContainerDefinition newContainerDef = schema.findContainerDefinitionByType(new ItemName(SCHEMA_NS, "ContainerType")); + assertEquals(new ItemName(SCHEMA_NS, "ContainerType"), newContainerDef.getTypeName()); - PrismPropertyDefinition loginDef = newContainerDef.findPropertyDefinition(new ItemName(SCHEMA_NS,"login")); - assertEquals(new ItemName(SCHEMA_NS,"login"), loginDef.getItemName()); + PrismPropertyDefinition loginDef = newContainerDef.findPropertyDefinition(new ItemName(SCHEMA_NS, "login")); + assertEquals(new ItemName(SCHEMA_NS, "login"), loginDef.getItemName()); assertEquals(DOMUtil.XSD_STRING, loginDef.getTypeName()); - assertTrue("Read flag is wrong",loginDef.canRead()); - assertTrue("Create flag is wrong",loginDef.canAdd()); - assertTrue("Update flag is wrong",loginDef.canModify()); + assertTrue("Read flag is wrong", loginDef.canRead()); + assertTrue("Create flag is wrong", loginDef.canAdd()); + assertTrue("Update flag is wrong", loginDef.canModify()); - PrismPropertyDefinition passwdDef = newContainerDef.findPropertyDefinition(new ItemName(SCHEMA_NS,"password")); - assertEquals(new ItemName(SCHEMA_NS,"password"), passwdDef.getItemName()); + PrismPropertyDefinition passwdDef = newContainerDef.findPropertyDefinition(new ItemName(SCHEMA_NS, "password")); + assertEquals(new ItemName(SCHEMA_NS, "password"), passwdDef.getItemName()); assertEquals(ProtectedStringType.COMPLEX_TYPE, passwdDef.getTypeName()); - PrismPropertyDefinition credDef = newContainerDef.findPropertyDefinition(new ItemName(SchemaConstants.NS_C,"credentials")); - assertEquals(new ItemName(SchemaConstants.NS_C,"credentials"), credDef.getItemName()); - assertEquals(new ItemName(SchemaConstants.NS_C,"CredentialsType"), credDef.getTypeName()); + PrismPropertyDefinition credDef = newContainerDef.findPropertyDefinition(new ItemName(SchemaConstants.NS_C, "credentials")); + assertEquals(new ItemName(SchemaConstants.NS_C, "credentials"), credDef.getItemName()); + assertEquals(new ItemName(SchemaConstants.NS_C, "CredentialsType"), credDef.getTypeName()); - PrismPropertyDefinition countDef = newContainerDef.findPropertyDefinition(new ItemName(SCHEMA_NS,"counter")); - assertEquals(new ItemName(SCHEMA_NS,"counter"), countDef.getItemName()); + PrismPropertyDefinition countDef = newContainerDef.findPropertyDefinition(new ItemName(SCHEMA_NS, "counter")); + assertEquals(new ItemName(SCHEMA_NS, "counter"), countDef.getItemName()); assertEquals(DOMUtil.XSD_INT, countDef.getTypeName()); - assertTrue("Read flag is wrong",countDef.canRead()); - assertFalse("Create flag is wrong",countDef.canAdd()); - assertFalse("Update flag is wrong",countDef.canModify()); + assertTrue("Read flag is wrong", countDef.canRead()); + assertFalse("Create flag is wrong", countDef.canAdd()); + assertFalse("Update flag is wrong", countDef.canModify()); } - @Test public void testRoundTripResource() throws SchemaException { // GIVEN @@ -198,18 +197,18 @@ public void testRoundTripResource() throws SchemaException { // THEN - ObjectClassComplexTypeDefinition newObjectClassDef = newSchema.findObjectClassDefinition(new ItemName(SCHEMA_NS,"AccountObjectClass")); - assertEquals(new ItemName(SCHEMA_NS,"AccountObjectClass"),newObjectClassDef.getTypeName()); + ObjectClassComplexTypeDefinition newObjectClassDef = newSchema.findObjectClassDefinition(new ItemName(SCHEMA_NS, "AccountObjectClass")); + assertEquals(new ItemName(SCHEMA_NS, "AccountObjectClass"), newObjectClassDef.getTypeName()); assertEquals(ShadowKindType.ACCOUNT, newObjectClassDef.getKind()); assertTrue(newObjectClassDef.isDefaultInAKind()); - PrismPropertyDefinition loginDef = newObjectClassDef.findPropertyDefinition(new ItemName(SCHEMA_NS,"login")); - assertEquals(new ItemName(SCHEMA_NS,"login"), loginDef.getItemName()); + PrismPropertyDefinition loginDef = newObjectClassDef.findPropertyDefinition(new ItemName(SCHEMA_NS, "login")); + assertEquals(new ItemName(SCHEMA_NS, "login"), loginDef.getItemName()); assertEquals(DOMUtil.XSD_STRING, loginDef.getTypeName()); assertFalse(loginDef.isIgnored()); - PrismPropertyDefinition passwdDef = newObjectClassDef.findPropertyDefinition(new ItemName(SCHEMA_NS,"password")); - assertEquals(new ItemName(SCHEMA_NS,"password"), passwdDef.getItemName()); + PrismPropertyDefinition passwdDef = newObjectClassDef.findPropertyDefinition(new ItemName(SCHEMA_NS, "password")); + assertEquals(new ItemName(SCHEMA_NS, "password"), passwdDef.getItemName()); assertEquals(ProtectedStringType.COMPLEX_TYPE, passwdDef.getTypeName()); assertFalse(passwdDef.isIgnored()); @@ -218,8 +217,8 @@ public void testRoundTripResource() throws SchemaException { // assertEquals(new SingleNamePath(SchemaConstants.NS_C,"CredentialsType"), credDef.getTypeName()); // assertFalse(credDef.isIgnored()); - PrismPropertyDefinition sepDef = newObjectClassDef.findPropertyDefinition(new ItemName(SCHEMA_NS,"sep")); - assertEquals(new ItemName(SCHEMA_NS,"sep"), sepDef.getItemName()); + PrismPropertyDefinition sepDef = newObjectClassDef.findPropertyDefinition(new ItemName(SCHEMA_NS, "sep")); + assertEquals(new ItemName(SCHEMA_NS, "sep"), sepDef.getItemName()); assertEquals(DOMUtil.XSD_STRING, sepDef.getTypeName()); assertTrue(sepDef.isIgnored()); diff --git a/infra/schema/src/test/java/com/evolveum/midpoint/schema/util/JAXBUtilTest.java b/infra/schema/src/test/java/com/evolveum/midpoint/schema/util/JAXBUtilTest.java deleted file mode 100644 index 3128f189111..00000000000 --- a/infra/schema/src/test/java/com/evolveum/midpoint/schema/util/JAXBUtilTest.java +++ /dev/null @@ -1,120 +0,0 @@ -/* - * Copyright (c) 2010-2013 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.util; - -import static org.testng.AssertJUnit.assertTrue; - -import java.io.File; -import java.io.FileNotFoundException; -import java.io.IOException; - -import javax.xml.bind.JAXBException; - -import com.evolveum.midpoint.prism.impl.util.JaxbTestUtil; -import com.evolveum.prism.xml.ns._public.types_3.PolyStringType; - -import org.testng.annotations.BeforeSuite; -import org.testng.annotations.Test; -import org.xml.sax.SAXException; - -import com.evolveum.midpoint.prism.util.PrismTestUtil; -import com.evolveum.midpoint.schema.MidPointPrismContextFactory; -import com.evolveum.midpoint.schema.constants.MidPointConstants; -import com.evolveum.midpoint.util.PrettyPrinter; -import com.evolveum.midpoint.util.exception.SchemaException; -import com.evolveum.midpoint.xml.ns._public.common.common_3.UserType; - -/** - * @author Pavol Mederly - * - */ -@Deprecated -public class JAXBUtilTest { - - @BeforeSuite - public void setup() throws SchemaException, SAXException, IOException { - PrettyPrinter.setDefaultNamespacePrefix(MidPointConstants.NS_MIDPOINT_PUBLIC_PREFIX); - PrismTestUtil.resetPrismContext(MidPointPrismContextFactory.FACTORY); - } - - @Test - public void testUnmarshallerUtf() throws JAXBException, SchemaException, FileNotFoundException { - // GIVEN - - UserType user = JaxbTestUtil.getInstance().unmarshalElement(new File("src/test/resources/util/user-utf8.xml"), UserType.class) - .getValue(); - - // WHEN - - PolyStringType fullName = user.getFullName(); - - // THEN - - assertTrue("National characters incorrectly decoded", "Jožko Nováčik".equals(fullName.getOrig())); - } - - @Test - public void testUnmarshallerIso88592() throws JAXBException, SchemaException, FileNotFoundException { - // GIVEN - - UserType user = JaxbTestUtil.getInstance().unmarshalElement(new File("src/test/resources/util/user-8859-2.xml"),UserType.class) - .getValue(); - - // WHEN - - PolyStringType fullname = user.getFullName(); - - // THEN - - assertTrue("National characters incorrectly decoded", "Jožko Nováčik".equals(fullname.getOrig())); - } - - @Test - public void testUnmarshallerStringUtf8() throws JAXBException, SchemaException { - // GIVEN - - String s = " " + - "" + - " Jožko Nováčikjozko novacik" + - ""; - - UserType user = JaxbTestUtil.getInstance().unmarshalElement(s, UserType.class).getValue(); - - // WHEN - - PolyStringType fullname = user.getFullName(); - - // THEN - - assertTrue("Diacritics correctly decoded", "Jožko Nováčik".equals(fullname.getOrig())); - } - - @Test - public void testUnmarshallerStringIso88592() throws JAXBException, SchemaException { - // GIVEN - - String s = " " + - "" + - " Jožko Nováčikjozko novacik" + - ""; - - UserType user = JaxbTestUtil.getInstance().unmarshalElement(s, UserType.class).getValue(); - - // WHEN - - PolyStringType fullname = user.getFullName(); - - // THEN - - assertTrue("Diacritics correctly decoded", "Jožko Nováčik".equals(fullname.getOrig())); - } - -} diff --git a/infra/schema/src/test/java/com/evolveum/midpoint/schema/util/XsdTypeConverterTest.java b/infra/schema/src/test/java/com/evolveum/midpoint/schema/util/XsdTypeConverterTest.java index ef84ee63d3a..aad695dbb1b 100644 --- a/infra/schema/src/test/java/com/evolveum/midpoint/schema/util/XsdTypeConverterTest.java +++ b/infra/schema/src/test/java/com/evolveum/midpoint/schema/util/XsdTypeConverterTest.java @@ -26,6 +26,7 @@ import com.evolveum.midpoint.prism.util.PrismTestUtil; import com.evolveum.midpoint.schema.constants.ObjectTypes; import com.evolveum.midpoint.schema.constants.SchemaConstants; +import com.evolveum.midpoint.tools.testng.AbstractUnitTest; import com.evolveum.midpoint.util.DOMUtil; import com.evolveum.midpoint.util.exception.SchemaException; import com.evolveum.midpoint.xml.ns._public.common.common_3.ShadowType; @@ -34,7 +35,7 @@ /** * @author Radovan Semancik */ -public class XsdTypeConverterTest { +public class XsdTypeConverterTest extends AbstractUnitTest { // TODO: convert this test to create a Protected string structure in prism and then check it in the DOM view diff --git a/infra/test-util/src/test/java/com/evolveum/midpoint/test/util/DerbyControllerTest.java b/infra/test-util/src/test/java/com/evolveum/midpoint/test/util/DerbyControllerTest.java index 825eb468c75..b04dcbcccfe 100644 --- a/infra/test-util/src/test/java/com/evolveum/midpoint/test/util/DerbyControllerTest.java +++ b/infra/test-util/src/test/java/com/evolveum/midpoint/test/util/DerbyControllerTest.java @@ -6,8 +6,9 @@ */ package com.evolveum.midpoint.test.util; -import static org.testng.AssertJUnit.assertTrue; import static org.testng.AssertJUnit.assertFalse; +import static org.testng.AssertJUnit.assertTrue; + import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; @@ -16,11 +17,12 @@ import org.testng.annotations.Test; +import com.evolveum.midpoint.tools.testng.AbstractUnitTest; + /** * @author Radovan Semancik - * */ -public class DerbyControllerTest { +public class DerbyControllerTest extends AbstractUnitTest { @Test public void testStartStopDerby() throws Exception { @@ -35,7 +37,7 @@ public void testStartStopDerby() throws Exception { Statement stmt = conn.createStatement(); stmt.execute("select * from users"); ResultSet rs = stmt.getResultSet(); - assertFalse("The \"users\" table is not empty",rs.next()); + assertFalse("The \"users\" table is not empty", rs.next()); rs.close(); stmt.close(); @@ -46,18 +48,18 @@ public void testStartStopDerby() throws Exception { // Try to connect over the "network" (localhost) Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance(); - String networkJdbcUrl = "jdbc:derby://"+controller.getListenHostname()+":"+controller.getListenPort()+"/"+controller.getDbName(); + String networkJdbcUrl = "jdbc:derby://" + controller.getListenHostname() + ":" + controller.getListenPort() + "/" + controller.getDbName(); Properties props = new Properties(); - props.setProperty("user",controller.getUsername()); - props.setProperty("password",controller.getPassword()); - System.out.println("JDBC Connecting to "+networkJdbcUrl+" as "+controller.getUsername()); - Connection networkConn = DriverManager.getConnection(networkJdbcUrl,props); + props.setProperty("user", controller.getUsername()); + props.setProperty("password", controller.getPassword()); + System.out.println("JDBC Connecting to " + networkJdbcUrl + " as " + controller.getUsername()); + Connection networkConn = DriverManager.getConnection(networkJdbcUrl, props); // Check if it empty stmt = networkConn.createStatement(); stmt.execute("select * from users"); rs = stmt.getResultSet(); - assertTrue("The \"users\" empty after insert",rs.next()); + assertTrue("The \"users\" empty after insert", rs.next()); rs.close(); stmt.close(); diff --git a/infra/util/src/test/java/com/evolveum/midpoint/util/ClassPathTest.java b/infra/util/src/test/java/com/evolveum/midpoint/util/ClassPathTest.java index 82d01cf82b8..832cdb25a6d 100644 --- a/infra/util/src/test/java/com/evolveum/midpoint/util/ClassPathTest.java +++ b/infra/util/src/test/java/com/evolveum/midpoint/util/ClassPathTest.java @@ -6,13 +6,16 @@ */ package com.evolveum.midpoint.util; -import java.util.Set; +import static org.testng.Assert.assertNotNull; +import static org.testng.Assert.assertTrue; -import static org.testng.Assert.*; +import java.util.Set; import org.testng.annotations.Test; -public class ClassPathTest { +import com.evolveum.midpoint.tools.testng.AbstractUnitTest; + +public class ClassPathTest extends AbstractUnitTest { @Test public void listClassesLocalTest() { diff --git a/infra/util/src/test/java/com/evolveum/midpoint/util/DOMUtilTest.java b/infra/util/src/test/java/com/evolveum/midpoint/util/DOMUtilTest.java index aa5fa09f6f0..a5c33b8fd05 100644 --- a/infra/util/src/test/java/com/evolveum/midpoint/util/DOMUtilTest.java +++ b/infra/util/src/test/java/com/evolveum/midpoint/util/DOMUtilTest.java @@ -6,24 +6,25 @@ */ package com.evolveum.midpoint.util; +import static javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI; +import static org.testng.AssertJUnit.*; + import java.util.Map; +import javax.xml.XMLConstants; +import javax.xml.namespace.QName; -import org.testng.annotations.Test; import org.testng.AssertJUnit; -import static org.testng.AssertJUnit.*; -import static javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI; +import org.testng.annotations.Test; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; -import javax.xml.XMLConstants; -import javax.xml.namespace.QName; +import com.evolveum.midpoint.tools.testng.AbstractUnitTest; /** * @author Radovan Semancik - * */ -public class DOMUtilTest { +public class DOMUtilTest extends AbstractUnitTest { private static final String QNAME_IN_NS = "http://foo.com/bar"; private static final String QNAME_IN_LOCAL = "baz"; @@ -40,21 +41,17 @@ public class DOMUtilTest { private static final String FIX_NAMESPACE_FILENAME = "src/test/resources/domutil/fix-namespace.xml"; public static final String NS_W3C_XML_SCHEMA_PREFIX = "xsd"; - public static final QName XSD_SCHEMA_ELEMENT = new QName(W3C_XML_SCHEMA_NS_URI, "schema", - NS_W3C_XML_SCHEMA_PREFIX); public static final QName XSD_STRING = new QName(W3C_XML_SCHEMA_NS_URI, "string", NS_W3C_XML_SCHEMA_PREFIX); public static final QName XSD_INTEGER = new QName(W3C_XML_SCHEMA_NS_URI, "integer", NS_W3C_XML_SCHEMA_PREFIX); private static final int MAX_GENERATE_QNAME_ITERATIONS = 200; - public DOMUtilTest() { } @Test public void testQNameRoundTrip() { - System.out.println("===[ testQNameRoundTrip ]==="); // GIVEN Document doc = DOMUtil.getDocument(); @@ -73,7 +70,7 @@ public void testQNameRoundTrip() { String[] split = content.split(":"); // Default namespace should not be used unless explicitly matches existing declaration // therefore there should be a prefix - AssertJUnit.assertEquals(2,split.length); + AssertJUnit.assertEquals(2, split.length); String prefix = split[0]; String localPart = split[1]; AssertJUnit.assertFalse(prefix.isEmpty()); @@ -92,15 +89,14 @@ public void testQNameRoundTrip() { @Test public void testQNameDefaultNamespace1() { - System.out.println("===[ testQNameDefaultNamespace1 ]==="); // GIVEN Document doc = DOMUtil.getDocument(); QName in = new QName(DEFAULT_NS, QNAME_IN_LOCAL); Element topElement = doc.createElementNS(DEFAULT_NS, ELEMENT_TOP_LOCAL); // Make sure there is a default ns declaration - DOMUtil.setNamespaceDeclaration(topElement,"",DEFAULT_NS); - DOMUtil.setNamespaceDeclaration(topElement,"e",ELEMENT_NS); + DOMUtil.setNamespaceDeclaration(topElement, "", DEFAULT_NS); + DOMUtil.setNamespaceDeclaration(topElement, "e", ELEMENT_NS); doc.appendChild(topElement); Element e = doc.createElementNS(ELEMENT_NS, ELEMENT_LOCAL); e.setPrefix("e"); @@ -125,15 +121,14 @@ public void testQNameDefaultNamespace1() { @Test public void testQNameDefaultNamespace2() { - System.out.println("===[ testQNameDefaultNamespace2 ]==="); // GIVEN Document doc = DOMUtil.getDocument(); QName in = new QName(DEFAULT_NS, QNAME_IN_LOCAL, "f"); // the difference w.r.t. testQNameDefaultNamespace1 Element topElement = doc.createElementNS(DEFAULT_NS, ELEMENT_TOP_LOCAL); // Make sure there is a default ns declaration - DOMUtil.setNamespaceDeclaration(topElement,"",DEFAULT_NS); - DOMUtil.setNamespaceDeclaration(topElement,"e",ELEMENT_NS); + DOMUtil.setNamespaceDeclaration(topElement, "", DEFAULT_NS); + DOMUtil.setNamespaceDeclaration(topElement, "e", ELEMENT_NS); doc.appendChild(topElement); Element e = doc.createElementNS(ELEMENT_NS, ELEMENT_LOCAL); e.setPrefix("e"); @@ -152,20 +147,19 @@ public void testQNameDefaultNamespace2() { String content = e.getTextContent(); // Default namespace should NOT be reused - AssertJUnit.assertEquals("f:"+QNAME_IN_LOCAL, content); + AssertJUnit.assertEquals("f:" + QNAME_IN_LOCAL, content); } @Test public void testQNameNoNamespace() { - System.out.println("===[ testQNameNoNamespace ]==="); // GIVEN Document doc = DOMUtil.getDocument(); QName in = new QName(XMLConstants.NULL_NS_URI, QNAME_IN_LOCAL); // no namespace Element topElement = doc.createElementNS(DEFAULT_NS, ELEMENT_TOP_LOCAL); // Make sure there is a default ns declaration - DOMUtil.setNamespaceDeclaration(topElement,"",DEFAULT_NS); - DOMUtil.setNamespaceDeclaration(topElement,"e",ELEMENT_NS); + DOMUtil.setNamespaceDeclaration(topElement, "", DEFAULT_NS); + DOMUtil.setNamespaceDeclaration(topElement, "e", ELEMENT_NS); doc.appendChild(topElement); Element e = doc.createElementNS(ELEMENT_NS, ELEMENT_LOCAL); e.setPrefix("e"); @@ -189,7 +183,6 @@ public void testQNameNoNamespace() { @Test public void testXsiType() { - System.out.println("===[ testXsiType ]==="); // GIVEN Document doc = DOMUtil.parseFile(XSD_TYPE_FILENAME); Element root = DOMUtil.getFirstChildElement(doc); @@ -200,7 +193,7 @@ public void testXsiType() { // THEN assertNotNull(xsiType); - AssertJUnit.assertTrue(XSD_INTEGER.equals(xsiType)); + assertEquals(xsiType, XSD_INTEGER); AssertJUnit.assertTrue("Failed to detect xsi:type", DOMUtil.hasXsiType(el1)); @@ -208,7 +201,6 @@ public void testXsiType() { @Test public void testWhitespaces() { - System.out.println("===[ testWhitespaces ]==="); // GIVEN Document doc = DOMUtil.parseFile(WHITESPACES_FILENAME); @@ -229,7 +221,6 @@ public void testWhitespaces() { @Test public void testFormatting() { - System.out.println("===[ testFormatting ]==="); // GIVEN Document doc = DOMUtil.getDocument(); Element root = DOMUtil.createElement(doc, new QName("root")); @@ -259,22 +250,20 @@ private int countLines(String s) { @Test public void testQNameMethods() { - System.out.println("===[ testQNameMethods ]==="); Document doc = DOMUtil.parseFile(QNAMES_FILENAME); Element root = DOMUtil.getFirstChildElement(doc); Element el1 = (Element) root.getElementsByTagNameNS(DEFAULT_NS, "el1").item(0); QName refAttrValue = DOMUtil.getQNameAttribute(el1, "ref"); - assertEquals("getQNameAttribute failed",new QName(FOO_NS,"bar"),refAttrValue); + assertEquals("getQNameAttribute failed", new QName(FOO_NS, "bar"), refAttrValue); Element el2 = (Element) root.getElementsByTagNameNS(DEFAULT_NS, "el2").item(0); QName el2Value = DOMUtil.getQNameValue(el2); - assertEquals("getQNameValue failed",new QName(FOO_NS,"BAR"),el2Value); + assertEquals("getQNameValue failed", new QName(FOO_NS, "BAR"), el2Value); } @Test public void testFixNamespaceDeclarations() { - System.out.println("===[ testFixNamespaceDeclarations ]==="); Document doc = DOMUtil.parseFile(FIX_NAMESPACE_FILENAME); System.out.println("Original XML:"); @@ -300,7 +289,6 @@ public void testFixNamespaceDeclarations() { @Test public void testGeneratedQNamePrefixes() { - System.out.println("===[ testGeneratedQNamePrefixes ]==="); // GIVEN Document doc = DOMUtil.getDocument(); @@ -311,42 +299,43 @@ public void testGeneratedQNamePrefixes() { System.out.println(DOMUtil.serializeDOMToString(topElement)); // WHEN - for(int i=0; i profMap = new HashMap<>(); profMap.put(ProfilingDataManager.Subsystem.MODEL, true); profMap.put(ProfilingDataManager.Subsystem.PROVISIONING, false); @@ -63,7 +61,7 @@ public void prof_02_profManagerConfigurationTest(){ } @Test - public void prof_03_profManagerRequestTest(){ + public void prof_03_profManagerRequestTest() { ProfilingDataManager manager = ProfilingDataManager.getInstance(); ProfilingDataLog event1 = new ProfilingDataLog("GET", REQUEST_FILTER_TEST_URI, "sessionID", FASTEST_METHOD_EST, System.currentTimeMillis()); @@ -75,7 +73,7 @@ public void prof_03_profManagerRequestTest(){ manager.prepareRequestProfilingEvent(event2); manager.prepareRequestProfilingEvent(event3); - Map perfMap = manager.getPerformanceMap(); + Map perfMap = manager.getPerformanceMap(); //THEN assertSame(1, perfMap.keySet().size()); @@ -87,12 +85,15 @@ public void prof_03_profManagerRequestTest(){ boolean second = false; boolean third = false; - if(SLOWEST_METHOD_EST == perfMap.get(REQUEST_FILTER_TEST_URI).getSlowestMethodList().get(0).getEstimatedTime()) + if (SLOWEST_METHOD_EST == perfMap.get(REQUEST_FILTER_TEST_URI).getSlowestMethodList().get(0).getEstimatedTime()) { first = true; - if(MIDDLE_METHOD_EST == perfMap.get(REQUEST_FILTER_TEST_URI).getSlowestMethodList().get(1).getEstimatedTime()) + } + if (MIDDLE_METHOD_EST == perfMap.get(REQUEST_FILTER_TEST_URI).getSlowestMethodList().get(1).getEstimatedTime()) { second = true; - if(FASTEST_METHOD_EST == perfMap.get(REQUEST_FILTER_TEST_URI).getSlowestMethodList().get(2).getEstimatedTime()) + } + if (FASTEST_METHOD_EST == perfMap.get(REQUEST_FILTER_TEST_URI).getSlowestMethodList().get(2).getEstimatedTime()) { third = true; + } assertSame(true, first); assertSame(true, second); @@ -102,14 +103,11 @@ public void prof_03_profManagerRequestTest(){ boolean min = false; boolean mean = false; - if(SLOWEST_METHOD_EST == perfMap.get(REQUEST_FILTER_TEST_URI).getMax()) - max = true; - if(FASTEST_METHOD_EST == perfMap.get(REQUEST_FILTER_TEST_URI).getMin()) - min = true; + if (SLOWEST_METHOD_EST == perfMap.get(REQUEST_FILTER_TEST_URI).getMax()) { max = true; } + if (FASTEST_METHOD_EST == perfMap.get(REQUEST_FILTER_TEST_URI).getMin()) { min = true; } - long meanVal = (FASTEST_METHOD_EST+MIDDLE_METHOD_EST+SLOWEST_METHOD_EST)/3; - if(meanVal == perfMap.get(REQUEST_FILTER_TEST_URI).getMean()) - mean = true; + long meanVal = (FASTEST_METHOD_EST + MIDDLE_METHOD_EST + SLOWEST_METHOD_EST) / 3; + if (meanVal == perfMap.get(REQUEST_FILTER_TEST_URI).getMean()) { mean = true; } assertSame(true, max); assertSame(true, min); @@ -117,7 +115,7 @@ public void prof_03_profManagerRequestTest(){ } @Test - public void prof_04_testMaxEventsInList(){ + public void prof_04_testMaxEventsInList() { //Here, we create 7 events ProfilingDataManager manager = ProfilingDataManager.getInstance(); @@ -142,7 +140,7 @@ public void prof_04_testMaxEventsInList(){ } @Test - public void prof_05_subsystemProfilingTest(){ + public void prof_05_subsystemProfilingTest() { Map confMap = new HashMap<>(); confMap.put(ProfilingDataManager.Subsystem.MODEL, true); confMap.put(ProfilingDataManager.Subsystem.REPOSITORY, true); @@ -157,15 +155,14 @@ public void prof_05_subsystemProfilingTest(){ ProfilingDataManager manager = ProfilingDataManager.getInstance(); - //6 prof. events are created, there should be 2 keys in HashMap - Long startTime = System.nanoTime(); - manager.applyGranularityFilterOnEnd("class", "method", new String[]{"1","2","3"}, ProfilingDataManager.Subsystem.MODEL, System.currentTimeMillis(),startTime); - manager.applyGranularityFilterOnEnd("class", "method", new String[]{"1","2","3"}, ProfilingDataManager.Subsystem.MODEL, System.currentTimeMillis(),startTime); - manager.applyGranularityFilterOnEnd("class", "method", new String[]{"1","2","3"}, ProfilingDataManager.Subsystem.MODEL, System.currentTimeMillis(),startTime); - manager.applyGranularityFilterOnEnd("class2", "method", new String[]{"1","2","3"}, ProfilingDataManager.Subsystem.REPOSITORY, System.currentTimeMillis(),startTime); - manager.applyGranularityFilterOnEnd("class2", "method", new String[]{"1","2","3"}, ProfilingDataManager.Subsystem.REPOSITORY, System.currentTimeMillis(),startTime); - manager.applyGranularityFilterOnEnd("class2", "method", new String[]{"1","2","3"}, ProfilingDataManager.Subsystem.REPOSITORY, System.currentTimeMillis(),startTime); + long startTime = System.nanoTime(); + manager.applyGranularityFilterOnEnd("class", "method", new String[] { "1", "2", "3" }, ProfilingDataManager.Subsystem.MODEL, System.currentTimeMillis(), startTime); + manager.applyGranularityFilterOnEnd("class", "method", new String[] { "1", "2", "3" }, ProfilingDataManager.Subsystem.MODEL, System.currentTimeMillis(), startTime); + manager.applyGranularityFilterOnEnd("class", "method", new String[] { "1", "2", "3" }, ProfilingDataManager.Subsystem.MODEL, System.currentTimeMillis(), startTime); + manager.applyGranularityFilterOnEnd("class2", "method", new String[] { "1", "2", "3" }, ProfilingDataManager.Subsystem.REPOSITORY, System.currentTimeMillis(), startTime); + manager.applyGranularityFilterOnEnd("class2", "method", new String[] { "1", "2", "3" }, ProfilingDataManager.Subsystem.REPOSITORY, System.currentTimeMillis(), startTime); + manager.applyGranularityFilterOnEnd("class2", "method", new String[] { "1", "2", "3" }, ProfilingDataManager.Subsystem.REPOSITORY, System.currentTimeMillis(), startTime); Map perfMap = manager.getPerformanceMap(); diff --git a/infra/util/src/test/java/com/evolveum/midpoint/util/QNameUtilTest.java b/infra/util/src/test/java/com/evolveum/midpoint/util/QNameUtilTest.java index b77c48b0499..d453af23f01 100644 --- a/infra/util/src/test/java/com/evolveum/midpoint/util/QNameUtilTest.java +++ b/infra/util/src/test/java/com/evolveum/midpoint/util/QNameUtilTest.java @@ -6,23 +6,23 @@ */ package com.evolveum.midpoint.util; -import org.testng.annotations.Test; -import org.testng.AssertJUnit; import javax.xml.namespace.QName; +import org.testng.AssertJUnit; +import org.testng.annotations.Test; + +import com.evolveum.midpoint.tools.testng.AbstractUnitTest; + /** * @author semancik */ -public class QNameUtilTest { - - public QNameUtilTest() { - } +public class QNameUtilTest extends AbstractUnitTest { @Test public void uriToQName1() { // Given - String uri="http://foo.com/bar#baz"; + String uri = "http://foo.com/bar#baz"; // When @@ -30,14 +30,14 @@ public void uriToQName1() { // Then - AssertJUnit.assertEquals(new QName("http://foo.com/bar","baz"), qname); + AssertJUnit.assertEquals(new QName("http://foo.com/bar", "baz"), qname); } @Test public void uriToQName2() { // Given - String uri="http://foo.com/bar/baz"; + String uri = "http://foo.com/bar/baz"; // When @@ -45,14 +45,14 @@ public void uriToQName2() { // Then - AssertJUnit.assertEquals(new QName("http://foo.com/bar","baz"), qname); + AssertJUnit.assertEquals(new QName("http://foo.com/bar", "baz"), qname); } @Test public void qNameToUri1() { // Given - QName qname = new QName("http://foo.com/bar","baz"); + QName qname = new QName("http://foo.com/bar", "baz"); // When @@ -68,7 +68,7 @@ public void qNameToUri1() { public void qNameToUri2() { // Given - QName qname = new QName("http://foo.com/bar/","baz"); + QName qname = new QName("http://foo.com/bar/", "baz"); // When @@ -84,7 +84,7 @@ public void qNameToUri2() { public void qNameToUri3() { // Given - QName qname = new QName("http://foo.com/bar#","baz"); + QName qname = new QName("http://foo.com/bar#", "baz"); // When @@ -93,7 +93,5 @@ public void qNameToUri3() { // Then AssertJUnit.assertEquals("http://foo.com/bar#baz", uri); - } - } diff --git a/infra/util/src/test/java/com/evolveum/midpoint/util/ReflectionTestFunctionLibrary.java b/infra/util/src/test/java/com/evolveum/midpoint/util/ReflectionTestFunctionLibrary.java index 73712dcead9..9f1ee42306c 100644 --- a/infra/util/src/test/java/com/evolveum/midpoint/util/ReflectionTestFunctionLibrary.java +++ b/infra/util/src/test/java/com/evolveum/midpoint/util/ReflectionTestFunctionLibrary.java @@ -9,11 +9,12 @@ import java.util.ArrayList; import java.util.Collection; +import com.evolveum.midpoint.tools.testng.AbstractUnitTest; + /** * @author semancik - * */ -public class ReflectionTestFunctionLibrary { +public class ReflectionTestFunctionLibrary extends AbstractUnitTest { Collection calledIds = new ArrayList<>(); @@ -54,7 +55,7 @@ public void l(Collection c) { // Test functions: varargs public void v(String... strings) { - calledIds.add("v:"+strings.length); + calledIds.add("v:" + strings.length); } // Utility @@ -70,5 +71,4 @@ public void reset() { public Collection getCalledIds() { return calledIds; } - } diff --git a/model/certification-impl/src/test/java/com/evolveum/midpoint/certification/test/AbstractCertificationTest.java b/model/certification-impl/src/test/java/com/evolveum/midpoint/certification/test/AbstractCertificationTest.java index a892cec94c7..c152c82055b 100644 --- a/model/certification-impl/src/test/java/com/evolveum/midpoint/certification/test/AbstractCertificationTest.java +++ b/model/certification-impl/src/test/java/com/evolveum/midpoint/certification/test/AbstractCertificationTest.java @@ -6,11 +6,28 @@ */ package com.evolveum.midpoint.certification.test; +import static java.util.Collections.singletonList; +import static org.testng.AssertJUnit.*; + +import static com.evolveum.midpoint.schema.util.CertCampaignTypeUtil.norm; +import static com.evolveum.midpoint.xml.ns._public.common.common_3.AccessCertificationCampaignStateType.*; +import static com.evolveum.midpoint.xml.ns._public.common.common_3.AccessCertificationCampaignType.F_CASE; + +import java.io.File; +import java.io.FileNotFoundException; +import java.util.*; +import java.util.stream.Collectors; +import javax.xml.datatype.XMLGregorianCalendar; + +import org.jetbrains.annotations.NotNull; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContextHolder; + import com.evolveum.icf.dummy.resource.DummyResource; import com.evolveum.midpoint.certification.api.OutcomeUtils; import com.evolveum.midpoint.certification.impl.*; import com.evolveum.midpoint.model.api.AccessCertificationService; -import com.evolveum.midpoint.model.test.AbstractModelIntegrationTest; import com.evolveum.midpoint.prism.PrismObject; import com.evolveum.midpoint.prism.query.ObjectQuery; import com.evolveum.midpoint.prism.util.PrismAsserts; @@ -27,29 +44,10 @@ import com.evolveum.midpoint.test.DummyResourceContoller; import com.evolveum.midpoint.test.util.TestUtil; import com.evolveum.midpoint.util.exception.*; -import com.evolveum.midpoint.util.logging.Trace; -import com.evolveum.midpoint.util.logging.TraceManager; import com.evolveum.midpoint.xml.ns._public.common.common_3.*; -import org.jetbrains.annotations.NotNull; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.core.Authentication; -import org.springframework.security.core.context.SecurityContextHolder; - -import javax.xml.datatype.XMLGregorianCalendar; -import java.io.File; -import java.io.FileNotFoundException; -import java.util.*; -import java.util.stream.Collectors; - -import static com.evolveum.midpoint.schema.util.CertCampaignTypeUtil.norm; -import static com.evolveum.midpoint.xml.ns._public.common.common_3.AccessCertificationCampaignStateType.*; -import static com.evolveum.midpoint.xml.ns._public.common.common_3.AccessCertificationCampaignType.F_CASE; -import static java.util.Collections.singletonList; -import static org.testng.AssertJUnit.*; /** * @author mederly - * */ @SuppressWarnings({ "UnusedReturnValue", "WeakerAccess", "SameParameterValue" }) public class AbstractCertificationTest extends AbstractUninitializedCertificationTest { @@ -57,9 +55,6 @@ public class AbstractCertificationTest extends AbstractUninitializedCertificatio @Autowired private AccCertResponseComputationHelper computationHelper; -// public static final File SYSTEM_CONFIGURATION_FILE = new File(COMMON_DIR, "system-configuration.xml"); -// public static final String SYSTEM_CONFIGURATION_OID = SystemObjectsType.SYSTEM_CONFIGURATION.value(); - protected static final File ORGS_AND_USERS_FILE = new File(COMMON_DIR, "orgs-and-users.xml"); protected static final File USER_BOB_FILE = new File(COMMON_DIR, "user-bob.xml"); protected static final File USER_BOB_DEPUTY_FULL_FILE = new File(COMMON_DIR, "user-bob-deputy-full.xml"); @@ -70,31 +65,19 @@ public class AbstractCertificationTest extends AbstractUninitializedCertificatio protected static final String ORG_GOVERNOR_OFFICE_OID = "00000000-8888-6666-0000-100000000001"; protected static final String ORG_SCUMM_BAR_OID = "00000000-8888-6666-0000-100000000006"; -// protected static final String ORG_MINISTRY_OF_OFFENSE_OID = "00000000-8888-6666-0000-100000000003"; -// protected static final String ORG_MINISTRY_OF_DEFENSE_OID = "00000000-8888-6666-0000-100000000002"; -// protected static final String ORG_MINISTRY_OF_RUM_OID = "00000000-8888-6666-0000-100000000004"; -// protected static final String ORG_SWASHBUCKLER_SECTION_OID = "00000000-8888-6666-0000-100000000005"; -// protected static final String ORG_PROJECT_ROOT_OID = "00000000-8888-6666-0000-200000000000"; -// protected static final String ORG_SAVE_ELAINE_OID = "00000000-8888-6666-0000-200000000001"; protected static final String ORG_EROOT_OID = "00000000-8888-6666-0000-300000000000"; protected static final String USER_ELAINE_OID = "c0c010c0-d34d-b33f-f00d-11111111111e"; protected static final String USER_GUYBRUSH_OID = "c0c010c0-d34d-b33f-f00d-111111111116"; -// protected static final String USER_LECHUCK_OID = "c0c010c0-d34d-b33f-f00d-1c1c11cc11c2"; protected static final String USER_CHEESE_OID = "c0c010c0-d34d-b33f-f00d-111111111130"; -// protected static final String USER_CHEF_OID = "c0c010c0-d34d-b33f-f00d-111111111131"; -// protected static final String USER_BARKEEPER_OID = "c0c010c0-d34d-b33f-f00d-111111111132"; -// protected static final String USER_CARLA_OID = "c0c010c0-d34d-b33f-f00d-111111111133"; protected static final String USER_BOB_OID = "c0c010c0-d34d-b33f-f00d-111111111134"; protected static final String USER_BOB_DEPUTY_FULL_OID = "71d27191-df8c-4513-836e-ed01c68a4ab4"; protected static final String USER_BOB_DEPUTY_NO_ASSIGNMENTS_OID = "afc1c45d-fdb8-48cf-860b-b305f96a07e3"; -// protected static final String USER_BOB_DEPUTY_NO_PRIVILEGES_OID = "ad371f45-352d-4c1f-80f3-2e279af399ae"; protected static final String USER_ADMINISTRATOR_DEPUTY_NO_ASSIGNMENTS_OID = "0b88d83f-1722-4b13-b7cc-a2d500470d7f"; protected static final String USER_ADMINISTRATOR_DEPUTY_NONE_OID = "e38df3fc-3510-45c2-a379-2b4a1406d4b6"; protected static final File USER_JACK_FILE = new File(COMMON_DIR, "user-jack.xml"); protected static final String USER_JACK_OID = "c0c010c0-d34d-b33f-f00d-111111111111"; -// protected static final String USER_JACK_USERNAME = "jack"; public static final File ROLE_REVIEWER_FILE = new File(COMMON_DIR, "role-reviewer.xml"); protected static final String ROLE_REVIEWER_OID = "00000000-d34d-b33f-f00d-ffffffff0000"; @@ -108,7 +91,6 @@ public class AbstractCertificationTest extends AbstractUninitializedCertificatio public static final File USER_ADMINISTRATOR_FILE = new File(COMMON_DIR, "user-administrator.xml"); public static final File METAROLE_CXO_FILE = new File(COMMON_DIR, "metarole-cxo.xml"); -// protected static final String METAROLE_CXO_OID = "00000000-d34d-b33f-f00d-444444444444"; public static final File ROLE_CEO_FILE = new File(COMMON_DIR, "role-ceo.xml"); protected static final String ROLE_CEO_OID = "00000000-d34d-b33f-f00d-000000000001"; @@ -136,15 +118,11 @@ public class AbstractCertificationTest extends AbstractUninitializedCertificatio protected static final File RESOURCE_DUMMY_FILE = new File(COMMON_DIR, "resource-dummy.xml"); protected static final String RESOURCE_DUMMY_OID = "10000000-0000-0000-0000-000000000004"; -// protected static final String RESOURCE_DUMMY_NAMESPACE = "http://midpoint.evolveum.com/xml/ns/public/resource/instance/10000000-0000-0000-0000-000000000004"; protected static final String DUMMY_ACCOUNT_ATTRIBUTE_SEA_NAME = "sea"; protected static final String RESOURCE_DUMMY_BLACK_FILENAME = COMMON_DIR + "/resource-dummy-black.xml"; protected static final String RESOURCE_DUMMY_BLACK_OID = "10000000-0000-0000-0000-000000000305"; protected static final String RESOURCE_DUMMY_BLACK_NAME = "black"; -// protected static final String RESOURCE_DUMMY_BLACK_NAMESPACE = MidPointConstants.NS_RI; - - protected static final Trace LOGGER = TraceManager.getTrace(AbstractModelIntegrationTest.class); @Autowired protected CertificationManagerImpl certificationManager; @Autowired protected AccessCertificationService certificationService; @@ -162,7 +140,7 @@ public class AbstractCertificationTest extends AbstractUninitializedCertificatio @Override public void initSystem(Task initTask, OperationResult initResult) throws Exception { - LOGGER.trace("initSystem"); + logger.trace("initSystem"); super.initSystem(initTask, initResult); // roles @@ -253,7 +231,6 @@ protected AccessCertificationCaseType checkWorkItemSanity(Collection caseList, String objectOid, String targetOid, FocusType focus, String tenantOid, String orgOid, ActivationStatusType administrativeStatus) { @@ -337,6 +314,7 @@ protected void assertSanityAfterCampaignCreate(AccessCertificationCampaignType c assertNull("Unexpected start time", campaign.getStartTimestamp()); assertNull("Unexpected end time", campaign.getEndTimestamp()); } + protected void assertSanityAfterCampaignStart(AccessCertificationCampaignType campaign, AccessCertificationDefinitionType definition, int cases) throws ConfigurationException, ObjectNotFoundException, SchemaException, CommunicationException, SecurityViolationException, ExpressionEvaluationException { @@ -419,10 +397,10 @@ protected void assertDefinitionAndOwner(AccessCertificationCampaignType campaign protected void assertCaseReviewers(AccessCertificationCaseType _case, AccessCertificationResponseType currentStageOutcome, int currentStage, List reviewerOidList) { - assertEquals("wrong current stage outcome for "+_case, OutcomeUtils.toUri(currentStageOutcome), _case.getCurrentStageOutcome()); - assertEquals("wrong current stage number for "+_case, currentStage, _case.getStageNumber()); + assertEquals("wrong current stage outcome for " + _case, OutcomeUtils.toUri(currentStageOutcome), _case.getCurrentStageOutcome()); + assertEquals("wrong current stage number for " + _case, currentStage, _case.getStageNumber()); Set realReviewerOids = CertCampaignTypeUtil.getCurrentReviewers(_case).stream().map(ref -> ref.getOid()).collect(Collectors.toSet()); - assertEquals("wrong reviewer oids for "+_case, new HashSet<>(reviewerOidList), realReviewerOids); + assertEquals("wrong reviewer oids for " + _case, new HashSet<>(reviewerOidList), realReviewerOids); } protected void recordDecision(String campaignOid, AccessCertificationCaseType aCase, AccessCertificationResponseType response, @@ -512,7 +490,7 @@ protected void assertCaseHistoricOutcomes(AccessCertificationCaseType aCase, Acc protected void assertCaseHistoricOutcomes(AccessCertificationCaseType aCase, int iteration, AccessCertificationResponseType... outcomes) { for (int stage = 0; stage < outcomes.length; stage++) { - assertHistoricOutcome(aCase, stage+1, iteration, outcomes[stage]); + assertHistoricOutcome(aCase, stage + 1, iteration, outcomes[stage]); } assertEquals("wrong # of stored stage outcomes", outcomes.length, CertCampaignTypeUtil.getCompletedStageEvents(aCase, iteration).size()); } @@ -630,10 +608,6 @@ private void checkCaseOutcomesSanity(AccessCertificationCaseType aCase, AccessCe assertEquals("Inconsistent overall outcome", OutcomeUtils.toUri(expectedOverall), aCase.getOutcome()); } -// private AccessCertificationResponseType getCaseStageOutcome(AccessCertificationCaseType aCase, int stageNumber, int iteration) { -// return OutcomeUtils.fromUri(CertCampaignTypeUtil.getStageOutcome(aCase, stageNumber, iteration)); -// } - // completedStage - if not null, checks the stage outcome in the history list protected void assertCaseOutcome(List caseList, String subjectOid, String targetOid, AccessCertificationResponseType expectedStageOutcome, AccessCertificationResponseType expectedOverallOutcome, Integer completedStage) { diff --git a/model/certification-impl/src/test/java/com/evolveum/midpoint/certification/test/AbstractUninitializedCertificationTest.java b/model/certification-impl/src/test/java/com/evolveum/midpoint/certification/test/AbstractUninitializedCertificationTest.java index 87cba3d393d..47ef2d775a7 100644 --- a/model/certification-impl/src/test/java/com/evolveum/midpoint/certification/test/AbstractUninitializedCertificationTest.java +++ b/model/certification-impl/src/test/java/com/evolveum/midpoint/certification/test/AbstractUninitializedCertificationTest.java @@ -6,43 +6,31 @@ */ package com.evolveum.midpoint.certification.test; +import java.io.File; + +import org.jetbrains.annotations.NotNull; +import org.springframework.beans.factory.annotation.Autowired; + import com.evolveum.midpoint.certification.impl.AccCertQueryHelper; -import com.evolveum.midpoint.certification.impl.AccCertResponseComputationHelper; import com.evolveum.midpoint.certification.impl.AccCertUpdateHelper; import com.evolveum.midpoint.certification.impl.CertificationManagerImpl; import com.evolveum.midpoint.model.api.AccessCertificationService; import com.evolveum.midpoint.model.test.AbstractModelIntegrationTest; import com.evolveum.midpoint.schema.result.OperationResult; import com.evolveum.midpoint.task.api.Task; -import com.evolveum.midpoint.util.exception.*; -import com.evolveum.midpoint.util.logging.Trace; -import com.evolveum.midpoint.util.logging.TraceManager; -import com.evolveum.midpoint.xml.ns._public.common.common_3.*; -import org.jetbrains.annotations.NotNull; -import org.springframework.beans.factory.annotation.Autowired; +import com.evolveum.midpoint.util.exception.ObjectAlreadyExistsException; +import com.evolveum.midpoint.xml.ns._public.common.common_3.RoleType; +import com.evolveum.midpoint.xml.ns._public.common.common_3.UserType; -import java.io.File; - -/** - * @author mederly - * - */ public class AbstractUninitializedCertificationTest extends AbstractModelIntegrationTest { - @Autowired - private AccCertResponseComputationHelper computationHelper; - public static final File SYSTEM_CONFIGURATION_FILE = new File(COMMON_DIR, "system-configuration.xml"); - public static final String SYSTEM_CONFIGURATION_OID = SystemObjectsType.SYSTEM_CONFIGURATION.value(); public static final File ROLE_SUPERUSER_FILE = new File(COMMON_DIR, "role-superuser.xml"); protected static final String ROLE_SUPERUSER_OID = "00000000-0000-0000-0000-000000000004"; public static final File USER_ADMINISTRATOR_PLAIN_FILE = new File(COMMON_DIR, "user-administrator-plain.xml"); protected static final String USER_ADMINISTRATOR_OID = "00000000-0000-0000-0000-000000000002"; - protected static final String USER_ADMINISTRATOR_NAME = "administrator"; - - protected static final Trace LOGGER = TraceManager.getTrace(AbstractModelIntegrationTest.class); @Autowired protected CertificationManagerImpl certificationManager; @Autowired protected AccessCertificationService certificationService; @@ -54,7 +42,7 @@ public class AbstractUninitializedCertificationTest extends AbstractModelIntegra @Override public void initSystem(Task initTask, OperationResult initResult) throws Exception { - LOGGER.trace("initSystem"); + logger.trace("initSystem"); super.initSystem(initTask, initResult); modelService.postInit(initResult); diff --git a/model/model-common/src/test/java/com/evolveum/midpoint/model/common/expression/script/AbstractScriptTest.java b/model/model-common/src/test/java/com/evolveum/midpoint/model/common/expression/script/AbstractScriptTest.java index 2ad901ef89e..150554d70ce 100644 --- a/model/model-common/src/test/java/com/evolveum/midpoint/model/common/expression/script/AbstractScriptTest.java +++ b/model/model-common/src/test/java/com/evolveum/midpoint/model/common/expression/script/AbstractScriptTest.java @@ -50,8 +50,6 @@ import com.evolveum.midpoint.util.DOMUtil; import com.evolveum.midpoint.util.PrettyPrinter; import com.evolveum.midpoint.util.exception.*; -import com.evolveum.midpoint.util.logging.Trace; -import com.evolveum.midpoint.util.logging.TraceManager; import com.evolveum.midpoint.xml.ns._public.common.common_3.ScriptExpressionEvaluatorType; import com.evolveum.midpoint.xml.ns._public.common.common_3.UserType; @@ -71,8 +69,6 @@ public abstract class AbstractScriptTest extends AbstractUnitTest protected static final String RESULT_STRING_EXEC = "Hello world"; - public static final Trace LOGGER = TraceManager.getTrace(AbstractScriptTest.class); - protected PrismContext prismContext; protected ScriptExpressionFactory scriptExpressionfactory; protected ScriptEvaluator evaluator; @@ -385,7 +381,7 @@ protected void evaluateAndAssertStringScalarExpressionRestricted( AssertJUnit.fail("Expression " + testName + ": unexpected success, result value: " + expressionResultList); } catch (SecurityViolationException e) { System.out.println("Expected exception: " + e); - LOGGER.debug("Expected exception", e); + logger.debug("Expected exception", e); } } diff --git a/model/model-impl/src/test/java/com/evolveum/midpoint/model/impl/sync/SynchronizationSituationTest.java b/model/model-impl/src/test/java/com/evolveum/midpoint/model/impl/sync/SynchronizationSituationTest.java index c0aaec240a4..9f68e2a4894 100644 --- a/model/model-impl/src/test/java/com/evolveum/midpoint/model/impl/sync/SynchronizationSituationTest.java +++ b/model/model-impl/src/test/java/com/evolveum/midpoint/model/impl/sync/SynchronizationSituationTest.java @@ -9,13 +9,14 @@ import org.testng.AssertJUnit; import org.testng.annotations.Test; +import com.evolveum.midpoint.tools.testng.AbstractUnitTest; import com.evolveum.midpoint.xml.ns._public.common.common_3.SynchronizationSituationType; import com.evolveum.midpoint.xml.ns._public.common.common_3.UserType; /** * @author lazyman */ -public class SynchronizationSituationTest { +public class SynchronizationSituationTest extends AbstractUnitTest { @Test public void nullUser() { diff --git a/model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/async/TestAsyncUpdateTaskMechanics.java b/model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/async/TestAsyncUpdateTaskMechanics.java index 8903595c106..f799064bea3 100644 --- a/model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/async/TestAsyncUpdateTaskMechanics.java +++ b/model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/async/TestAsyncUpdateTaskMechanics.java @@ -7,6 +7,22 @@ package com.evolveum.midpoint.model.intest.async; +import static org.testng.AssertJUnit.assertEquals; +import static org.testng.AssertJUnit.assertNotNull; + +import java.io.File; +import java.io.FileReader; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.TimeoutException; + +import org.apache.commons.io.IOUtils; +import org.springframework.test.annotation.DirtiesContext; +import org.springframework.test.context.ContextConfiguration; +import org.testng.annotations.AfterClass; +import org.testng.annotations.Test; + import com.evolveum.midpoint.model.intest.AbstractConfiguredModelIntegrationTest; import com.evolveum.midpoint.prism.PrismObject; import com.evolveum.midpoint.provisioning.ucf.impl.builtin.async.sources.Amqp091AsyncUpdateSource; @@ -15,39 +31,22 @@ import com.evolveum.midpoint.test.TestResource; import com.evolveum.midpoint.test.amqp.EmbeddedBroker; import com.evolveum.midpoint.test.util.MidPointTestConstants; +import com.evolveum.midpoint.tools.testng.UnusedTestElement; import com.evolveum.midpoint.util.exception.CommonException; import com.evolveum.midpoint.util.exception.ObjectNotFoundException; -import com.evolveum.midpoint.util.logging.Trace; -import com.evolveum.midpoint.util.logging.TraceManager; import com.evolveum.midpoint.xml.ns._public.common.common_3.TaskType; import com.evolveum.midpoint.xml.ns._public.common.common_3.UserType; -import org.apache.commons.io.IOUtils; -import org.springframework.test.annotation.DirtiesContext; -import org.springframework.test.context.ContextConfiguration; -import org.testng.annotations.AfterClass; -import org.testng.annotations.Test; - -import java.io.File; -import java.io.FileReader; -import java.io.IOException; -import java.util.HashMap; -import java.util.Map; -import java.util.concurrent.TimeoutException; - -import static org.testng.AssertJUnit.assertEquals; -import static org.testng.AssertJUnit.assertNotNull; /** * Tests working of async update task - starting, stopping, reporting, and so on. */ -@ContextConfiguration(locations = {"classpath:ctx-model-intest-test-main.xml"}) +@UnusedTestElement("not in suite, fails during init with: Unknown config store type 'Memory'") +@ContextConfiguration(locations = { "classpath:ctx-model-intest-test-main.xml" }) @DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_CLASS) public class TestAsyncUpdateTaskMechanics extends AbstractConfiguredModelIntegrationTest { private static final File TEST_DIR = new File(MidPointTestConstants.TEST_RESOURCES_DIR, "async/task"); - protected static final Trace LOGGER = TraceManager.getTrace(TestAsyncUpdateTaskMechanics.class); - private static final TestResource RESOURCE_HR = new TestResource(TEST_DIR, "resource-hr-amqp091.xml", "63693a4a-07ee-4903-a206-3f777f4495a5"); private static final TestResource TASK_ASYNC_UPDATE_HR_NO_WORKERS = new TestResource(TEST_DIR, "task-async-update-hr-no-workers.xml", "074fe1fd-3099-42f7-b6ad-1e1e5eec51d5"); private static final TestResource TASK_ASYNC_UPDATE_HR_ONE_WORKER = new TestResource(TEST_DIR, "task-async-update-hr-one-worker.xml", "e6cc59c5-8404-4a0f-9ad0-2cd5c81d9f6b"); @@ -87,7 +86,6 @@ public void test000Sanity() throws ObjectNotFoundException { @Test public void test100SmallTaskNoWorkers() throws IOException, TimeoutException, CommonException { - Task task = getTestTask(); OperationResult result = getTestOperationResult(); int usersBefore = getObjectCount(UserType.class); @@ -112,7 +110,6 @@ public void test100SmallTaskNoWorkers() throws IOException, TimeoutException, Co @Test public void test110SmallTaskOneWorker() throws IOException, TimeoutException, CommonException { - Task task = getTestTask(); OperationResult result = getTestOperationResult(); int usersBefore = getObjectCount(UserType.class); @@ -142,7 +139,7 @@ private void prepareMessages(File templateFile, String prefix, int howMany, bool String number = String.format("%s%06d", prefix, i); String message = template.replaceAll("#", number); Map headers = new HashMap<>(); - if (markLast && i == howMany-1) { + if (markLast && i == howMany - 1) { headers.put(Amqp091AsyncUpdateSource.HEADER_LAST_MESSAGE, true); } embeddedBroker.send(QUEUE_NAME, message, headers); diff --git a/model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/negative/TestBrokenResources.java b/model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/negative/TestBrokenResources.java index fe70a3fdb46..4453188fe86 100644 --- a/model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/negative/TestBrokenResources.java +++ b/model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/negative/TestBrokenResources.java @@ -45,8 +45,6 @@ import com.evolveum.midpoint.test.util.TestUtil; import com.evolveum.midpoint.util.MiscUtil; import com.evolveum.midpoint.util.exception.*; -import com.evolveum.midpoint.util.logging.Trace; -import com.evolveum.midpoint.util.logging.TraceManager; import com.evolveum.midpoint.xml.ns._public.common.common_3.*; /** @@ -101,12 +99,10 @@ public class TestBrokenResources extends AbstractConfiguredModelIntegrationTest private static final int NUMBER_OF_RESOURCES = 7; - protected static final Trace LOGGER = TraceManager.getTrace(TestBrokenResources.class); - @Override public void initSystem(Task initTask, OperationResult initResult) throws Exception { super.initSystem(initTask, initResult); - LOGGER.trace("initSystem"); + logger.trace("initSystem"); // Resources File targetDir = new File(TEST_TARGET_DIR); diff --git a/model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/util/MockMultipleTriggersHandler.java b/model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/util/MockMultipleTriggersHandler.java index a5b0938b27a..fd8f5cb070f 100644 --- a/model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/util/MockMultipleTriggersHandler.java +++ b/model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/util/MockMultipleTriggersHandler.java @@ -6,31 +6,23 @@ */ package com.evolveum.midpoint.model.intest.util; +import java.util.Collection; +import java.util.concurrent.atomic.AtomicInteger; + import com.evolveum.midpoint.model.impl.trigger.MultipleTriggersHandler; import com.evolveum.midpoint.prism.PrismObject; import com.evolveum.midpoint.prism.util.CloneUtil; import com.evolveum.midpoint.schema.constants.SchemaConstants; import com.evolveum.midpoint.schema.result.OperationResult; import com.evolveum.midpoint.task.api.RunningTask; -import com.evolveum.midpoint.task.api.Task; import com.evolveum.midpoint.test.IntegrationTestTools; -import com.evolveum.midpoint.util.logging.Trace; -import com.evolveum.midpoint.util.logging.TraceManager; import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType; import com.evolveum.midpoint.xml.ns._public.common.common_3.TriggerType; -import java.util.Collection; -import java.util.concurrent.atomic.AtomicInteger; - -/** - * - */ public class MockMultipleTriggersHandler implements MultipleTriggersHandler { public static final String HANDLER_URI = SchemaConstants.NS_MIDPOINT_TEST + "/mock-multiple-trigger-handler"; - protected static final Trace LOGGER = TraceManager.getTrace(MockMultipleTriggersHandler.class); - private PrismObject lastObject; private Collection lastTriggers; private AtomicInteger invocationCount = new AtomicInteger(0); diff --git a/model/workflow-impl/src/test/java/com/evolveum/midpoint/wf/impl/AbstractWfTestPolicy.java b/model/workflow-impl/src/test/java/com/evolveum/midpoint/wf/impl/AbstractWfTestPolicy.java index 1a92307e866..3d26fee2fdb 100644 --- a/model/workflow-impl/src/test/java/com/evolveum/midpoint/wf/impl/AbstractWfTestPolicy.java +++ b/model/workflow-impl/src/test/java/com/evolveum/midpoint/wf/impl/AbstractWfTestPolicy.java @@ -7,6 +7,27 @@ package com.evolveum.midpoint.wf.impl; +import static java.util.Collections.singleton; +import static org.testng.AssertJUnit.*; + +import static com.evolveum.midpoint.prism.PrismConstants.T_PARENT; +import static com.evolveum.midpoint.xml.ns._public.common.common_3.ApprovalContextType.F_DELTAS_TO_APPROVE; +import static com.evolveum.midpoint.xml.ns._public.common.common_3.CaseType.*; +import static com.evolveum.midpoint.xml.ns._public.common.common_3.CaseWorkItemType.F_ASSIGNEE_REF; +import static com.evolveum.midpoint.xml.ns._public.common.common_3.CaseWorkItemType.F_ORIGINAL_ASSIGNEE_REF; + +import java.io.File; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Comparator; +import java.util.List; + +import org.apache.commons.collections4.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.annotation.DirtiesContext; +import org.springframework.test.annotation.DirtiesContext.ClassMode; +import org.springframework.test.context.ContextConfiguration; + import com.evolveum.midpoint.model.api.ModelExecuteOptions; import com.evolveum.midpoint.model.api.WorkflowService; import com.evolveum.midpoint.model.api.context.ModelState; @@ -23,13 +44,12 @@ import com.evolveum.midpoint.schema.RelationRegistry; import com.evolveum.midpoint.schema.SelectorOptions; import com.evolveum.midpoint.schema.result.OperationResult; +import com.evolveum.midpoint.schema.util.ApprovalContextUtil; import com.evolveum.midpoint.schema.util.CaseTypeUtil; import com.evolveum.midpoint.schema.util.CaseWorkItemUtil; -import com.evolveum.midpoint.schema.util.ApprovalContextUtil; import com.evolveum.midpoint.schema.util.WorkItemId; import com.evolveum.midpoint.task.api.Task; import com.evolveum.midpoint.task.api.TaskManager; -import com.evolveum.midpoint.util.exception.*; import com.evolveum.midpoint.wf.api.WorkflowManager; import com.evolveum.midpoint.wf.impl.access.WorkItemManager; import com.evolveum.midpoint.wf.impl.engine.WorkflowEngine; @@ -38,30 +58,8 @@ import com.evolveum.midpoint.wf.impl.util.MiscHelper; import com.evolveum.midpoint.wf.util.ApprovalUtils; import com.evolveum.midpoint.xml.ns._public.common.common_3.*; -import org.apache.commons.collections4.CollectionUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.test.annotation.DirtiesContext; -import org.springframework.test.annotation.DirtiesContext.ClassMode; -import org.springframework.test.context.ContextConfiguration; - -import java.io.File; -import java.util.*; - -import static com.evolveum.midpoint.prism.PrismConstants.T_PARENT; -import static com.evolveum.midpoint.schema.GetOperationOptions.createRetrieve; -import static com.evolveum.midpoint.xml.ns._public.common.common_3.CaseType.*; -import static com.evolveum.midpoint.xml.ns._public.common.common_3.CaseWorkItemType.F_ASSIGNEE_REF; -import static com.evolveum.midpoint.xml.ns._public.common.common_3.CaseWorkItemType.F_ORIGINAL_ASSIGNEE_REF; -import static com.evolveum.midpoint.xml.ns._public.common.common_3.CaseType.F_APPROVAL_CONTEXT; -import static com.evolveum.midpoint.xml.ns._public.common.common_3.ApprovalContextType.F_DELTAS_TO_APPROVE; -import static java.util.Collections.singleton; -import static org.testng.AssertJUnit.*; -/** - * @author mederly - * - */ -@ContextConfiguration(locations = {"classpath:ctx-workflow-test-main.xml"}) +@ContextConfiguration(locations = { "classpath:ctx-workflow-test-main.xml" }) @DirtiesContext(classMode = ClassMode.AFTER_CLASS) public class AbstractWfTestPolicy extends AbstractWfTest { @@ -126,7 +124,7 @@ public void setTracing(Task opTask) { } } - protected OperationResult executeTest(String testNameExplicit, TestDetails testDetails, int expectedSubTaskCount) + protected OperationResult executeTest(TestDetails testDetails, int expectedSubTaskCount) throws Exception { // GIVEN @@ -287,16 +285,14 @@ protected OperationResult executeTest(String testNameExpli return result; } - protected void assertWfContextAfterClockworkRun(CaseType rootCase, List subcases, List workItems, - OperationResult result, - String objectOid, - List expectedTasks, - List expectedWorkItems) throws Exception { + protected void assertWfContextAfterClockworkRun( + CaseType rootCase, List subcases, List workItems, + String objectOid, List expectedTasks, List expectedWorkItems) { - final Collection> options = - SelectorOptions.createCollection(prismContext.path(F_APPROVAL_CONTEXT, F_WORK_ITEM), createRetrieve()); + // TODO: dead code, remove 2021 +// final Collection> options = +// SelectorOptions.createCollection(prismContext.path(F_APPROVAL_CONTEXT, F_WORK_ITEM), createRetrieve()); - Task opTask = taskManager.createTaskInstance(); display("rootCase", rootCase); assertEquals("Wrong # of wf subcases (" + expectedTasks + ")", expectedTasks.size(), subcases.size()); int i = 0; @@ -346,7 +342,7 @@ private void checkCase(CaseType subcase, String context, ExpectedTask expectedTa } assertNotNull("Missing process start time in subtask: " + context, CaseTypeUtil.getStartTimestamp(subcase)); assertNull("Unexpected process end time in subtask: " + context, subcase.getCloseTimestamp()); - assertEquals("Wrong outcome", null, subcase.getOutcome()); + assertNull("Wrong outcome", subcase.getOutcome()); //assertEquals("Wrong state", null, wfc.getState()); } @@ -358,33 +354,55 @@ protected String getTargetOid(CaseWorkItemType caseWorkItem) { return roleOid; } - protected void checkTargetOid(CaseWorkItemType caseWorkItem, String expectedOid) - throws ObjectNotFoundException, SchemaException, CommunicationException, ConfigurationException, - SecurityViolationException { + protected void checkTargetOid(CaseWorkItemType caseWorkItem, String expectedOid) { String realOid = getTargetOid(caseWorkItem); assertEquals("Unexpected target OID", expectedOid, realOid); } protected abstract static class TestDetails2 { - protected PrismObject getFocus(OperationResult result) throws Exception { return null; } - protected ObjectDelta getFocusDelta() throws Exception { return null; } - protected int getNumberOfDeltasToApprove() { return 0; } - protected List getApprovals() { return null; } + protected PrismObject getFocus(OperationResult result) { + return null; + } + + protected ObjectDelta getFocusDelta() throws Exception { + return null; + } + + protected int getNumberOfDeltasToApprove() { + return 0; + } + + protected List getApprovals() { + return null; + } + protected List> getExpectedDeltasToApprove() { return null; } + protected ObjectDelta getExpectedDelta0() { return null; } + protected String getObjectOid() { return null; } - protected List getExpectedTasks() { return null; } - protected List getExpectedWorkItems() { return null; } - protected void assertDeltaExecuted(int number, boolean yes, Task opTask, OperationResult result) throws Exception { } + protected List getExpectedTasks() { + return null; + } + + protected List getExpectedWorkItems() { + return null; + } + + protected void assertDeltaExecuted(int number, boolean yes, Task opTask, OperationResult result) throws Exception { + } + // mutually exclusive with getApprovalSequence - protected Boolean decideOnApproval(CaseWorkItemType caseWorkItem) throws Exception { return true; } + protected Boolean decideOnApproval(CaseWorkItemType caseWorkItem) throws Exception { + return true; + } private void sortSubcases(List subtasks) { subtasks.sort(Comparator.comparing(this::getCompareKey)); @@ -407,15 +425,16 @@ public List getApprovalSequence() { } protected void afterFirstClockworkRun(CaseType rootCase, List subcases, List workItems, - OperationResult result) throws Exception { } + OperationResult result) { + } public void setTracing(Task opTask) { } } - protected OperationResult executeTest2(String testNameExplicit, TestDetails2 testDetails2, int expectedSubTaskCount, + protected OperationResult executeTest2(TestDetails2 testDetails2, int expectedSubTaskCount, boolean immediate) throws Exception { - return executeTest(testNameExplicit, new TestDetails() { + return executeTest(new TestDetails() { @Override protected LensContext createModelContext(OperationResult result) throws Exception { PrismObject focus = testDetails2.getFocus(result); @@ -440,7 +459,7 @@ protected void afterFirstClockworkRun(CaseType rootCase, } testDetails2.sortSubcases(subcases); testDetails2.sortWorkItems(workItems); - assertWfContextAfterClockworkRun(rootCase, subcases, workItems, result, + assertWfContextAfterClockworkRun(rootCase, subcases, workItems, testDetails2.getObjectOid(), testDetails2.getExpectedTasks(), testDetails2.getExpectedWorkItems()); for (CaseType subcase : subcases) { @@ -471,7 +490,7 @@ protected void afterCase0Finishes(CaseType rootCase, Task opTask, OperationResul protected void afterRootCaseFinishes(CaseType rootCase, List subcases, Task opTask, OperationResult result) throws Exception { for (int i = 0; i <= testDetails2.getNumberOfDeltasToApprove(); i++) { - testDetails2.assertDeltaExecuted(i, i == 0 || testDetails2.getApprovals().get(i-1), opTask, result); + testDetails2.assertDeltaExecuted(i, i == 0 || testDetails2.getApprovals().get(i - 1), opTask, result); } } diff --git a/model/workflow-impl/src/test/java/com/evolveum/midpoint/wf/impl/assignments/AbstractTestAssignmentApproval.java b/model/workflow-impl/src/test/java/com/evolveum/midpoint/wf/impl/assignments/AbstractTestAssignmentApproval.java index fd9c82344aa..ae6e449f42c 100644 --- a/model/workflow-impl/src/test/java/com/evolveum/midpoint/wf/impl/assignments/AbstractTestAssignmentApproval.java +++ b/model/workflow-impl/src/test/java/com/evolveum/midpoint/wf/impl/assignments/AbstractTestAssignmentApproval.java @@ -6,6 +6,22 @@ */ package com.evolveum.midpoint.wf.impl.assignments; +import static org.testng.AssertJUnit.assertEquals; + +import static com.evolveum.midpoint.schema.util.ObjectTypeUtil.createAssignmentTo; + +import java.io.File; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import javax.xml.namespace.QName; + +import org.springframework.test.annotation.DirtiesContext; +import org.springframework.test.annotation.DirtiesContext.ClassMode; +import org.springframework.test.context.ContextConfiguration; +import org.testng.annotations.Test; + import com.evolveum.midpoint.model.api.context.ModelState; import com.evolveum.midpoint.model.api.util.DeputyUtils; import com.evolveum.midpoint.model.impl.lens.LensContext; @@ -21,42 +37,24 @@ import com.evolveum.midpoint.task.api.Task; import com.evolveum.midpoint.test.asserter.OperationResultAsserter; import com.evolveum.midpoint.test.util.TestUtil; -import com.evolveum.midpoint.util.logging.Trace; -import com.evolveum.midpoint.util.logging.TraceManager; import com.evolveum.midpoint.wf.impl.AbstractWfTestPolicy; import com.evolveum.midpoint.wf.impl.ExpectedTask; import com.evolveum.midpoint.wf.impl.ExpectedWorkItem; import com.evolveum.midpoint.wf.impl.WorkflowResult; import com.evolveum.midpoint.xml.ns._public.common.common_3.*; -import org.springframework.test.annotation.DirtiesContext; -import org.springframework.test.annotation.DirtiesContext.ClassMode; -import org.springframework.test.context.ContextConfiguration; -import org.testng.annotations.Test; - -import javax.xml.namespace.QName; -import java.io.File; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; - -import static com.evolveum.midpoint.schema.util.ObjectTypeUtil.createAssignmentTo; -import static org.testng.AssertJUnit.assertEquals; /** * Testing approvals of role assignments: create/delete assignment, potentially for more roles and combined with other operations. * Testing also with deputies specified. - * + *

* Subclasses provide specializations regarding ways how rules and/or approvers are attached to roles. * * @author mederly */ -@ContextConfiguration(locations = {"classpath:ctx-workflow-test-main.xml"}) +@ContextConfiguration(locations = { "classpath:ctx-workflow-test-main.xml" }) @DirtiesContext(classMode = ClassMode.AFTER_CLASS) public abstract class AbstractTestAssignmentApproval extends AbstractWfTestPolicy { - protected static final Trace LOGGER = TraceManager.getTrace(AbstractTestAssignmentApproval.class); - static final File TEST_RESOURCE_DIR = new File("src/test/resources/assignments"); private static final File METAROLE_DEFAULT_FILE = new File(TEST_RESOURCE_DIR, "metarole-default.xml"); @@ -199,7 +197,7 @@ public void test040AddRole1AssignmentImmediate() throws Exception { /** * Attempt to assign roles 1, 2, 3, 4 along with changing description. Assignment of role 4 and description change * are not to be approved. - * + *

* Decisions for roles 1-3 are rejected. */ @Test @@ -214,7 +212,7 @@ public void test050AddRoles123AssignmentNNN() throws Exception { * The same as above, but with immediate execution. */ @Test - public void test052AddRoles123AssignmentNNNImmediate() throws Exception { + public void test052AddRoles123AssignmentNNNImmediate() throws Exception { login(userAdministrator); unassignAllRoles(userJackOid); @@ -224,7 +222,7 @@ public void test052AddRoles123AssignmentNNNImmediate() throws Exception { /** * Attempt to assign roles 1, 2, 3, 4 along with changing description. Assignment of role 4 and description change * are not to be approved. - * + *

* Decision for role 1 is accepted. */ @Test @@ -246,7 +244,7 @@ public void test062AddRoles123AssignmentYNNImmediate() throws Exception { /** * Attempt to assign roles 1, 2, 3, 4 along with changing description. Assignment of role 4 and description change * are not to be approved. - * + *

* Decisions for roles 1-3 are accepted. */ @Test @@ -332,7 +330,7 @@ private OperationResult executeAssignRole1ToJack(boolean immediate, boolean depu .item(UserType.F_ASSIGNMENT).add(assignment) .asObjectDelta(userJackOid); String realApproverOid = approverOid != null ? approverOid : userLead1Oid; - return executeTest2(testName, new TestDetails2() { + return executeTest2(new TestDetails2() { @Override protected PrismObject getFocus(OperationResult result) { return jack.clone(); @@ -467,7 +465,7 @@ private void executeAssignRoles123ToJack(String testNameExplicit, boolean immedi .summarize(addRole1Delta, addRole2Delta, addRole3Delta, addRole4Delta, changeDescriptionDelta); ObjectDelta delta0 = ObjectDeltaCollectionsUtil.summarize(addRole4Delta, changeDescriptionDelta); String originalDescription = getUser(userJackOid).asObjectable().getDescription(); - executeTest2(testName, new TestDetails2() { + executeTest2(new TestDetails2() { @Override protected PrismObject getFocus(OperationResult result) { return jack.clone(); @@ -506,9 +504,9 @@ protected String getObjectOid() { @Override protected List getExpectedTasks() { return Arrays.asList( - new ExpectedTask(getRoleOid(1), "Assigning role \""+getRoleName(1)+"\" to user \"jack\""), - new ExpectedTask(getRoleOid(2), "Assigning role \""+getRoleName(2)+"\" to user \"jack\""), - new ExpectedTask(getRoleOid(3), "Assigning role \""+getRoleName(3)+"\" to user \"jack\"")); + new ExpectedTask(getRoleOid(1), "Assigning role \"" + getRoleName(1) + "\" to user \"jack\""), + new ExpectedTask(getRoleOid(2), "Assigning role \"" + getRoleName(2) + "\" to user \"jack\""), + new ExpectedTask(getRoleOid(3), "Assigning role \"" + getRoleName(3) + "\" to user \"jack\"")); } @Override @@ -540,12 +538,12 @@ protected void assertDeltaExecuted(int number, boolean yes, Task opTask, Operati case 1: case 2: case 3: - if (yes) { - assertAssignedRole(userJackOid, getRoleOid(number), result); - } else { - assertNotAssignedRole(userJackOid, getRoleOid(number), result); - } - break; + if (yes) { + assertAssignedRole(userJackOid, getRoleOid(number), result); + } else { + assertNotAssignedRole(userJackOid, getRoleOid(number), result); + } + break; } } diff --git a/model/workflow-impl/src/test/java/com/evolveum/midpoint/wf/impl/assignments/TestAssignmentsAdvanced.java b/model/workflow-impl/src/test/java/com/evolveum/midpoint/wf/impl/assignments/TestAssignmentsAdvanced.java index dffc135c2a3..1ea6deeecc8 100644 --- a/model/workflow-impl/src/test/java/com/evolveum/midpoint/wf/impl/assignments/TestAssignmentsAdvanced.java +++ b/model/workflow-impl/src/test/java/com/evolveum/midpoint/wf/impl/assignments/TestAssignmentsAdvanced.java @@ -6,6 +6,24 @@ */ package com.evolveum.midpoint.wf.impl.assignments; +import static java.util.Collections.*; +import static org.testng.AssertJUnit.*; + +import static com.evolveum.midpoint.prism.polystring.PolyString.getOrig; +import static com.evolveum.midpoint.schema.util.ObjectTypeUtil.createAssignmentTo; +import static com.evolveum.midpoint.xml.ns._public.common.common_3.ApprovalLevelOutcomeType.*; +import static com.evolveum.midpoint.xml.ns._public.common.common_3.AutomatedCompletionReasonType.AUTO_COMPLETION_CONDITION; +import static com.evolveum.midpoint.xml.ns._public.common.common_3.AutomatedCompletionReasonType.NO_ASSIGNEES_FOUND; +import static com.evolveum.midpoint.xml.ns._public.common.common_3.PartialProcessingTypeType.PROCESS; + +import java.io.File; +import java.util.*; + +import org.springframework.test.annotation.DirtiesContext; +import org.springframework.test.annotation.DirtiesContext.ClassMode; +import org.springframework.test.context.ContextConfiguration; +import org.testng.annotations.Test; + import com.evolveum.midpoint.model.api.ModelExecuteOptions; import com.evolveum.midpoint.model.api.context.ModelContext; import com.evolveum.midpoint.prism.PrismContext; @@ -22,43 +40,23 @@ import com.evolveum.midpoint.test.TestResource; import com.evolveum.midpoint.util.DebugUtil; import com.evolveum.midpoint.util.exception.PolicyViolationException; -import com.evolveum.midpoint.util.logging.Trace; -import com.evolveum.midpoint.util.logging.TraceManager; import com.evolveum.midpoint.wf.impl.AbstractWfTestPolicy; import com.evolveum.midpoint.wf.impl.ApprovalInstruction; import com.evolveum.midpoint.wf.impl.ExpectedTask; import com.evolveum.midpoint.wf.impl.ExpectedWorkItem; import com.evolveum.midpoint.xml.ns._public.common.common_3.*; -import org.springframework.test.annotation.DirtiesContext; -import org.springframework.test.annotation.DirtiesContext.ClassMode; -import org.springframework.test.context.ContextConfiguration; -import org.testng.annotations.Test; - -import java.io.File; -import java.util.*; - -import static com.evolveum.midpoint.prism.polystring.PolyString.getOrig; -import static com.evolveum.midpoint.schema.util.ObjectTypeUtil.createAssignmentTo; -import static com.evolveum.midpoint.xml.ns._public.common.common_3.ApprovalLevelOutcomeType.*; -import static com.evolveum.midpoint.xml.ns._public.common.common_3.AutomatedCompletionReasonType.AUTO_COMPLETION_CONDITION; -import static com.evolveum.midpoint.xml.ns._public.common.common_3.AutomatedCompletionReasonType.NO_ASSIGNEES_FOUND; -import static com.evolveum.midpoint.xml.ns._public.common.common_3.PartialProcessingTypeType.PROCESS; -import static java.util.Collections.*; -import static org.testng.AssertJUnit.*; /** * A special test dealing with assigning roles that have different metarole-induced approval policies. - * + *

* Role21 - uses default approval (org:approver) * Role22 - uses metarole 1 'default' induced approval (org:special-approver) * Role23 - uses both metarole 'default' and 'security' induced approval (org:special-approver and org:security-approver) */ -@ContextConfiguration(locations = {"classpath:ctx-workflow-test-main.xml"}) +@ContextConfiguration(locations = { "classpath:ctx-workflow-test-main.xml" }) @DirtiesContext(classMode = ClassMode.AFTER_CLASS) public class TestAssignmentsAdvanced extends AbstractWfTestPolicy { - protected static final Trace LOGGER = TraceManager.getTrace(TestAssignmentsAdvanced.class); - private static final File TEST_RESOURCE_DIR = new File("src/test/resources/assignments-advanced"); private static final File METAROLE_DEFAULT_FILE = new File(TEST_RESOURCE_DIR, "metarole-default.xml"); @@ -374,15 +372,15 @@ public void test610ModifyAssignmentOfRole29() throws Exception { AssignmentType assignment = findAssignmentByTargetRequired(jackBefore, roleRole29Oid); ObjectDelta deltaToApprove = prismContext.deltaFor(UserType.class) .item(UserType.F_ASSIGNMENT, assignment.getId(), AssignmentType.F_DESCRIPTION) - .replace("new description") + .replace("new description") .asObjectDeltaCast(userJackOid); ObjectDelta delta0 = prismContext.deltaFor(UserType.class) .item(UserType.F_FULL_NAME) - .replace(PolyString.fromOrig("new full name")) + .replace(PolyString.fromOrig("new full name")) .asObjectDeltaCast(userJackOid); // +THEN - executeTest2(getTestNameShort(), new TestDetails2() { + executeTest2(new TestDetails2() { @Override protected PrismObject getFocus(OperationResult result) { return jackBefore; @@ -490,15 +488,15 @@ public void test620ModifyAssignmentOfRole29Immediate() throws Exception { AssignmentType assignment = findAssignmentByTargetRequired(jackBefore, roleRole29Oid); ObjectDelta deltaToApprove = prismContext.deltaFor(UserType.class) .item(UserType.F_ASSIGNMENT, assignment.getId(), AssignmentType.F_DESCRIPTION) - .replace("new description 2") + .replace("new description 2") .asObjectDeltaCast(userJackOid); ObjectDelta delta0 = prismContext.deltaFor(UserType.class) .item(UserType.F_FULL_NAME) - .replace(PolyString.fromOrig("new full name 2")) + .replace(PolyString.fromOrig("new full name 2")) .asObjectDeltaCast(userJackOid); // +THEN - executeTest2(getTestNameShort(), new TestDetails2() { + executeTest2(new TestDetails2() { @Override protected PrismObject getFocus(OperationResult result) { return jackBefore; @@ -612,8 +610,8 @@ public void test700AssignRole28() throws Exception { // WHEN/THEN ObjectDelta deltaToApprove = prismContext.deltaFor(UserType.class) .item(UserType.F_ASSIGNMENT) - .add(ObjectTypeUtil.createAssignmentTo(roleRole28Oid, ObjectTypes.ROLE, prismContext) - .description("description")) + .add(ObjectTypeUtil.createAssignmentTo(roleRole28Oid, ObjectTypes.ROLE, prismContext) + .description("description")) .asObjectDeltaCast(userJackOid); ObjectDelta delta0 = prismContext.deltaFor(UserType.class) .item(UserType.F_FULL_NAME) @@ -622,7 +620,7 @@ public void test700AssignRole28() throws Exception { PrismObject jackBefore = getUser(userJackOid); - executeTest2(getTestNameShort(), new TestDetails2() { + executeTest2(new TestDetails2() { @Override protected PrismObject getFocus(OperationResult result) { return jackBefore; @@ -723,17 +721,17 @@ public void test710ModifyAssignmentOfRole28() throws Exception { AssignmentType assignment = findAssignmentByTargetRequired(jackBefore, roleRole28Oid); ObjectDelta deltaToApprove = prismContext.deltaFor(UserType.class) .item(UserType.F_ASSIGNMENT, assignment.getId(), AssignmentType.F_DESCRIPTION) - .replace("new description") + .replace("new description") .item(UserType.F_ASSIGNMENT, assignment.getId(), AssignmentType.F_LIFECYCLE_STATE) // this will be part of the delta to approve - .replace("active") + .replace("active") .asObjectDeltaCast(userJackOid); ObjectDelta delta0 = prismContext.deltaFor(UserType.class) .item(UserType.F_FULL_NAME) - .replace(PolyString.fromOrig("new full name 4")) + .replace(PolyString.fromOrig("new full name 4")) .asObjectDeltaCast(userJackOid); // +THEN - executeTest2(getTestNameShort(), new TestDetails2() { + executeTest2(new TestDetails2() { @Override protected PrismObject getFocus(OperationResult result) { return jackBefore; @@ -831,7 +829,7 @@ public void test720UnassignRole28() throws Exception { AssignmentType assignment = findAssignmentByTargetRequired(jackBefore, roleRole28Oid); ObjectDelta deltaToApprove = prismContext.deltaFor(UserType.class) .item(UserType.F_ASSIGNMENT) - .delete(new AssignmentType().id(assignment.getId())) // id-only, to test the constraint + .delete(new AssignmentType().id(assignment.getId())) // id-only, to test the constraint .asObjectDeltaCast(userJackOid); ObjectDelta delta0 = prismContext.deltaFor(UserType.class) .item(UserType.F_FULL_NAME) @@ -839,7 +837,7 @@ public void test720UnassignRole28() throws Exception { .asObjectDeltaCast(userJackOid); // +THEN - executeTest2(getTestNameShort(), new TestDetails2() { + executeTest2(new TestDetails2() { @Override protected PrismObject getFocus(OperationResult result) { return jackBefore; @@ -1005,11 +1003,11 @@ public void test900AssignIdempotentRole() throws Exception { ObjectDelta delta = prismContext.deltaFor(UserType.class) .item(UserType.F_ASSIGNMENT) - .add( - new AssignmentType(prismContext).targetRef(ROLE_IDEMPOTENT.oid, RoleType.COMPLEX_TYPE), - new AssignmentType(prismContext) - .targetRef(ROLE_IDEMPOTENT.oid, RoleType.COMPLEX_TYPE) - .beginActivation().validFrom("1990-01-01T00:00:00").end()) + .add( + new AssignmentType(prismContext).targetRef(ROLE_IDEMPOTENT.oid, RoleType.COMPLEX_TYPE), + new AssignmentType(prismContext) + .targetRef(ROLE_IDEMPOTENT.oid, RoleType.COMPLEX_TYPE) + .beginActivation().validFrom("1990-01-01T00:00:00").end()) .asObjectDeltaCast(userJackOid); executeChanges(delta, null, task, result); @@ -1045,11 +1043,11 @@ public void test910AssignRoleWithIdempotentMetarole() throws Exception { ObjectDelta delta = prismContext.deltaFor(UserType.class) .item(UserType.F_ASSIGNMENT) - .add( - new AssignmentType(prismContext).targetRef(ROLE_WITH_IDEMPOTENT_METAROLE.oid, RoleType.COMPLEX_TYPE), - new AssignmentType(prismContext) - .targetRef(ROLE_WITH_IDEMPOTENT_METAROLE.oid, RoleType.COMPLEX_TYPE) - .beginActivation().validFrom("1990-01-01T00:00:00").end()) + .add( + new AssignmentType(prismContext).targetRef(ROLE_WITH_IDEMPOTENT_METAROLE.oid, RoleType.COMPLEX_TYPE), + new AssignmentType(prismContext) + .targetRef(ROLE_WITH_IDEMPOTENT_METAROLE.oid, RoleType.COMPLEX_TYPE) + .beginActivation().validFrom("1990-01-01T00:00:00").end()) .asObjectDeltaCast(userJackOid); executeChanges(delta, null, task, result); @@ -1098,7 +1096,7 @@ private void executeAssignRoles123ToJack(boolean immediate, .summarize(addRole1Delta, addRole2Delta, addRole3Delta, changeDescriptionDelta); ObjectDelta delta0 = changeDescriptionDelta.clone(); String originalDescription = getUser(userJackOid).asObjectable().getDescription(); - executeTest2(testName, new TestDetails2() { + executeTest2(new TestDetails2() { @Override protected PrismObject getFocus(OperationResult result) { return jack.clone(); @@ -1171,12 +1169,12 @@ protected void assertDeltaExecuted(int number, boolean yes, Task opTask, Operati case 2: case 3: String[] oids = { roleRole21Oid, roleRole22Oid, roleRole23Oid }; - if (yes) { - assertAssignedRole(userJackOid, oids[number-1], result); - } else { - assertNotAssignedRole(userJackOid, oids[number-1], result); - } - break; + if (yes) { + assertAssignedRole(userJackOid, oids[number - 1], result); + } else { + assertNotAssignedRole(userJackOid, oids[number - 1], result); + } + break; } } @@ -1191,11 +1189,11 @@ public List getApprovalSequence() { List tasks = getExpectedTasks(); List instructions = new ArrayList<>(); instructions.add(new ApprovalInstruction( - new ExpectedWorkItem(userLead21Oid, roleRole21Oid, tasks.get(0)), approve1, userLead21Oid, null)); + new ExpectedWorkItem(userLead21Oid, roleRole21Oid, tasks.get(0)), approve1, userLead21Oid, null)); instructions.add(new ApprovalInstruction( - new ExpectedWorkItem(userLead22Oid, roleRole22Oid, tasks.get(1)), approve2, userLead22Oid, null)); + new ExpectedWorkItem(userLead22Oid, roleRole22Oid, tasks.get(1)), approve2, userLead22Oid, null)); instructions.add(new ApprovalInstruction( - new ExpectedWorkItem(userLead23Oid, roleRole23Oid, tasks.get(2)), approve3a, userLead23Oid, null)); + new ExpectedWorkItem(userLead23Oid, roleRole23Oid, tasks.get(2)), approve3a, userLead23Oid, null)); if (approve3a) { ExpectedWorkItem expectedWorkItem = new ExpectedWorkItem(userSecurityApproverOid, roleRole23Oid, tasks.get(2)); ApprovalInstruction.CheckedRunnable before = () -> { @@ -1325,15 +1323,15 @@ private void assertApprovalInfo(List inf assertNotNull("no execution preview at " + pos, stagePreview.getExecutionPreview()); assertNull("execution record present at " + pos, stagePreview.getExecutionRecord()); - assertEquals("Wrong preview stage number at " + pos, (Integer) (i+1), stagePreview.getNumber()); - assertEquals("Wrong definition stage number at " + pos, (Integer) (i+1), stagePreview.getDefinition().getNumber()); + assertEquals("Wrong preview stage number at " + pos, (Integer) (i + 1), stagePreview.getNumber()); + assertEquals("Wrong definition stage number at " + pos, (Integer) (i + 1), stagePreview.getDefinition().getNumber()); assertEquals("Stage definition approver ref info differs at " + pos, expectedStagePreview.definitionApproverOids, getOids(stagePreview.getDefinition().getApproverRef())); assertEquals("Stage expected approver ref info differs at " + pos, expectedStagePreview.expectedApproverOids, getOids(stagePreview.getExecutionPreview().getExpectedApproverRef())); assertEquals("Unexpected outcome at " + pos, expectedStagePreview.outcome, stagePreview.getExecutionPreview().getExpectedAutomatedOutcome()); assertEquals("Unexpected completion reason at " + pos, expectedStagePreview.reason, stagePreview.getExecutionPreview().getExpectedAutomatedCompletionReason()); if (expectedStagePreview.hasError) { - assertNotNull("Error should be present at "+ pos, stagePreview.getExecutionPreview().getErrorMessage()); + assertNotNull("Error should be present at " + pos, stagePreview.getExecutionPreview().getErrorMessage()); } else { //noinspection SimplifiedTestNGAssertion assertEquals("Error message differs at " + pos, null, stagePreview.getExecutionPreview().getErrorMessage()); @@ -1377,7 +1375,7 @@ private void executeUnassignRoles123ToJack(boolean immediate, boolean approve, b ObjectDelta delta0 = ObjectDeltaCollectionsUtil .summarize(changeDescriptionDelta, deleteRole1Delta, deleteRole2Delta); String originalDescription = getUser(userJackOid).asObjectable().getDescription(); - executeTest2(testName, new TestDetails2() { + executeTest2(new TestDetails2() { @Override protected PrismObject getFocus(OperationResult result) { return jack.clone(); @@ -1502,14 +1500,17 @@ private static class ExpectedStagePreview { private ExpectedStagePreview(int number, Set definitionApproverOids, Set expectedApproverOids) { this(number, definitionApproverOids, expectedApproverOids, null, null, false); } + private ExpectedStagePreview(int number, Set definitionApproverOids, Set expectedApproverOids, ApprovalLevelOutcomeType outcome, AutomatedCompletionReasonType reason) { this(number, definitionApproverOids, expectedApproverOids, outcome, reason, false); } + private ExpectedStagePreview(int number, Set definitionApproverOids, Set expectedApproverOids, boolean hasError) { this(number, definitionApproverOids, expectedApproverOids, null, null, hasError); } + private ExpectedStagePreview(int number, Set definitionApproverOids, Set expectedApproverOids, ApprovalLevelOutcomeType outcome, AutomatedCompletionReasonType reason, boolean hasError) { this.number = number; diff --git a/model/workflow-impl/src/test/java/com/evolveum/midpoint/wf/impl/association/TestAddAssociation.java b/model/workflow-impl/src/test/java/com/evolveum/midpoint/wf/impl/association/TestAddAssociation.java index df698bd1210..11d7b4daabd 100644 --- a/model/workflow-impl/src/test/java/com/evolveum/midpoint/wf/impl/association/TestAddAssociation.java +++ b/model/workflow-impl/src/test/java/com/evolveum/midpoint/wf/impl/association/TestAddAssociation.java @@ -7,6 +7,23 @@ package com.evolveum.midpoint.wf.impl.association; +import static org.testng.AssertJUnit.assertEquals; +import static org.testng.AssertJUnit.assertNotNull; + +import static com.evolveum.midpoint.xml.ns._public.common.common_3.ApprovalContextType.F_DELTAS_TO_APPROVE; +import static com.evolveum.midpoint.xml.ns._public.common.common_3.CaseType.F_APPROVAL_CONTEXT; + +import java.io.File; +import java.util.List; +import javax.xml.namespace.QName; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.annotation.DirtiesContext; +import org.springframework.test.annotation.DirtiesContext.ClassMode; +import org.springframework.test.context.ContextConfiguration; +import org.testng.AssertJUnit; +import org.testng.annotations.Test; + import com.evolveum.midpoint.model.api.context.ModelContext; import com.evolveum.midpoint.model.api.context.ModelState; import com.evolveum.midpoint.model.api.hooks.HookOperationMode; @@ -29,8 +46,6 @@ import com.evolveum.midpoint.util.MiscUtil; import com.evolveum.midpoint.util.QNameUtil; import com.evolveum.midpoint.util.exception.SchemaException; -import com.evolveum.midpoint.util.logging.Trace; -import com.evolveum.midpoint.util.logging.TraceManager; import com.evolveum.midpoint.wf.api.WorkflowManager; import com.evolveum.midpoint.wf.impl.AbstractWfTest; import com.evolveum.midpoint.wf.impl.WfTestHelper; @@ -43,31 +58,14 @@ import com.evolveum.midpoint.wf.util.ApprovalUtils; import com.evolveum.midpoint.xml.ns._public.common.api_types_3.ObjectModificationType; import com.evolveum.midpoint.xml.ns._public.common.common_3.*; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.test.annotation.DirtiesContext; -import org.springframework.test.annotation.DirtiesContext.ClassMode; -import org.springframework.test.context.ContextConfiguration; -import org.testng.AssertJUnit; -import org.testng.annotations.Test; - -import javax.xml.namespace.QName; -import java.io.File; -import java.util.List; - -import static com.evolveum.midpoint.xml.ns._public.common.common_3.ApprovalContextType.F_DELTAS_TO_APPROVE; -import static com.evolveum.midpoint.xml.ns._public.common.common_3.CaseType.F_APPROVAL_CONTEXT; -import static org.testng.AssertJUnit.assertEquals; -import static org.testng.AssertJUnit.assertNotNull; /** * @author mederly */ -@ContextConfiguration(locations = {"classpath:ctx-workflow-test-main.xml"}) +@ContextConfiguration(locations = { "classpath:ctx-workflow-test-main.xml" }) @DirtiesContext(classMode = ClassMode.AFTER_CLASS) public class TestAddAssociation extends AbstractWfTest { - protected static final Trace LOGGER = TraceManager.getTrace(TestAddAssociation.class); - private static final File TEST_RESOURCE_DIR = new File("src/test/resources/association"); private static final String DONT_CHECK = "dont-check"; @@ -337,7 +335,6 @@ public void test100AddJackToGuests() throws Exception { assertHasAssociation(accountAfter, new QName("group"), SHADOW_GUESTS_OID); } - public void assertHasAssociation(ShadowType shadow, QName associationName, String entitlementOid) { for (ShadowAssociationType association : shadow.getAssociation()) { if (QNameUtil.match(association.getName(), associationName) && @@ -352,16 +349,37 @@ abstract static class TestDetails { abstract int subcasesCount(); abstract boolean immediate(); abstract boolean checkObjectOnSubtasks(); - boolean approvedAutomatically() { return false; } - LensContext createModelContext(Task task, OperationResult result) throws Exception { return null; } + + boolean approvedAutomatically() { + return false; + } + + LensContext createModelContext(Task task, OperationResult result) throws Exception { + return null; + } + void assertsAfterClockworkRun(CaseType rootCase, CaseType case0, - List subcases, Task opTask, OperationResult result) throws Exception { } - void assertsAfterImmediateExecutionFinished(CaseType task, OperationResult result) throws Exception { } + List subcases, Task opTask, OperationResult result) throws Exception { + } + + void assertsAfterImmediateExecutionFinished(CaseType task, OperationResult result) throws Exception { + } + void assertsRootCaseFinishes(CaseType aCase, List subcases, Task opTask, - OperationResult result) throws Exception { } - boolean decideOnApproval(CaseType subcase, ApprovalContextType wfContext) throws Exception { return true; } - String getObjectOid(CaseType task, OperationResult result) throws SchemaException { return null; } - boolean removeAssignmentsBeforeTest() { return true; } + OperationResult result) throws Exception { + } + + boolean decideOnApproval(CaseType subcase, ApprovalContextType wfContext) throws Exception { + return true; + } + + String getObjectOid(CaseType task, OperationResult result) throws SchemaException { + return null; + } + + boolean removeAssignmentsBeforeTest() { + return true; + } } private void executeTest(String testName, String focusOid, TestDetails testDetails) throws Exception { @@ -371,7 +389,7 @@ private void executeTest(String testName, String focusOid, TestDetails testDetai dummyAuditService.clear(); OperationResult result = new OperationResult("execution"); - Task task = taskManager.createTaskInstance(TestAddAssociation.class.getName() + "."+testName); + Task task = taskManager.createTaskInstance(TestAddAssociation.class.getName() + "." + testName); task.setOwner(userAdministrator); if (focusOid != null && testDetails.removeAssignmentsBeforeTest()) { @@ -427,7 +445,7 @@ private void executeTest(String testName, String focusOid, TestDetails testDetai assertNotNull("work item not found", workItem); ApprovalContextType wfContext = subcase.getApprovalContext(); - LOGGER.trace("wfContext = {}", wfContext); + logger.trace("wfContext = {}", wfContext); boolean approve = testDetails.decideOnApproval(subcase, wfContext); workflowManager.completeWorkItem(WorkItemId.of(workItem), @@ -469,7 +487,7 @@ private void executeTest(String testName, String focusOid, TestDetails testDetai private void assertObjectInTaskTree(CaseType rootCase, String oid, boolean checkObjectOnSubtasks, OperationResult result) throws SchemaException { assertObjectInTask(rootCase, oid); if (checkObjectOnSubtasks) { - for (CaseType subcase: miscHelper.getSubcases(rootCase, result)) { + for (CaseType subcase : miscHelper.getSubcases(rootCase, result)) { assertObjectInTask(subcase, oid); } } diff --git a/model/workflow-impl/src/test/java/com/evolveum/midpoint/wf/impl/objects/AbstractTestObjectLifecycleApproval.java b/model/workflow-impl/src/test/java/com/evolveum/midpoint/wf/impl/objects/AbstractTestObjectLifecycleApproval.java index 8998eb2fb94..867a7058495 100644 --- a/model/workflow-impl/src/test/java/com/evolveum/midpoint/wf/impl/objects/AbstractTestObjectLifecycleApproval.java +++ b/model/workflow-impl/src/test/java/com/evolveum/midpoint/wf/impl/objects/AbstractTestObjectLifecycleApproval.java @@ -6,6 +6,23 @@ */ package com.evolveum.midpoint.wf.impl.objects; +import static java.util.Collections.singleton; +import static java.util.Collections.singletonList; +import static org.testng.AssertJUnit.assertEquals; +import static org.testng.AssertJUnit.assertNull; + +import static com.evolveum.midpoint.prism.util.PrismTestUtil.getPrismContext; + +import java.io.File; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; + +import org.springframework.test.annotation.DirtiesContext; +import org.springframework.test.annotation.DirtiesContext.ClassMode; +import org.springframework.test.context.ContextConfiguration; +import org.testng.annotations.Test; + import com.evolveum.midpoint.model.impl.lens.LensContext; import com.evolveum.midpoint.prism.PrismObject; import com.evolveum.midpoint.prism.PrismReferenceValue; @@ -16,43 +33,22 @@ import com.evolveum.midpoint.schema.result.OperationResult; import com.evolveum.midpoint.schema.util.ObjectTypeUtil; import com.evolveum.midpoint.task.api.Task; -import com.evolveum.midpoint.util.logging.Trace; -import com.evolveum.midpoint.util.logging.TraceManager; import com.evolveum.midpoint.wf.impl.AbstractWfTestPolicy; import com.evolveum.midpoint.wf.impl.ApprovalInstruction; import com.evolveum.midpoint.wf.impl.ExpectedTask; import com.evolveum.midpoint.wf.impl.ExpectedWorkItem; import com.evolveum.midpoint.xml.ns._public.common.common_3.*; import com.evolveum.prism.xml.ns._public.types_3.PolyStringType; -import org.springframework.test.annotation.DirtiesContext; -import org.springframework.test.annotation.DirtiesContext.ClassMode; -import org.springframework.test.context.ContextConfiguration; -import org.testng.annotations.Test; - -import java.io.File; -import java.util.Collections; -import java.util.HashSet; -import java.util.List; - -import static com.evolveum.midpoint.prism.util.PrismTestUtil.getPrismContext; -import static java.util.Collections.singleton; -import static java.util.Collections.singletonList; -import static org.testng.AssertJUnit.assertEquals; -import static org.testng.AssertJUnit.assertNull; /** * Testing approvals of role lifecycle: create/modify/delete role. - * + *

* Subclasses provide specializations regarding ways how rules and/or approvers are attached to roles. - * - * @author mederly */ -@ContextConfiguration(locations = {"classpath:ctx-workflow-test-main.xml"}) +@ContextConfiguration(locations = { "classpath:ctx-workflow-test-main.xml" }) @DirtiesContext(classMode = ClassMode.AFTER_CLASS) public abstract class AbstractTestObjectLifecycleApproval extends AbstractWfTestPolicy { - protected static final Trace LOGGER = TraceManager.getTrace(AbstractTestObjectLifecycleApproval.class); - static final File TEST_RESOURCE_DIR = new File("src/test/resources/objects"); private static final File USER_PIRATE_OWNER_FILE = new File(TEST_RESOURCE_DIR, "user-pirate-owner.xml"); @@ -110,8 +106,8 @@ public void test010CreateRolePirate() throws Exception { PrismReferenceValue pirateOwner = getPrismContext().itemFactory().createReferenceValue(rolePirateOid, RoleType.COMPLEX_TYPE); pirateOwner.setRelation(SchemaConstants.ORG_OWNER); executeChanges(prismContext.deltaFor(UserType.class) - .item(UserType.F_ASSIGNMENT).add(ObjectTypeUtil.createAssignmentTo(pirateOwner, prismContext)) - .asObjectDelta(USER_PIRATE_OWNER_OID), + .item(UserType.F_ASSIGNMENT).add(ObjectTypeUtil.createAssignmentTo(pirateOwner, prismContext)) + .asObjectDelta(USER_PIRATE_OWNER_OID), null, task, result); PrismObject pirateAfter = getRole(rolePirateOid); display("Pirate role", pirateAfter); @@ -135,15 +131,14 @@ public void test100ModifyRolePirateDescription() throws Exception { ObjectDelta descriptionDelta = prismContext.deltaFor(RoleType.class) .item(RoleType.F_DESCRIPTION).replace("Bloody pirate") .asObjectDelta(rolePirateOid); - ObjectDelta delta0 = prismContext.deltaFactory().object() + prismContext.deltaFactory().object() .createModifyDelta(rolePirateOid, Collections.emptyList(), RoleType.class); - //noinspection UnnecessaryLocalVariable - ObjectDelta delta1 = descriptionDelta; ExpectedTask expectedTask = new ExpectedTask(null, "Modifying role \"pirate\""); ExpectedWorkItem expectedWorkItem = new ExpectedWorkItem(USER_PIRATE_OWNER_OID, null, expectedTask); - modifyObject(descriptionDelta, delta0, delta1, false, true, USER_PIRATE_OWNER_OID, + modifyObject(descriptionDelta, false, true, USER_PIRATE_OWNER_OID, Collections.singletonList(expectedTask), Collections.singletonList(expectedWorkItem), - () -> {}, + () -> { + }, () -> assertNull("Description is modified", getRoleSimple(rolePirateOid).getDescription()), () -> assertEquals("Description was NOT modified", "Bloody pirate", getRoleSimple(rolePirateOid).getDescription())); @@ -164,15 +159,17 @@ public void test200DeleteRolePirate() throws Exception { ExpectedTask expectedTask = new ExpectedTask(null, "Deleting role \"pirate\""); ExpectedWorkItem expectedWorkItem = new ExpectedWorkItem(USER_PIRATE_OWNER_OID, null, expectedTask); - deleteObject(RoleType.class, rolePirateOid, false, true, USER_PIRATE_OWNER_OID, + deleteObject(RoleType.class, rolePirateOid, false, true, Collections.singletonList(expectedTask), Collections.singletonList(expectedWorkItem)); } - private void createObject(ObjectType object, boolean immediate, boolean approve, String assigneeOid) throws Exception { + private void createObject( + ObjectType object, boolean immediate, boolean approve, String assigneeOid) + throws Exception { //noinspection unchecked ObjectDelta addObjectDelta = DeltaFactory.Object.createAddDelta((PrismObject) object.asPrismObject()); - executeTest(null, new TestDetails() { + executeTest(new TestDetails() { @Override protected LensContext createModelContext(OperationResult result) throws Exception { //noinspection unchecked @@ -193,7 +190,7 @@ protected void afterFirstClockworkRun(CaseType rootCase, assertNoObject(object); ExpectedTask expectedTask = new ExpectedTask(null, "Adding role \"" + object.getName().getOrig() + "\""); ExpectedWorkItem expectedWorkItem = new ExpectedWorkItem(assigneeOid, null, expectedTask); - assertWfContextAfterClockworkRun(rootCase, subcases, workItems, result, + assertWfContextAfterClockworkRun(rootCase, subcases, workItems, null, Collections.singletonList(expectedTask), Collections.singletonList(expectedWorkItem)); @@ -226,15 +223,13 @@ public List getApprovalSequence() { }, 1); } - public void modifyObject(ObjectDelta objectDelta, - ObjectDelta expectedDelta0, ObjectDelta expectedDelta1, - boolean immediate, boolean approve, - String assigneeOid, + public void modifyObject( + ObjectDelta objectDelta, boolean immediate, boolean approve, String assigneeOid, List expectedTasks, List expectedWorkItems, - Runnable assertDelta0Executed, - Runnable assertDelta1NotExecuted, Runnable assertDelta1Executed) throws Exception { + Runnable assertDelta0Executed, Runnable assertDelta1NotExecuted, Runnable assertDelta1Executed) + throws Exception { - executeTest(null, new TestDetails() { + executeTest(new TestDetails() { @Override protected LensContext createModelContext(OperationResult result) throws Exception { Class clazz = objectDelta.getObjectTypeClass(); @@ -254,20 +249,20 @@ protected void afterFirstClockworkRun(CaseType rootCase, // ObjectDelta realDelta0 = taskModelContext.getFocusContext().getPrimaryDelta(); // assertDeltasEqual("Wrong delta left as primary focus delta.", expectedDelta0, realDelta0); assertDelta1NotExecuted.run(); - assertWfContextAfterClockworkRun(rootCase, subcases, workItems, result, + assertWfContextAfterClockworkRun(rootCase, subcases, workItems, objectDelta.getOid(), expectedTasks, expectedWorkItems); } } @Override - protected void afterCase0Finishes(CaseType rootCase, Task opTask, OperationResult result) throws Exception { + protected void afterCase0Finishes(CaseType rootCase, Task opTask, OperationResult result) { assertDelta0Executed.run(); assertDelta1NotExecuted.run(); } @Override protected void afterRootCaseFinishes(CaseType rootCase, List subcases, - Task opTask, OperationResult result) throws Exception { + Task opTask, OperationResult result) { assertDelta0Executed.run(); if (approve) { assertDelta1Executed.run(); @@ -288,12 +283,11 @@ public List getApprovalSequence() { }, 1); } - public void deleteObject(Class clazz, String objectOid, - boolean immediate, boolean approve, - String assigneeOid, + public void deleteObject( + Class clazz, String objectOid, boolean immediate, boolean approve, List expectedTasks, List expectedWorkItems) throws Exception { - executeTest(null, new TestDetails() { + executeTest(new TestDetails() { @Override protected LensContext createModelContext(OperationResult result) throws Exception { LensContext lensContext = createLensContext(clazz); @@ -312,19 +306,19 @@ protected void afterFirstClockworkRun(CaseType rootCase, // ModelContext taskModelContext = temporaryHelper.getModelContext(rootCase, opTask, result); // ObjectDelta realDelta0 = taskModelContext.getFocusContext().getPrimaryDelta(); // assertTrue("Delta0 is not empty: " + realDelta0.debugDump(), realDelta0.isEmpty()); - assertWfContextAfterClockworkRun(rootCase, subcases, workItems, result, + assertWfContextAfterClockworkRun(rootCase, subcases, workItems, objectOid, expectedTasks, expectedWorkItems); } } @Override - protected void afterCase0Finishes(CaseType rootCase, Task opTask, OperationResult result) throws Exception { + protected void afterCase0Finishes(CaseType rootCase, Task opTask, OperationResult result) { assertObjectExists(clazz, objectOid); } @Override protected void afterRootCaseFinishes(CaseType rootCase, List subcases, - Task opTask, OperationResult result) throws Exception { + Task opTask, OperationResult result) { if (approve) { assertObjectDoesntExist(clazz, objectOid); } else { @@ -338,7 +332,7 @@ protected boolean executeImmediately() { } @Override - protected Boolean decideOnApproval(CaseWorkItemType caseWorkItem) throws Exception { + protected Boolean decideOnApproval(CaseWorkItemType caseWorkItem) { return approve; } }, 1); diff --git a/model/workflow-impl/src/test/java/com/evolveum/midpoint/wf/impl/objects/TestObjectLifecycleAdvanced.java b/model/workflow-impl/src/test/java/com/evolveum/midpoint/wf/impl/objects/TestObjectLifecycleAdvanced.java index ddb7fd9135c..dd0d88832c9 100644 --- a/model/workflow-impl/src/test/java/com/evolveum/midpoint/wf/impl/objects/TestObjectLifecycleAdvanced.java +++ b/model/workflow-impl/src/test/java/com/evolveum/midpoint/wf/impl/objects/TestObjectLifecycleAdvanced.java @@ -6,6 +6,19 @@ */ package com.evolveum.midpoint.wf.impl.objects; +import static org.testng.AssertJUnit.assertEquals; + +import static com.evolveum.midpoint.prism.util.PrismTestUtil.getPrismContext; + +import java.io.File; +import java.util.Collections; +import java.util.List; + +import org.springframework.test.annotation.DirtiesContext; +import org.springframework.test.annotation.DirtiesContext.ClassMode; +import org.springframework.test.context.ContextConfiguration; +import org.testng.annotations.Test; + import com.evolveum.midpoint.model.api.context.EvaluatedPolicyRule; import com.evolveum.midpoint.model.impl.lens.LensContext; import com.evolveum.midpoint.model.impl.util.RecordingProgressListener; @@ -21,36 +34,19 @@ import com.evolveum.midpoint.test.asserter.prism.PrismObjectAsserter; import com.evolveum.midpoint.util.DebugUtil; import com.evolveum.midpoint.util.exception.PolicyViolationException; -import com.evolveum.midpoint.util.logging.Trace; -import com.evolveum.midpoint.util.logging.TraceManager; import com.evolveum.midpoint.wf.impl.AbstractWfTestPolicy; import com.evolveum.midpoint.wf.impl.ExpectedTask; import com.evolveum.midpoint.wf.impl.ExpectedWorkItem; import com.evolveum.midpoint.xml.ns._public.common.common_3.*; -import org.springframework.test.annotation.DirtiesContext; -import org.springframework.test.annotation.DirtiesContext.ClassMode; -import org.springframework.test.context.ContextConfiguration; -import org.testng.annotations.Test; - -import java.io.File; -import java.util.Collections; -import java.util.List; - -import static com.evolveum.midpoint.prism.util.PrismTestUtil.getPrismContext; -import static org.testng.AssertJUnit.assertEquals; /** * Testing approvals of various triggered object-level constraints. * In a way it's an extension of role lifecycle tests. - * - * @author mederly */ -@ContextConfiguration(locations = {"classpath:ctx-workflow-test-main.xml"}) +@ContextConfiguration(locations = { "classpath:ctx-workflow-test-main.xml" }) @DirtiesContext(classMode = ClassMode.AFTER_CLASS) public class TestObjectLifecycleAdvanced extends AbstractWfTestPolicy { - protected static final Trace LOGGER = TraceManager.getTrace(TestObjectLifecycleAdvanced.class); - private static final File TEST_OBJECT_RESOURCE_DIR = new File("src/test/resources/objects-advanced"); private static final File METAROLE_CONSTRAINTS_FILE = new File(TEST_OBJECT_RESOURCE_DIR, "metarole-constraints.xml"); @@ -90,75 +86,74 @@ public void test010CreateRoleEmployee() throws Exception { OperationResult result = getTestOperationResult(); PrismObject employee = prismContext.parseObject(ROLE_EMPLOYEE_FILE); - executeTest(null, new TestDetails() { - @Override - protected LensContext createModelContext(OperationResult result) throws Exception { - LensContext lensContext = createLensContext(RoleType.class); - addFocusDeltaToContext(lensContext, DeltaFactory.Object.createAddDelta(employee)); - return lensContext; - } - - @Override - protected void afterFirstClockworkRun(CaseType rootCase, - CaseType case0, List subcases, - List workItems, - Task opTask, OperationResult result) throws Exception { + executeTest(new TestDetails() { + @Override + protected LensContext createModelContext(OperationResult result) throws Exception { + LensContext lensContext = createLensContext(RoleType.class); + addFocusDeltaToContext(lensContext, DeltaFactory.Object.createAddDelta(employee)); + return lensContext; + } + + @Override + protected void afterFirstClockworkRun(CaseType rootCase, + CaseType case0, List subcases, + List workItems, + Task opTask, OperationResult result) throws Exception { // ModelContext taskModelContext = temporaryHelper.getModelContext(rootCase, opTask, result); // ObjectDelta realDelta0 = taskModelContext.getFocusContext().getPrimaryDelta(); // assertTrue("Non-empty primary focus delta: " + realDelta0.debugDump(), realDelta0.isEmpty()); - assertNoObject(employee); - ExpectedTask expectedTask = new ExpectedTask(null, "Adding role \"" + employee.asObjectable().getName().getOrig() + "\""); - ExpectedWorkItem expectedWorkItem = new ExpectedWorkItem(userEmployeeOwnerOid, null, expectedTask); - assertWfContextAfterClockworkRun(rootCase, subcases, workItems, result, - null, - Collections.singletonList(expectedTask), - Collections.singletonList(expectedWorkItem)); - - CaseType subcase = subcases.get(0); - ApprovalContextType wfc = subcase.getApprovalContext(); - assertEquals("Wrong # of attached policy rules entries", 1, wfc.getPolicyRules().getEntry().size()); - SchemaAttachedPolicyRuleType attachedRule = wfc.getPolicyRules().getEntry().get(0); - assertEquals(1, attachedRule.getStageMin().intValue()); - assertEquals(1, attachedRule.getStageMax().intValue()); - assertEquals("Wrong # of attached triggers", 1, attachedRule.getRule().getTrigger().size()); - EvaluatedPolicyRuleTriggerType trigger = attachedRule.getRule().getTrigger().get(0); - assertEquals("Wrong constraintKind in trigger", PolicyConstraintKindType.OBJECT_MODIFICATION, trigger.getConstraintKind()); - - CaseWorkItemType workItem = subcases.get(0).getWorkItem().get(0); - assertEquals("Wrong # of additional information", 0, workItem.getAdditionalInformation().size()); - } - - @Override - protected void afterCase0Finishes(CaseType rootCase, Task opTask, - OperationResult result) throws Exception { - assertNoObject(employee); - } - - @Override - protected void afterRootCaseFinishes(CaseType rootCase, List subcases, - Task opTask, OperationResult result) { - new PrismObjectAsserter<>(employee).assertSanity(); - } - - @Override - protected boolean executeImmediately() { - return false; - } - - @Override - protected Boolean decideOnApproval(CaseWorkItemType caseWorkItem) throws Exception { - login(getUser(userEmployeeOwnerOid)); - return true; - } - }, 1); + assertNoObject(employee); + ExpectedTask expectedTask = new ExpectedTask(null, "Adding role \"" + employee.asObjectable().getName().getOrig() + "\""); + ExpectedWorkItem expectedWorkItem = new ExpectedWorkItem(userEmployeeOwnerOid, null, expectedTask); + assertWfContextAfterClockworkRun(rootCase, subcases, workItems, + null, + Collections.singletonList(expectedTask), + Collections.singletonList(expectedWorkItem)); + CaseType subcase = subcases.get(0); + ApprovalContextType wfc = subcase.getApprovalContext(); + assertEquals("Wrong # of attached policy rules entries", 1, wfc.getPolicyRules().getEntry().size()); + SchemaAttachedPolicyRuleType attachedRule = wfc.getPolicyRules().getEntry().get(0); + assertEquals(1, attachedRule.getStageMin().intValue()); + assertEquals(1, attachedRule.getStageMax().intValue()); + assertEquals("Wrong # of attached triggers", 1, attachedRule.getRule().getTrigger().size()); + EvaluatedPolicyRuleTriggerType trigger = attachedRule.getRule().getTrigger().get(0); + assertEquals("Wrong constraintKind in trigger", PolicyConstraintKindType.OBJECT_MODIFICATION, trigger.getConstraintKind()); + + CaseWorkItemType workItem = subcases.get(0).getWorkItem().get(0); + assertEquals("Wrong # of additional information", 0, workItem.getAdditionalInformation().size()); + } + + @Override + protected void afterCase0Finishes(CaseType rootCase, Task opTask, + OperationResult result) throws Exception { + assertNoObject(employee); + } + + @Override + protected void afterRootCaseFinishes(CaseType rootCase, List subcases, + Task opTask, OperationResult result) { + new PrismObjectAsserter<>(employee).assertSanity(); + } + + @Override + protected boolean executeImmediately() { + return false; + } + + @Override + protected Boolean decideOnApproval(CaseWorkItemType caseWorkItem) throws Exception { + login(getUser(userEmployeeOwnerOid)); + return true; + } + }, 1); roleEmployeeOid = searchObjectByName(RoleType.class, "employee").getOid(); PrismReferenceValue employeeOwner = getPrismContext().itemFactory().createReferenceValue(roleEmployeeOid, RoleType.COMPLEX_TYPE).relation(SchemaConstants.ORG_OWNER); executeChanges(prismContext.deltaFor(UserType.class) - .item(UserType.F_ASSIGNMENT).add(ObjectTypeUtil.createAssignmentTo(employeeOwner, prismContext)) - .asObjectDelta(userEmployeeOwnerOid), + .item(UserType.F_ASSIGNMENT).add(ObjectTypeUtil.createAssignmentTo(employeeOwner, prismContext)) + .asObjectDelta(userEmployeeOwnerOid), null, task, result); display("Employee role", getRole(roleEmployeeOid)); display("Employee owner", getUser(userEmployeeOwnerOid)); @@ -171,7 +166,7 @@ public void test020ActivateIncompleteRole() throws Exception { Task task = getTestTask(); OperationResult result = getTestOperationResult(); - @SuppressWarnings({ "raw"}) + @SuppressWarnings({ "raw" }) ObjectDelta activateRoleDelta = prismContext.deltaFor(RoleType.class) .item(RoleType.F_LIFECYCLE_STATE).replace(SchemaConstants.LIFECYCLE_ACTIVE) .asObjectDelta(roleEmployeeOid); @@ -205,7 +200,7 @@ public void test030ActivateIncompleteRoleAgain() throws Exception { Task task = getTestTask(); OperationResult result = getTestOperationResult(); - @SuppressWarnings({ "raw"}) + @SuppressWarnings({ "raw" }) ObjectDelta activateRoleDelta = prismContext.deltaFor(RoleType.class) .item(RoleType.F_LIFECYCLE_STATE).replace(SchemaConstants.LIFECYCLE_ACTIVE) .item(RoleType.F_DESCRIPTION).replace("hi") @@ -242,21 +237,16 @@ public void test040AddApprover() throws Exception { assertSuccess(result); } - @Test public void test045ActivateCompleteRole() throws Exception { login(userAdministrator); - Task task = getTestTask(); - OperationResult result = getTestOperationResult(); - - @SuppressWarnings({ "raw"}) ObjectDelta activateRoleDelta = prismContext.deltaFor(RoleType.class) .item(RoleType.F_LIFECYCLE_STATE).replace(SchemaConstants.LIFECYCLE_ACTIVE) .item(RoleType.F_DESCRIPTION).replace("hi") .asObjectDelta(roleEmployeeOid); - executeTest(null, new TestDetails() { + executeTest(new TestDetails() { @Override protected LensContext createModelContext(OperationResult result) throws Exception { LensContext lensContext = createLensContext(RoleType.class); @@ -271,7 +261,7 @@ protected void afterFirstClockworkRun(CaseType rootCase, Task opTask, OperationResult result) throws Exception { ExpectedTask expectedTask = new ExpectedTask(null, "Matching state: after operation (\"active lifecycleState\")"); ExpectedWorkItem expectedWorkItem = new ExpectedWorkItem(userEmployeeOwnerOid, null, expectedTask); - assertWfContextAfterClockworkRun(rootCase, subcases, workItems, result, + assertWfContextAfterClockworkRun(rootCase, subcases, workItems, null, Collections.singletonList(expectedTask), Collections.singletonList(expectedWorkItem)); diff --git a/model/workflow-impl/src/test/java/com/evolveum/midpoint/wf/impl/objects/TestObjectLifecycleApprovalGlobal.java b/model/workflow-impl/src/test/java/com/evolveum/midpoint/wf/impl/objects/TestObjectLifecycleApprovalGlobal.java index fda48aa143a..47116a722f3 100644 --- a/model/workflow-impl/src/test/java/com/evolveum/midpoint/wf/impl/objects/TestObjectLifecycleApprovalGlobal.java +++ b/model/workflow-impl/src/test/java/com/evolveum/midpoint/wf/impl/objects/TestObjectLifecycleApprovalGlobal.java @@ -83,7 +83,7 @@ public void test500CreateRoleJudge() throws Exception { ObjectDelta addObjectDelta = DeltaFactory.Object.createAddDelta(judge.asPrismObject()); - executeTest(null, new TestDetails() { + executeTest(new TestDetails() { @Override protected LensContext createModelContext(OperationResult result) throws Exception { LensContext lensContext = createLensContext(RoleType.class); @@ -176,7 +176,7 @@ public void test510AddInducementsToJudge() throws Exception { .replace("hi") .asObjectDeltaCast(roleJudgeOid); - executeTest(null, new TestDetails() { + executeTest(new TestDetails() { @Override protected LensContext createModelContext(OperationResult result) throws Exception { LensContext lensContext = createLensContext(RoleType.class); @@ -268,7 +268,7 @@ public void test520DeleteRoleJudge() throws Exception { ObjectDelta deleteDelta = prismContext.deltaFactory().object().createDeleteDelta(RoleType.class, roleJudgeOid ); - executeTest(null, new TestDetails() { + executeTest(new TestDetails() { @Override protected LensContext createModelContext(OperationResult result) throws Exception { LensContext lensContext = createLensContext(RoleType.class); @@ -332,7 +332,7 @@ public void test600CreateRoleCaptain() throws Exception { .inducement(createAssignmentTo("oid2", ObjectTypes.ROLE, prismContext)); ObjectDelta addObjectDelta = DeltaFactory.Object.createAddDelta(captain.asPrismObject()); - executeTest(null, new TestDetails() { + executeTest(new TestDetails() { @Override protected LensContext createModelContext(OperationResult result) throws Exception { LensContext lensContext = createLensContext(RoleType.class); @@ -432,7 +432,7 @@ public void test610DeleteInducementsFromCaptain() throws Exception { .delete(cloneCollectionMembers(captainBefore.findContainer(RoleType.F_INDUCEMENT).getValues())) .asObjectDeltaCast(roleCaptainOid); - executeTest(null, new TestDetails() { + executeTest(new TestDetails() { @Override protected LensContext createModelContext(OperationResult result) throws Exception { LensContext lensContext = createLensContext(RoleType.class); @@ -519,7 +519,7 @@ public void test700CreateRoleThief() throws Exception { ObjectDelta addObjectDelta = DeltaFactory.Object.createAddDelta(thief.asPrismObject()); - executeTest(null, new TestDetails() { + executeTest(new TestDetails() { @Override protected LensContext createModelContext(OperationResult result) throws Exception { LensContext lensContext = createLensContext(RoleType.class); @@ -618,7 +618,7 @@ public void test710DeleteInducementsFromThief() throws Exception { .delete(cloneCollectionMembers(thiefBefore.findContainer(RoleType.F_INDUCEMENT).getValues())) .asObjectDeltaCast(roleThiefOid); - executeTest(null, new TestDetails() { + executeTest(new TestDetails() { @Override protected LensContext createModelContext(OperationResult result) throws Exception { LensContext lensContext = createLensContext(RoleType.class); diff --git a/model/workflow-impl/src/test/java/com/evolveum/midpoint/wf/impl/other/TestSoD.java b/model/workflow-impl/src/test/java/com/evolveum/midpoint/wf/impl/other/TestSoD.java index 6c70e63a6c2..61d6ec7d0ba 100644 --- a/model/workflow-impl/src/test/java/com/evolveum/midpoint/wf/impl/other/TestSoD.java +++ b/model/workflow-impl/src/test/java/com/evolveum/midpoint/wf/impl/other/TestSoD.java @@ -6,44 +6,39 @@ */ package com.evolveum.midpoint.wf.impl.other; +import static com.evolveum.midpoint.schema.util.ObjectTypeUtil.createAssignmentTo; + +import java.io.File; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.springframework.test.annotation.DirtiesContext; +import org.springframework.test.annotation.DirtiesContext.ClassMode; +import org.springframework.test.context.ContextConfiguration; +import org.testng.annotations.Test; + import com.evolveum.midpoint.prism.PrismObject; import com.evolveum.midpoint.prism.delta.ObjectDelta; import com.evolveum.midpoint.prism.delta.ObjectDeltaCollectionsUtil; import com.evolveum.midpoint.schema.constants.ObjectTypes; import com.evolveum.midpoint.schema.result.OperationResult; import com.evolveum.midpoint.task.api.Task; -import com.evolveum.midpoint.util.logging.Trace; -import com.evolveum.midpoint.util.logging.TraceManager; import com.evolveum.midpoint.wf.impl.AbstractWfTestPolicy; import com.evolveum.midpoint.wf.impl.ExpectedTask; import com.evolveum.midpoint.wf.impl.ExpectedWorkItem; import com.evolveum.midpoint.xml.ns._public.common.common_3.CaseWorkItemType; import com.evolveum.midpoint.xml.ns._public.common.common_3.UserType; -import org.springframework.test.annotation.DirtiesContext; -import org.springframework.test.annotation.DirtiesContext.ClassMode; -import org.springframework.test.context.ContextConfiguration; -import org.testng.annotations.Test; - -import java.io.File; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; - -import static com.evolveum.midpoint.schema.util.ObjectTypeUtil.createAssignmentTo; /** * Testing approvals of role SoD: assigning roles that are in conflict. - * + *

* Subclasses provide specializations regarding ways how rules and/or approvers are attached to roles. - * - * @author mederly */ -@ContextConfiguration(locations = {"classpath:ctx-workflow-test-main.xml"}) +@ContextConfiguration(locations = { "classpath:ctx-workflow-test-main.xml" }) @DirtiesContext(classMode = ClassMode.AFTER_CLASS) public class TestSoD extends AbstractWfTestPolicy { - protected static final Trace LOGGER = TraceManager.getTrace(TestSoD.class); - protected static final File TEST_SOD_RESOURCE_DIR = new File("src/test/resources/sod"); protected static final File METAROLE_CRIMINAL_EXCLUSION_FILE = new File(TEST_SOD_RESOURCE_DIR, "metarole-criminal-exclusion.xml"); @@ -98,7 +93,6 @@ public void test010AssignRoleJudge() throws Exception { public void test020AssignRolePirate() throws Exception { login(userAdministrator); - Task task = getTestTask(); OperationResult result = getTestOperationResult(); PrismObject jack = getUser(userJackOid); @@ -115,7 +109,7 @@ public void test020AssignRolePirate() throws Exception { ObjectDelta primaryDelta = ObjectDeltaCollectionsUtil.summarize(addPirateDelta, changeDescriptionDelta); // WHEN+THEN - executeTest2(null, new TestDetails2() { + executeTest2(new TestDetails2() { @Override protected PrismObject getFocus(OperationResult result) { return jack.clone(); @@ -227,7 +221,7 @@ public void test030AssignRoleRespectable() throws Exception { .asObjectDelta(userJackOid); // WHEN+THEN - executeTest2(null, new TestDetails2() { + executeTest2(new TestDetails2() { @Override protected PrismObject getFocus(OperationResult result) { return jack.clone(); diff --git a/provisioning/provisioning-api/pom.xml b/provisioning/provisioning-api/pom.xml index 7e17948cb36..20e4380c949 100644 --- a/provisioning/provisioning-api/pom.xml +++ b/provisioning/provisioning-api/pom.xml @@ -62,7 +62,6 @@ com.evolveum.midpoint.tools test-ng - 4.1-SNAPSHOT test diff --git a/provisioning/provisioning-impl/pom.xml b/provisioning/provisioning-impl/pom.xml index dc51d917e10..653e6cd2e7c 100644 --- a/provisioning/provisioning-impl/pom.xml +++ b/provisioning/provisioning-impl/pom.xml @@ -184,7 +184,6 @@ com.evolveum.midpoint.tools test-ng - 4.1-SNAPSHOT test diff --git a/provisioning/ucf-impl-connid/pom.xml b/provisioning/ucf-impl-connid/pom.xml index 28aa5026ba4..b0acbf6f009 100644 --- a/provisioning/ucf-impl-connid/pom.xml +++ b/provisioning/ucf-impl-connid/pom.xml @@ -156,7 +156,6 @@ com.evolveum.midpoint.tools test-ng - 4.1-SNAPSHOT test diff --git a/repo/audit-api/pom.xml b/repo/audit-api/pom.xml index 6807368cb0c..35be53d6a33 100644 --- a/repo/audit-api/pom.xml +++ b/repo/audit-api/pom.xml @@ -48,7 +48,6 @@ com.evolveum.midpoint.tools test-ng - 4.1-SNAPSHOT test diff --git a/repo/repo-cache/pom.xml b/repo/repo-cache/pom.xml index 8e880c5616f..520aaeab2b3 100644 --- a/repo/repo-cache/pom.xml +++ b/repo/repo-cache/pom.xml @@ -96,7 +96,6 @@ com.evolveum.midpoint.tools test-ng - 4.1-SNAPSHOT test diff --git a/repo/repo-common/pom.xml b/repo/repo-common/pom.xml index 77532bb9728..cc26f588b27 100644 --- a/repo/repo-common/pom.xml +++ b/repo/repo-common/pom.xml @@ -181,7 +181,6 @@ com.evolveum.midpoint.tools test-ng - 4.1-SNAPSHOT test diff --git a/repo/repo-sql-impl-test/pom.xml b/repo/repo-sql-impl-test/pom.xml index dc7531feed9..79965ac6f27 100644 --- a/repo/repo-sql-impl-test/pom.xml +++ b/repo/repo-sql-impl-test/pom.xml @@ -77,6 +77,11 @@ org.testng testng + + com.evolveum.midpoint.tools + test-ng + test + org.springframework spring-context diff --git a/repo/repo-sql-impl-test/src/test/java/com/evolveum/midpoint/repo/sql/SchemaTest.java b/repo/repo-sql-impl-test/src/test/java/com/evolveum/midpoint/repo/sql/SchemaTest.java index 3d01090ac94..fcc8f57fb57 100644 --- a/repo/repo-sql-impl-test/src/test/java/com/evolveum/midpoint/repo/sql/SchemaTest.java +++ b/repo/repo-sql-impl-test/src/test/java/com/evolveum/midpoint/repo/sql/SchemaTest.java @@ -8,6 +8,7 @@ package com.evolveum.midpoint.repo.sql; import com.evolveum.midpoint.repo.sql.util.*; +import com.evolveum.midpoint.tools.testng.AbstractUnitTest; import com.evolveum.midpoint.util.ClassPathUtil; import org.hibernate.boot.MetadataSources; import org.hibernate.boot.registry.StandardServiceRegistryBuilder; @@ -23,7 +24,7 @@ /** * Created by Viliam Repan (lazyman). */ -public class SchemaTest { +public class SchemaTest extends AbstractUnitTest { @Test public void generateSchemas() { diff --git a/repo/security-impl/pom.xml b/repo/security-impl/pom.xml index 76f0cffe90d..9b0e57fbfb6 100644 --- a/repo/security-impl/pom.xml +++ b/repo/security-impl/pom.xml @@ -92,7 +92,6 @@ com.evolveum.midpoint.tools test-ng - 4.1-SNAPSHOT test diff --git a/repo/system-init/pom.xml b/repo/system-init/pom.xml index 5390bb8c3ef..9d6d289501a 100644 --- a/repo/system-init/pom.xml +++ b/repo/system-init/pom.xml @@ -125,7 +125,6 @@ com.evolveum.midpoint.tools test-ng - 4.1-SNAPSHOT test diff --git a/testing/conntest/pom.xml b/testing/conntest/pom.xml index 4fb985978d4..267e70018e6 100644 --- a/testing/conntest/pom.xml +++ b/testing/conntest/pom.xml @@ -147,7 +147,6 @@ com.evolveum.midpoint.tools test-ng - 4.1-SNAPSHOT test diff --git a/testing/rest/pom.xml b/testing/rest/pom.xml index 1e9fafbb2ad..b70f4f3b637 100644 --- a/testing/rest/pom.xml +++ b/testing/rest/pom.xml @@ -165,7 +165,6 @@ com.evolveum.midpoint.tools test-ng - 4.1-SNAPSHOT test diff --git a/testing/rest/src/test/java/com/evolveum/midpoint/testing/rest/TestAbstractRestService.java b/testing/rest/src/test/java/com/evolveum/midpoint/testing/rest/TestAbstractRestService.java index 7bfdded0f3a..176a02ba03b 100644 --- a/testing/rest/src/test/java/com/evolveum/midpoint/testing/rest/TestAbstractRestService.java +++ b/testing/rest/src/test/java/com/evolveum/midpoint/testing/rest/TestAbstractRestService.java @@ -39,8 +39,6 @@ import com.evolveum.midpoint.util.QNameUtil; import com.evolveum.midpoint.util.exception.ObjectNotFoundException; import com.evolveum.midpoint.util.exception.SchemaException; -import com.evolveum.midpoint.util.logging.Trace; -import com.evolveum.midpoint.util.logging.TraceManager; import com.evolveum.midpoint.xml.ns._public.common.api_types_3.ExecuteScriptResponseType; import com.evolveum.midpoint.xml.ns._public.common.common_3.*; import com.evolveum.midpoint.xml.ns._public.model.scripting_3.PipelineItemType; @@ -66,7 +64,6 @@ public abstract class TestAbstractRestService extends RestServiceInitializer { public static final String ROLE_ADDER_FILE = "role-adder"; public static final String ROLE_MODIFIER_FILE = "role-modifier"; - public static final String ROLE_MODIFIER_OID = "82005ae4-d90b-11e4-bdcc-001e8c717e5b"; public static final String POLICY_ITEM_DEFINITION_GENERATE = "policy-generate"; public static final String POLICY_ITEM_DEFINITION_GENERATE_BAD_PATH = "policy-generate-bad-path"; @@ -89,9 +86,6 @@ public abstract class TestAbstractRestService extends RestServiceInitializer { public static final String SCRIPT_GENERATE_PASSWORDS = "script-generate-passwords"; public static final String SCRIPT_MODIFY_VALID_TO = "script-modify-validTo"; - public static final File RESOURCE_OPENDJ_FILE = new File(BASE_REPO_DIR, "reosurce-opendj.xml"); - public static final String RESOURCE_OPENDJ_OID = "ef2bc95b-76e0-59e2-86d6-3d4f02d3ffff"; - public static final String USER_TEMPLATE_FILE = "user-template"; public static final String USER_TEMPLATE_OID = "c0c010c0-d34d-b33f-f00d-777111111111"; @@ -107,8 +101,6 @@ public abstract class TestAbstractRestService extends RestServiceInitializer { public static final String ACCOUT_CHUCK_FILE = "account-chuck"; public static final String ACCOUT_CHUCK_OID = BASE_REPO_DIR + "a0c010c0-d34d-b33f-f00d-111111111666"; - private static final Trace LOGGER = TraceManager.getTrace(TestAbstractRestService.class); - private static final String MODIFICATION_DISABLE = "modification-disable"; private static final String MODIFICATION_ENABLE = "modification-enable"; private static final String MODIFICATION_ASSIGN_ROLE_MODIFIER = "modification-assign-role-modifier"; @@ -143,7 +135,7 @@ public void test001GetUserAdministrator() { assertStatus(response, 200); UserType userType = response.readEntity(UserType.class); assertNotNull("Returned entity in body must not be null.", userType); - LOGGER.info("Returned entity: {}", userType.asPrismObject().debugDump()); + logger.info("Returned entity: {}", userType.asPrismObject().debugDump()); display("Audit", getDummyAuditService()); getDummyAuditService().assertRecords(2); @@ -164,7 +156,7 @@ public void test002GetNonExistingUser() { assertStatus(response, 404); OperationResultType result = response.readEntity(OperationResultType.class); assertNotNull("Error response must contain operation result", result); - LOGGER.info("Returned result: {}", result); + logger.info("Returned result: {}", result); assertEquals("Unexpected operation result status", OperationResultStatusType.FATAL_ERROR, result.getStatus()); display("Audit", getDummyAuditService()); @@ -332,7 +324,7 @@ public void test019GetUserAdministratorBySomebody() { UserType userType = response.readEntity(UserType.class); assertNotNull("Returned entity in body must not be null.", userType); - LOGGER.info("Returned entity: {}", userType.asPrismObject().debugDump()); + logger.info("Returned entity: {}", userType.asPrismObject().debugDump()); display("Audit", getDummyAuditService()); getDummyAuditService().assertRecords(2); @@ -376,7 +368,7 @@ public void test103AddUserBadTargetCollection() { assertStatus(response, 400); OperationResultType result = response.readEntity(OperationResultType.class); assertNotNull("Error response must contain operation result", result); - LOGGER.info("Returned result: {}", result); + logger.info("Returned result: {}", result); assertEquals("Unexpected operation result status", OperationResultStatusType.FATAL_ERROR, result.getStatus()); display("Audit", getDummyAuditService()); @@ -497,7 +489,7 @@ public void test123DarthAdderAssignModifierHimself() throws Exception { assertStatus(response, 403); OperationResultType result = response.readEntity(OperationResultType.class); assertNotNull("Error response must contain operation result", result); - LOGGER.info("Returned result: {}", result); + logger.info("Returned result: {}", result); assertEquals("Unexpected operation result status", OperationResultStatusType.FATAL_ERROR, result.getStatus()); display("Audit", getDummyAuditService()); @@ -611,7 +603,7 @@ public void test133GetUserAdministratorByDarthAdder() { assertStatus(response, 200); UserType userType = response.readEntity(UserType.class); assertNotNull("Returned entity in body must not be null.", userType); - LOGGER.info("Returned entity: {}", userType.asPrismObject().debugDump()); + logger.info("Returned entity: {}", userType.asPrismObject().debugDump()); display("Audit", getDummyAuditService()); getDummyAuditService().assertRecords(2); @@ -925,16 +917,16 @@ private OperationResult traceResponse(Response response) { private OperationResult traceResponse(Response response, boolean assertMessages) { if (response.getStatus() != 200 && response.getStatus() != 201 && response.getStatus() != 204) { - LOGGER.info("coverting result"); + logger.info("coverting result"); OperationResultType result = response.readEntity(OperationResultType.class); if (assertMessages) { LocalizableMessageType localizableMessage = result.getUserFriendlyMessage(); assertLocalizableMessage(localizableMessage); } - LOGGER.info("tracing result"); + logger.info("tracing result"); OperationResult opResult = OperationResult.createOperationResult(result); - LOGGER.info("REST resutl {}", opResult.debugDump()); + logger.info("REST resutl {}", opResult.debugDump()); display("REST result", opResult); return opResult; } @@ -954,7 +946,7 @@ private void assertLocalizableMessage(LocalizableMessageType localizableMessage) assertNotNull("Expected key in single localizable message, but no one present", singelLocalizableMessage.getKey()); } - LOGGER.info("localizable message: " + localizableMessage); + logger.info("localizable message: " + localizableMessage); } @Test @@ -1177,7 +1169,7 @@ public void test520GeneratePasswordsUsingScripting() throws Exception { ExecuteScriptResponseType responseData = response.readEntity(ExecuteScriptResponseType.class); display("Response", getPrismContext().xmlSerializer().serializeRealValue(responseData)); - LOGGER.info("Response: {}", getPrismContext().xmlSerializer().serializeRealValue(responseData)); + logger.info("Response: {}", getPrismContext().xmlSerializer().serializeRealValue(responseData)); List items = responseData.getOutput().getDataOutput().getItem(); assertEquals("Wrong # of processed items", 2, items.size()); @@ -1194,7 +1186,7 @@ public void test520GeneratePasswordsUsingScripting() throws Exception { ItemProcessingResult second = extractedResults.get(1); assertEquals("Wrong OID in second result", USER_JACK_OID, second.oid); assertEquals("Wrong name in second result", "jack", second.name); - LOGGER.info("pwd in second result {}", second.data.password); + logger.info("pwd in second result {}", second.data.password); assertNotNull("Missing password in second result", second.data.password); assertEquals("Wrong status in second result", OperationResultStatusType.SUCCESS, second.status); @@ -1770,8 +1762,8 @@ private WebClient prepareClient() { } private void displayResponse(Response response) { - LOGGER.info("response : {} ", response.getStatus()); - LOGGER.info("response : {} ", response.getStatusInfo().getReasonPhrase()); + logger.info("response : {} ", response.getStatus()); + logger.info("response : {} ", response.getStatusInfo().getReasonPhrase()); } protected PrismObject getObjectRepo(Class type, String oid) throws ObjectNotFoundException, SchemaException { diff --git a/testing/rest/src/test/java/com/evolveum/midpoint/testing/rest/TestRestServiceProxyAuthentication.java b/testing/rest/src/test/java/com/evolveum/midpoint/testing/rest/TestRestServiceProxyAuthentication.java index 565ce45d9e7..f2397916492 100644 --- a/testing/rest/src/test/java/com/evolveum/midpoint/testing/rest/TestRestServiceProxyAuthentication.java +++ b/testing/rest/src/test/java/com/evolveum/midpoint/testing/rest/TestRestServiceProxyAuthentication.java @@ -6,34 +6,31 @@ */ package com.evolveum.midpoint.testing.rest; +import static org.testng.AssertJUnit.assertNotNull; + +import java.io.File; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; + +import org.apache.commons.lang.StringUtils; +import org.apache.cxf.jaxrs.client.WebClient; +import org.testng.AssertJUnit; +import org.testng.annotations.Test; + import com.evolveum.midpoint.common.rest.MidpointAbstractProvider; import com.evolveum.midpoint.prism.util.PrismTestUtil; import com.evolveum.midpoint.schema.constants.SchemaConstants; import com.evolveum.midpoint.schema.internals.InternalMonitor; import com.evolveum.midpoint.schema.result.OperationResult; import com.evolveum.midpoint.task.api.Task; -import com.evolveum.midpoint.util.logging.Trace; -import com.evolveum.midpoint.util.logging.TraceManager; import com.evolveum.midpoint.xml.ns._public.common.common_3.SystemObjectsType; import com.evolveum.midpoint.xml.ns._public.common.common_3.UserType; -import org.apache.commons.lang.StringUtils; -import org.apache.cxf.jaxrs.client.WebClient; -import org.testng.AssertJUnit; -import org.testng.annotations.Test; - -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import java.io.File; - -import static org.testng.AssertJUnit.assertNotNull; /** * @author skublik */ public class TestRestServiceProxyAuthentication extends RestServiceInitializer { - private static final transient Trace LOGGER = TraceManager.getTrace(TestRestServiceProxyAuthentication.class); - // REST and end user authorization public static final File USER_EGOIST_FILE = new File(BASE_REPO_DIR, "user-egoist.xml"); public static final String USER_EGOIST_OID = "b6f3e3c8-d48b-11e4-8d88-001e8c717e5b"; @@ -80,7 +77,7 @@ public void test001getUserSelfBySomebody() { assertStatus(response, 200); UserType userType = response.readEntity(UserType.class); AssertJUnit.assertNotNull("Returned entity in body must not be null.", userType); - LOGGER.info("Returned entity: {}", userType.asPrismObject().debugDump()); + logger.info("Returned entity: {}", userType.asPrismObject().debugDump()); PrismTestUtil.display("Audit", getDummyAuditService()); getDummyAuditService().assertRecords(2); @@ -101,7 +98,7 @@ public void test002getUserSelfByEgoist() { assertStatus(response, 200); UserType userType = response.readEntity(UserType.class); assertNotNull("Returned entity in body must not be null.", userType); - LOGGER.info("Returned entity: {}", userType.asPrismObject().debugDump()); + logger.info("Returned entity: {}", userType.asPrismObject().debugDump()); PrismTestUtil.display("Audit", getDummyAuditService()); getDummyAuditService().assertRecords(2); @@ -147,7 +144,7 @@ public void test004getUserSelfByHead() { assertStatus(response, 200); UserType userType = response.readEntity(UserType.class); assertNotNull("Returned entity in body must not be null.", userType); - LOGGER.info("Returned entity: {}", userType.asPrismObject().debugDump()); + logger.info("Returned entity: {}", userType.asPrismObject().debugDump()); PrismTestUtil.display("Audit", getDummyAuditService()); getDummyAuditService().assertRecords(2); @@ -193,7 +190,7 @@ protected MidpointAbstractProvider getProvider() { private WebClient prepareClient(String proxyUserOid) { WebClient client = prepareClient(USER_PROXY_USERNAME, USER_PROXY_PASSWORD); - if (StringUtils.isNotBlank(proxyUserOid)){ + if (StringUtils.isNotBlank(proxyUserOid)) { client.header("Switch-To-Principal", proxyUserOid); } return client; diff --git a/testing/sanity/pom.xml b/testing/sanity/pom.xml index 00893a03ad8..8b5bf858a01 100644 --- a/testing/sanity/pom.xml +++ b/testing/sanity/pom.xml @@ -177,7 +177,6 @@ com.evolveum.midpoint.tools test-ng - ${project.version} test diff --git a/testing/schrodingertest/pom.xml b/testing/schrodingertest/pom.xml index 1833e7ed842..e3db064bd93 100644 --- a/testing/schrodingertest/pom.xml +++ b/testing/schrodingertest/pom.xml @@ -89,7 +89,6 @@ com.evolveum.midpoint.tools test-ng - ${project.version} test diff --git a/testing/story/pom.xml b/testing/story/pom.xml index 01cfc22c7fc..09c7de5a75c 100644 --- a/testing/story/pom.xml +++ b/testing/story/pom.xml @@ -195,7 +195,6 @@ com.evolveum.midpoint.tools test-ng - 4.1-SNAPSHOT test diff --git a/tools/xjc-plugin/pom.xml b/tools/xjc-plugin/pom.xml index f1a126aabf5..1079e606e8e 100644 --- a/tools/xjc-plugin/pom.xml +++ b/tools/xjc-plugin/pom.xml @@ -62,7 +62,6 @@ com.evolveum.midpoint.tools test-ng - 4.1-SNAPSHOT test