Skip to content

Commit

Permalink
Add (failing) test for MID-5826
Browse files Browse the repository at this point in the history
  • Loading branch information
mederly committed Oct 4, 2019
1 parent d2e12c7 commit fbc83d2
Showing 1 changed file with 43 additions and 0 deletions.
Expand Up @@ -27,6 +27,7 @@

import java.io.File;
import java.io.IOException;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
Expand Down Expand Up @@ -116,6 +117,7 @@ public class ModifyTest extends BaseSQLRepoTest {

private static final QName QNAME_LOOT = new QName("http://example.com/p", "loot");
private static final QName QNAME_WEAPON = new QName("http://example.com/p", "weapon");
private static final QName QNAME_FUNERAL_DATE = new QName("http://example.com/p", "funeralDate");

@BeforeSuite
public void setup() throws SchemaException, SAXException, IOException {
Expand Down Expand Up @@ -1155,4 +1157,45 @@ public void test360ReplaceModifyApprovers() throws Exception {
assertEquals("Wrong # of users found", 1, users.size());
}

@Test(enabled = false) // MID-5826
public void test400ReplaceExtensionItem() throws Exception {
final String TEST_NAME = "test400ReplaceExtensionItem";
TestUtil.displayTestTitle(TEST_NAME);

// GIVEN
OperationResult result = new OperationResult(TEST_NAME);

PrismObject<UserType> user = prismContext.createObjectable(UserType.class)
.name("test400")
.oid("oid-400")
.asPrismObject();
repositoryService.addObject(user, null, result);

assertExtensionDateValue(user.getOid(), 0);

XMLGregorianCalendar dateTime = XmlTypeConverter.createXMLGregorianCalendar("2022-04-05T16:14:58");

List<ItemDelta<?, ?>> itemDeltasSet = DeltaBuilder.deltaFor(UserType.class, prismContext)
.item(UserType.F_EXTENSION, QNAME_FUNERAL_DATE).replace(dateTime)
.asItemDeltas();
repositoryService.modifyObject(UserType.class, user.getOid(), itemDeltasSet, getModifyOptions(), result);

assertExtensionDateValue(user.getOid(), 1);

List<ItemDelta<?, ?>> itemDeltasUnset = DeltaBuilder.deltaFor(UserType.class, prismContext)
.item(UserType.F_EXTENSION, QNAME_FUNERAL_DATE).replace()
.asItemDeltas();
repositoryService.modifyObject(UserType.class, user.getOid(), itemDeltasUnset, getModifyOptions(), result);

assertExtensionDateValue(user.getOid(), 0);
}

private void assertExtensionDateValue(String objectOid, int expected) {
Session session = open();
//noinspection unchecked
List<Timestamp> values = session.createQuery("select d.value from ROExtDate d where d.ownerOid = '" + objectOid + "'").list();
System.out.println("Values: " + values);
assertEquals("Wrong # of extension values found", expected, values.size());
close(session);
}
}

0 comments on commit fbc83d2

Please sign in to comment.