Search in sources :

Example 1 with ACCOUNT_OBJECT_CLASS_NAME

use of com.evolveum.midpoint.schema.util.SchemaTestConstants.ACCOUNT_OBJECT_CLASS_NAME in project midpoint by Evolveum.

the class TestUcfDummyMulti method test210TwoBlockingSearches.

@Test
public void test210TwoBlockingSearches() throws Exception {
    // GIVEN
    UcfExecutionContext ctx = createExecutionContext();
    final ResourceObjectClassDefinition accountDefinition = resourceSchema.findObjectClassDefinitionRequired(ACCOUNT_OBJECT_CLASS_NAME);
    // Determine object class from the schema
    OperationResult result1 = createOperationResult();
    final List<PrismObject<ShadowType>> searchResults1 = new ArrayList<>();
    final ObjectHandler handler1 = (ucfObject, result) -> {
        checkUcfShadow(ucfObject.getResourceObject(), accountDefinition);
        searchResults1.add(ucfObject.getResourceObject());
        return true;
    };
    OperationResult result2 = createOperationResult();
    final List<PrismObject<ShadowType>> searchResults2 = new ArrayList<>();
    final ObjectHandler handler2 = (ucfObject, result) -> {
        checkUcfShadow(ucfObject.getResourceObject(), accountDefinition);
        searchResults2.add(ucfObject.getResourceObject());
        return true;
    };
    dummyResource.setBlockOperations(true);
    // WHEN
    Thread t1 = new Thread(() -> {
        try {
            cc.search(accountDefinition, null, handler1, null, null, null, null, ctx, result1);
        } catch (CommunicationException | GenericFrameworkException | SchemaException | SecurityViolationException | ObjectNotFoundException e) {
            logger.error("Error in the search: {}", e.getMessage(), e);
        }
    });
    t1.setName("search1");
    t1.start();
    // Give the new thread a chance to get blocked
    Thread.sleep(500);
    ConnectorOperationalStatus opStat = cc.getOperationalStatus();
    displayDumpable("stats (blocked 1)", opStat);
    assertEquals("Wrong pool active", (Integer) 1, opStat.getPoolStatusNumActive());
    assertEquals("Wrong pool active", (Integer) 0, opStat.getPoolStatusNumIdle());
    assertEquals("Unexpected number of search results", 0, searchResults1.size());
    Thread t2 = new Thread(() -> {
        try {
            cc.search(accountDefinition, null, handler2, null, null, null, null, ctx, result2);
        } catch (CommunicationException | GenericFrameworkException | SchemaException | SecurityViolationException | ObjectNotFoundException e) {
            logger.error("Error in the search: {}", e.getMessage(), e);
        }
    });
    t2.setName("search2");
    t2.start();
    // Give the new thread a chance to get blocked
    Thread.sleep(500);
    opStat = cc.getOperationalStatus();
    displayDumpable("stats (blocked 2)", opStat);
    assertEquals("Wrong pool active", (Integer) 2, opStat.getPoolStatusNumActive());
    assertEquals("Wrong pool active", (Integer) 0, opStat.getPoolStatusNumIdle());
    assertEquals("Unexpected number of search results", 0, searchResults1.size());
    dummyResource.unblockAll();
    t1.join();
    t2.join();
    dummyResource.setBlockOperations(false);
    // THEN
    assertEquals("Unexpected number of search results 1", 1, searchResults1.size());
    assertEquals("Unexpected number of search results 2", 1, searchResults2.size());
    opStat = cc.getOperationalStatus();
    displayDumpable("stats (final)", opStat);
    assertEquals("Wrong pool active", (Integer) 0, opStat.getPoolStatusNumActive());
    assertEquals("Wrong pool active", (Integer) 2, opStat.getPoolStatusNumIdle());
    PrismObject<ShadowType> searchResult1 = searchResults1.get(0);
    displayDumpable("Search result 1", searchResult1);
    PrismObject<ShadowType> searchResult2 = searchResults2.get(0);
    displayDumpable("Search result 2", searchResult2);
}
Also used : ResourceObjectClassDefinition(com.evolveum.midpoint.schema.processor.ResourceObjectClassDefinition) AssertJUnit(org.testng.AssertJUnit) com.evolveum.midpoint.xml.ns._public.common.common_3(com.evolveum.midpoint.xml.ns._public.common.common_3) SchemaConstants(com.evolveum.midpoint.schema.constants.SchemaConstants) ResourceAttributeContainer(com.evolveum.midpoint.schema.processor.ResourceAttributeContainer) OperationResult(com.evolveum.midpoint.schema.result.OperationResult) SchemaException(com.evolveum.midpoint.util.exception.SchemaException) Test(org.testng.annotations.Test) SchemaRegistry(com.evolveum.midpoint.prism.schema.SchemaRegistry) ObjectHandler(com.evolveum.midpoint.provisioning.ucf.api.ObjectHandler) ACCOUNT_OBJECT_CLASS_NAME(com.evolveum.midpoint.schema.util.SchemaTestConstants.ACCOUNT_OBJECT_CLASS_NAME) ArrayList(java.util.ArrayList) ResourceAttribute(com.evolveum.midpoint.schema.processor.ResourceAttribute) SecurityViolationException(com.evolveum.midpoint.util.exception.SecurityViolationException) PrismTestUtil(com.evolveum.midpoint.prism.util.PrismTestUtil) ResourceObjectClassDefinition(com.evolveum.midpoint.schema.processor.ResourceObjectClassDefinition) Files(com.google.common.io.Files) ConnectorOperationalStatus(com.evolveum.midpoint.schema.statistics.ConnectorOperationalStatus) TestUtil(com.evolveum.midpoint.test.util.TestUtil) PrismContainerDefinition(com.evolveum.midpoint.prism.PrismContainerDefinition) DummyAccount(com.evolveum.icf.dummy.resource.DummyAccount) ObjectNotFoundException(com.evolveum.midpoint.util.exception.ObjectNotFoundException) Collection(java.util.Collection) Set(java.util.Set) IOException(java.io.IOException) ResourceTypeUtil(com.evolveum.midpoint.schema.util.ResourceTypeUtil) PrismObject(com.evolveum.midpoint.prism.PrismObject) File(java.io.File) GenericFrameworkException(com.evolveum.midpoint.provisioning.ucf.api.GenericFrameworkException) TimeUnit(java.util.concurrent.TimeUnit) CountDownLatch(java.util.concurrent.CountDownLatch) List(java.util.List) PrismContainerValue(com.evolveum.midpoint.prism.PrismContainerValue) ShadowUtil(com.evolveum.midpoint.schema.util.ShadowUtil) ContextConfiguration(org.springframework.test.context.ContextConfiguration) CommunicationException(com.evolveum.midpoint.util.exception.CommunicationException) UcfExecutionContext(com.evolveum.midpoint.provisioning.ucf.api.UcfExecutionContext) PrismSchema(com.evolveum.midpoint.prism.schema.PrismSchema) SchemaException(com.evolveum.midpoint.util.exception.SchemaException) CommunicationException(com.evolveum.midpoint.util.exception.CommunicationException) GenericFrameworkException(com.evolveum.midpoint.provisioning.ucf.api.GenericFrameworkException) SecurityViolationException(com.evolveum.midpoint.util.exception.SecurityViolationException) ArrayList(java.util.ArrayList) OperationResult(com.evolveum.midpoint.schema.result.OperationResult) PrismObject(com.evolveum.midpoint.prism.PrismObject) ObjectHandler(com.evolveum.midpoint.provisioning.ucf.api.ObjectHandler) ObjectNotFoundException(com.evolveum.midpoint.util.exception.ObjectNotFoundException) ConnectorOperationalStatus(com.evolveum.midpoint.schema.statistics.ConnectorOperationalStatus) UcfExecutionContext(com.evolveum.midpoint.provisioning.ucf.api.UcfExecutionContext) Test(org.testng.annotations.Test)

Example 2 with ACCOUNT_OBJECT_CLASS_NAME

use of com.evolveum.midpoint.schema.util.SchemaTestConstants.ACCOUNT_OBJECT_CLASS_NAME in project midpoint by Evolveum.

the class TestUcfDummyMulti method test110SearchNonBlocking.

@Test
public void test110SearchNonBlocking() throws Exception {
    // GIVEN
    UcfExecutionContext ctx = createExecutionContext();
    final ResourceObjectClassDefinition accountDefinition = resourceSchema.findObjectClassDefinitionRequired(ACCOUNT_OBJECT_CLASS_NAME);
    // Determine object class from the schema
    final List<PrismObject<ShadowType>> searchResults = new ArrayList<>();
    ObjectHandler handler = (ucfObject, result) -> {
        displayDumpable("Search: found", ucfObject);
        checkUcfShadow(ucfObject.getResourceObject(), accountDefinition);
        searchResults.add(ucfObject.getResourceObject());
        return true;
    };
    OperationResult result = createOperationResult();
    // WHEN
    cc.search(accountDefinition, null, handler, null, null, null, null, ctx, result);
    // THEN
    assertEquals("Unexpected number of search results", 1, searchResults.size());
    ConnectorOperationalStatus opStat = cc.getOperationalStatus();
    displayDumpable("stats", opStat);
    assertEquals("Wrong pool active", (Integer) 0, opStat.getPoolStatusNumActive());
    assertEquals("Wrong pool active", (Integer) 1, opStat.getPoolStatusNumIdle());
}
Also used : ResourceObjectClassDefinition(com.evolveum.midpoint.schema.processor.ResourceObjectClassDefinition) AssertJUnit(org.testng.AssertJUnit) com.evolveum.midpoint.xml.ns._public.common.common_3(com.evolveum.midpoint.xml.ns._public.common.common_3) SchemaConstants(com.evolveum.midpoint.schema.constants.SchemaConstants) ResourceAttributeContainer(com.evolveum.midpoint.schema.processor.ResourceAttributeContainer) OperationResult(com.evolveum.midpoint.schema.result.OperationResult) SchemaException(com.evolveum.midpoint.util.exception.SchemaException) Test(org.testng.annotations.Test) SchemaRegistry(com.evolveum.midpoint.prism.schema.SchemaRegistry) ObjectHandler(com.evolveum.midpoint.provisioning.ucf.api.ObjectHandler) ACCOUNT_OBJECT_CLASS_NAME(com.evolveum.midpoint.schema.util.SchemaTestConstants.ACCOUNT_OBJECT_CLASS_NAME) ArrayList(java.util.ArrayList) ResourceAttribute(com.evolveum.midpoint.schema.processor.ResourceAttribute) SecurityViolationException(com.evolveum.midpoint.util.exception.SecurityViolationException) PrismTestUtil(com.evolveum.midpoint.prism.util.PrismTestUtil) ResourceObjectClassDefinition(com.evolveum.midpoint.schema.processor.ResourceObjectClassDefinition) Files(com.google.common.io.Files) ConnectorOperationalStatus(com.evolveum.midpoint.schema.statistics.ConnectorOperationalStatus) TestUtil(com.evolveum.midpoint.test.util.TestUtil) PrismContainerDefinition(com.evolveum.midpoint.prism.PrismContainerDefinition) DummyAccount(com.evolveum.icf.dummy.resource.DummyAccount) ObjectNotFoundException(com.evolveum.midpoint.util.exception.ObjectNotFoundException) Collection(java.util.Collection) Set(java.util.Set) IOException(java.io.IOException) ResourceTypeUtil(com.evolveum.midpoint.schema.util.ResourceTypeUtil) PrismObject(com.evolveum.midpoint.prism.PrismObject) File(java.io.File) GenericFrameworkException(com.evolveum.midpoint.provisioning.ucf.api.GenericFrameworkException) TimeUnit(java.util.concurrent.TimeUnit) CountDownLatch(java.util.concurrent.CountDownLatch) List(java.util.List) PrismContainerValue(com.evolveum.midpoint.prism.PrismContainerValue) ShadowUtil(com.evolveum.midpoint.schema.util.ShadowUtil) ContextConfiguration(org.springframework.test.context.ContextConfiguration) CommunicationException(com.evolveum.midpoint.util.exception.CommunicationException) UcfExecutionContext(com.evolveum.midpoint.provisioning.ucf.api.UcfExecutionContext) PrismSchema(com.evolveum.midpoint.prism.schema.PrismSchema) PrismObject(com.evolveum.midpoint.prism.PrismObject) ObjectHandler(com.evolveum.midpoint.provisioning.ucf.api.ObjectHandler) ArrayList(java.util.ArrayList) OperationResult(com.evolveum.midpoint.schema.result.OperationResult) ConnectorOperationalStatus(com.evolveum.midpoint.schema.statistics.ConnectorOperationalStatus) UcfExecutionContext(com.evolveum.midpoint.provisioning.ucf.api.UcfExecutionContext) Test(org.testng.annotations.Test)

Example 3 with ACCOUNT_OBJECT_CLASS_NAME

use of com.evolveum.midpoint.schema.util.SchemaTestConstants.ACCOUNT_OBJECT_CLASS_NAME in project midpoint by Evolveum.

the class TestUcfDummyMulti method test200BlockingSearch.

@Test
public void test200BlockingSearch() throws Exception {
    // GIVEN
    UcfExecutionContext ctx = createExecutionContext();
    OperationResult result = createOperationResult();
    final ResourceObjectClassDefinition accountDefinition = resourceSchema.findObjectClassDefinitionRequired(ACCOUNT_OBJECT_CLASS_NAME);
    // Determine object class from the schema
    final List<PrismObject<ShadowType>> searchResults = new ArrayList<>();
    final ObjectHandler handler = (ucfObject, lResult) -> {
        checkUcfShadow(ucfObject.getResourceObject(), accountDefinition);
        searchResults.add(ucfObject.getResourceObject());
        return true;
    };
    dummyResource.setBlockOperations(true);
    // WHEN
    Thread t = new Thread(() -> {
        try {
            cc.search(accountDefinition, null, handler, null, null, null, null, ctx, result);
        } catch (CommunicationException | GenericFrameworkException | SchemaException | SecurityViolationException | ObjectNotFoundException e) {
            logger.error("Error in the search: {}", e.getMessage(), e);
        }
    });
    t.setName("search1");
    t.start();
    // Give the new thread a chance to get blocked
    Thread.sleep(500);
    ConnectorOperationalStatus opStat = cc.getOperationalStatus();
    displayDumpable("stats (blocked)", opStat);
    assertEquals("Wrong pool active", (Integer) 1, opStat.getPoolStatusNumActive());
    assertEquals("Wrong pool active", (Integer) 0, opStat.getPoolStatusNumIdle());
    assertEquals("Unexpected number of search results", 0, searchResults.size());
    dummyResource.unblock();
    t.join();
    dummyResource.setBlockOperations(false);
    // THEN
    assertEquals("Unexpected number of search results", 1, searchResults.size());
    opStat = cc.getOperationalStatus();
    displayDumpable("stats (final)", opStat);
    assertEquals("Wrong pool active", (Integer) 0, opStat.getPoolStatusNumActive());
    assertEquals("Wrong pool active", (Integer) 1, opStat.getPoolStatusNumIdle());
    PrismObject<ShadowType> searchResult = searchResults.get(0);
    displayDumpable("Search result", searchResult);
}
Also used : ResourceObjectClassDefinition(com.evolveum.midpoint.schema.processor.ResourceObjectClassDefinition) AssertJUnit(org.testng.AssertJUnit) com.evolveum.midpoint.xml.ns._public.common.common_3(com.evolveum.midpoint.xml.ns._public.common.common_3) SchemaConstants(com.evolveum.midpoint.schema.constants.SchemaConstants) ResourceAttributeContainer(com.evolveum.midpoint.schema.processor.ResourceAttributeContainer) OperationResult(com.evolveum.midpoint.schema.result.OperationResult) SchemaException(com.evolveum.midpoint.util.exception.SchemaException) Test(org.testng.annotations.Test) SchemaRegistry(com.evolveum.midpoint.prism.schema.SchemaRegistry) ObjectHandler(com.evolveum.midpoint.provisioning.ucf.api.ObjectHandler) ACCOUNT_OBJECT_CLASS_NAME(com.evolveum.midpoint.schema.util.SchemaTestConstants.ACCOUNT_OBJECT_CLASS_NAME) ArrayList(java.util.ArrayList) ResourceAttribute(com.evolveum.midpoint.schema.processor.ResourceAttribute) SecurityViolationException(com.evolveum.midpoint.util.exception.SecurityViolationException) PrismTestUtil(com.evolveum.midpoint.prism.util.PrismTestUtil) ResourceObjectClassDefinition(com.evolveum.midpoint.schema.processor.ResourceObjectClassDefinition) Files(com.google.common.io.Files) ConnectorOperationalStatus(com.evolveum.midpoint.schema.statistics.ConnectorOperationalStatus) TestUtil(com.evolveum.midpoint.test.util.TestUtil) PrismContainerDefinition(com.evolveum.midpoint.prism.PrismContainerDefinition) DummyAccount(com.evolveum.icf.dummy.resource.DummyAccount) ObjectNotFoundException(com.evolveum.midpoint.util.exception.ObjectNotFoundException) Collection(java.util.Collection) Set(java.util.Set) IOException(java.io.IOException) ResourceTypeUtil(com.evolveum.midpoint.schema.util.ResourceTypeUtil) PrismObject(com.evolveum.midpoint.prism.PrismObject) File(java.io.File) GenericFrameworkException(com.evolveum.midpoint.provisioning.ucf.api.GenericFrameworkException) TimeUnit(java.util.concurrent.TimeUnit) CountDownLatch(java.util.concurrent.CountDownLatch) List(java.util.List) PrismContainerValue(com.evolveum.midpoint.prism.PrismContainerValue) ShadowUtil(com.evolveum.midpoint.schema.util.ShadowUtil) ContextConfiguration(org.springframework.test.context.ContextConfiguration) CommunicationException(com.evolveum.midpoint.util.exception.CommunicationException) UcfExecutionContext(com.evolveum.midpoint.provisioning.ucf.api.UcfExecutionContext) PrismSchema(com.evolveum.midpoint.prism.schema.PrismSchema) SchemaException(com.evolveum.midpoint.util.exception.SchemaException) CommunicationException(com.evolveum.midpoint.util.exception.CommunicationException) GenericFrameworkException(com.evolveum.midpoint.provisioning.ucf.api.GenericFrameworkException) SecurityViolationException(com.evolveum.midpoint.util.exception.SecurityViolationException) ArrayList(java.util.ArrayList) OperationResult(com.evolveum.midpoint.schema.result.OperationResult) PrismObject(com.evolveum.midpoint.prism.PrismObject) ObjectHandler(com.evolveum.midpoint.provisioning.ucf.api.ObjectHandler) ObjectNotFoundException(com.evolveum.midpoint.util.exception.ObjectNotFoundException) ConnectorOperationalStatus(com.evolveum.midpoint.schema.statistics.ConnectorOperationalStatus) UcfExecutionContext(com.evolveum.midpoint.provisioning.ucf.api.UcfExecutionContext) Test(org.testng.annotations.Test)

Example 4 with ACCOUNT_OBJECT_CLASS_NAME

use of com.evolveum.midpoint.schema.util.SchemaTestConstants.ACCOUNT_OBJECT_CLASS_NAME in project midpoint by Evolveum.

the class TestUcfDummy method test050Search.

@Test
public void test050Search() throws Exception {
    // GIVEN
    UcfExecutionContext ctx = createExecutionContext();
    final ResourceObjectClassDefinition accountDefinition = resourceSchema.findObjectClassDefinitionRequired(ACCOUNT_OBJECT_CLASS_NAME);
    // Determine object class from the schema
    final List<PrismObject<ShadowType>> searchResults = new ArrayList<>();
    ObjectHandler handler = (ucfObject, result) -> {
        displayDumpable("Search: found", ucfObject);
        checkUcfShadow(ucfObject.getResourceObject(), accountDefinition);
        searchResults.add(ucfObject.getResourceObject());
        return true;
    };
    OperationResult result = createOperationResult();
    // WHEN
    cc.search(accountDefinition, null, handler, null, null, null, null, ctx, result);
    // THEN
    assertEquals("Unexpected number of search results", 1, searchResults.size());
}
Also used : AssertJUnit(org.testng.AssertJUnit) com.evolveum.midpoint.xml.ns._public.common.common_3(com.evolveum.midpoint.xml.ns._public.common.common_3) PrismSchemaImpl(com.evolveum.midpoint.prism.impl.schema.PrismSchemaImpl) UcfSyncToken(com.evolveum.midpoint.provisioning.ucf.api.UcfSyncToken) SchemaConstants(com.evolveum.midpoint.schema.constants.SchemaConstants) OperationResult(com.evolveum.midpoint.schema.result.OperationResult) Test(org.testng.annotations.Test) SchemaRegistry(com.evolveum.midpoint.prism.schema.SchemaRegistry) ObjectHandler(com.evolveum.midpoint.provisioning.ucf.api.ObjectHandler) ACCOUNT_OBJECT_CLASS_NAME(com.evolveum.midpoint.schema.util.SchemaTestConstants.ACCOUNT_OBJECT_CLASS_NAME) ArrayList(java.util.ArrayList) DOMUtil(com.evolveum.midpoint.util.DOMUtil) SchemaConstantsGenerated(com.evolveum.midpoint.schema.SchemaConstantsGenerated) PrismTestUtil(com.evolveum.midpoint.prism.util.PrismTestUtil) ObjectTypeUtil(com.evolveum.midpoint.schema.util.ObjectTypeUtil) Document(org.w3c.dom.Document) ConnectorOperationalStatus(com.evolveum.midpoint.schema.statistics.ConnectorOperationalStatus) IntegrationTestTools(com.evolveum.midpoint.test.IntegrationTestTools) TestUtil(com.evolveum.midpoint.test.util.TestUtil) DummyAccount(com.evolveum.icf.dummy.resource.DummyAccount) DummySyncStyle(com.evolveum.icf.dummy.resource.DummySyncStyle) com.evolveum.midpoint.prism(com.evolveum.midpoint.prism) PrismAsserts(com.evolveum.midpoint.prism.util.PrismAsserts) Collection(java.util.Collection) Set(java.util.Set) ResourceTypeUtil(com.evolveum.midpoint.schema.util.ResourceTypeUtil) List(java.util.List) DummyConnector(com.evolveum.icf.dummy.connector.DummyConnector) UcfLiveSyncChange(com.evolveum.midpoint.provisioning.ucf.api.UcfLiveSyncChange) com.evolveum.midpoint.schema.processor(com.evolveum.midpoint.schema.processor) MidPointConstants(com.evolveum.midpoint.schema.constants.MidPointConstants) ShadowUtil(com.evolveum.midpoint.schema.util.ShadowUtil) PolyStringType(com.evolveum.prism.xml.ns._public.types_3.PolyStringType) ContextConfiguration(org.springframework.test.context.ContextConfiguration) QName(javax.xml.namespace.QName) UcfExecutionContext(com.evolveum.midpoint.provisioning.ucf.api.UcfExecutionContext) PrismSchema(com.evolveum.midpoint.prism.schema.PrismSchema) ObjectHandler(com.evolveum.midpoint.provisioning.ucf.api.ObjectHandler) ArrayList(java.util.ArrayList) OperationResult(com.evolveum.midpoint.schema.result.OperationResult) UcfExecutionContext(com.evolveum.midpoint.provisioning.ucf.api.UcfExecutionContext) Test(org.testng.annotations.Test)

Aggregations

DummyAccount (com.evolveum.icf.dummy.resource.DummyAccount)4 PrismSchema (com.evolveum.midpoint.prism.schema.PrismSchema)4 SchemaRegistry (com.evolveum.midpoint.prism.schema.SchemaRegistry)4 PrismTestUtil (com.evolveum.midpoint.prism.util.PrismTestUtil)4 ObjectHandler (com.evolveum.midpoint.provisioning.ucf.api.ObjectHandler)4 UcfExecutionContext (com.evolveum.midpoint.provisioning.ucf.api.UcfExecutionContext)4 SchemaConstants (com.evolveum.midpoint.schema.constants.SchemaConstants)4 OperationResult (com.evolveum.midpoint.schema.result.OperationResult)4 ConnectorOperationalStatus (com.evolveum.midpoint.schema.statistics.ConnectorOperationalStatus)4 ResourceTypeUtil (com.evolveum.midpoint.schema.util.ResourceTypeUtil)4 ACCOUNT_OBJECT_CLASS_NAME (com.evolveum.midpoint.schema.util.SchemaTestConstants.ACCOUNT_OBJECT_CLASS_NAME)4 ShadowUtil (com.evolveum.midpoint.schema.util.ShadowUtil)4 TestUtil (com.evolveum.midpoint.test.util.TestUtil)4 com.evolveum.midpoint.xml.ns._public.common.common_3 (com.evolveum.midpoint.xml.ns._public.common.common_3)4 ArrayList (java.util.ArrayList)4 Collection (java.util.Collection)4 List (java.util.List)4 Set (java.util.Set)4 ContextConfiguration (org.springframework.test.context.ContextConfiguration)4 AssertJUnit (org.testng.AssertJUnit)4