Skip to content

Commit

Permalink
Extending the tests for noFetch resource reads (MID-3509)
Browse files Browse the repository at this point in the history
  • Loading branch information
semancik committed Dec 13, 2016
1 parent ab1f0c6 commit 8c53bb0
Showing 1 changed file with 80 additions and 13 deletions.
Expand Up @@ -185,7 +185,7 @@ public void test020GetResourceBroken() throws Exception {
@Test
public void test030ListResources() throws Exception {
final String TEST_NAME = "test030ListResources";
testListResources(TEST_NAME, 4);
testListResources(TEST_NAME, 4, null);
}

@Test
Expand Down Expand Up @@ -585,7 +585,7 @@ public void test362GetResourceNoConfiguration() throws Exception {
@Test
public void test368ListResources() throws Exception {
final String TEST_NAME = "test368ListResources";
testListResources(TEST_NAME, 5);
testListResources(TEST_NAME, 5, null);
}

@Test
Expand Down Expand Up @@ -614,7 +614,7 @@ public void test369DeleteResourceNoConfiguration() throws Exception {
@Test
public void test370ListResources() throws Exception {
final String TEST_NAME = "test370ListResources";
testListResources(TEST_NAME, 4);
testListResources(TEST_NAME, 4, null);
}

@Test
Expand All @@ -634,15 +634,70 @@ public void test371ImportUnaccessibleResource() throws Exception {
TestUtil.assertSuccess(result);
}

/**
* No fetch operation should NOT try to read the schema.
* MID-3509
*/
@Test
public void test372GetUnaccessibleResourceNoFetch() throws Exception {
final String TEST_NAME = "test372GetUnaccessibleResourceNoFetch";
TestUtil.displayTestTile(this, TEST_NAME);

// GIVEN
Task task = taskManager.createTaskInstance(TestBrokenResources.class.getName() + "." + TEST_NAME);
OperationResult result = task.getResult();

rememberResourceSchemaFetchCount();
rememberConnectorInitializationCount();
rememberConnectorOperationCount();
rememberConnectorSchemaParseCount();

// WHEN
PrismObject<ResourceType> resource = modelService.getObject(ResourceType.class, RESOURCE_DUMMY_UNACCESSIBLE_OID,
GetOperationOptions.createNoFetchCollection(), task, result);

// THEN
result.computeStatus();
TestUtil.assertSuccess(result);
display("Resource after", resource);
assertNotNull("No resource", resource);

assertResourceSchemaFetchIncrement(0);
assertConnectorInitializationCountIncrement(0);
assertConnectorOperationIncrement(0);
assertConnectorSchemaParseIncrement(0);
}

/**
* No fetch operation should NOT try to read the schema.
* MID-3509
*/
@Test
public void test374ListResourcesNoFetch() throws Exception {
final String TEST_NAME = "test374ListResourcesNoFetch";

rememberResourceSchemaFetchCount();
rememberConnectorInitializationCount();
rememberConnectorOperationCount();
rememberConnectorSchemaParseCount();

testListResources(TEST_NAME, 5, GetOperationOptions.createNoFetchCollection());

assertResourceSchemaFetchIncrement(0);
assertConnectorInitializationCountIncrement(0);
assertConnectorOperationIncrement(0);
assertConnectorSchemaParseIncrement(0);
}

@Test
public void test372ListResources() throws Exception {
final String TEST_NAME = "test372ListResources";
testListResources(TEST_NAME, 5);
public void test375ListResources() throws Exception {
final String TEST_NAME = "test375ListResources";
testListResources(TEST_NAME, 5, null);
}

@Test
public void test373GetResourceNoConfiguration() throws Exception {
final String TEST_NAME = "test373GetResourceNoConfiguration";
public void test377GetResourceNoConfiguration() throws Exception {
final String TEST_NAME = "test377GetResourceNoConfiguration";
TestUtil.displayTestTile(this, TEST_NAME);

// GIVEN
Expand Down Expand Up @@ -721,20 +776,26 @@ private void testAssignTwoResoures(final String TEST_NAME, String badResourceOid
assertNotNull("No jack dummy account", jackDummyAccount);
}

public void testListResources(final String TEST_NAME, int expectedNumber) throws Exception {
public void testListResources(final String TEST_NAME, int expectedNumber, Collection<SelectorOptions<GetOperationOptions>> options) throws Exception {
TestUtil.displayTestTile(this, TEST_NAME);

// GIVEN (1)
Task task = taskManager.createTaskInstance(TestBrokenResources.class.getName() + "." + TEST_NAME);
OperationResult result = task.getResult();

// WHEN (1)
final SearchResultList<PrismObject<ResourceType>> resources = modelService.searchObjects(ResourceType.class, null, null, task, result);
final SearchResultList<PrismObject<ResourceType>> resources = modelService.searchObjects(ResourceType.class, null, options, task, result);

// THEN (1)
result.computeStatus();
display("getObject result", result);
assertEquals("Expected partial error (search)", OperationResultStatus.PARTIAL_ERROR, result.getStatus());
if (options == null) {
assertEquals("Expected partial error (search)", OperationResultStatus.PARTIAL_ERROR, result.getStatus());
} else if (GetOperationOptions.isNoFetch(SelectorOptions.findRootOptions(options))) {
TestUtil.assertSuccess(result);
} else {
AssertJUnit.fail("unexpected");
}
display("Got resources: "+resources);
assertEquals("Wrong number of resources", expectedNumber, resources.size());

Expand All @@ -752,12 +813,18 @@ public boolean handle(PrismObject<ResourceType> object, OperationResult parentRe
};

// WHEN (2)
modelService.searchObjectsIterative(ResourceType.class, null, handler, null, task, result);
modelService.searchObjectsIterative(ResourceType.class, null, handler, options, task, result);

// THEN (2)
result.computeStatus();
display("getObject result", result);
assertEquals("Expected partial error (searchIterative)", OperationResultStatus.PARTIAL_ERROR, result.getStatus());
if (options == null) {
assertEquals("Expected partial error (searchIterative)", OperationResultStatus.PARTIAL_ERROR, result.getStatus());
} else if (GetOperationOptions.isNoFetch(SelectorOptions.findRootOptions(options))) {
TestUtil.assertSuccess(result);
} else {
AssertJUnit.fail("unexpected");
}
display("Got resources: "+resources);
assertEquals("Wrong number of resources", expectedNumber, resources.size());

Expand Down

0 comments on commit 8c53bb0

Please sign in to comment.