Skip to content

Commit

Permalink
Demo/test of how is prism functionality limited when there's no prism…
Browse files Browse the repository at this point in the history
…Context.
  • Loading branch information
mederly committed Jul 10, 2014
1 parent 37cc834 commit 7eb897d
Showing 1 changed file with 54 additions and 0 deletions.
Expand Up @@ -16,11 +16,15 @@

package com.evolveum.midpoint.schema;

import com.evolveum.midpoint.prism.PrismContext;
import com.evolveum.midpoint.prism.PrismObject;
import com.evolveum.midpoint.prism.delta.ObjectDelta;
import com.evolveum.midpoint.prism.util.PrismTestUtil;
import com.evolveum.midpoint.schema.constants.MidPointConstants;
import com.evolveum.midpoint.schema.constants.SchemaConstants;
import com.evolveum.midpoint.util.PrettyPrinter;
import com.evolveum.midpoint.util.exception.SchemaException;
import com.evolveum.midpoint.xml.ns._public.common.common_3.AssignmentType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.UserType;

import org.testng.annotations.BeforeSuite;
Expand All @@ -30,6 +34,7 @@
import java.io.IOException;

import static org.testng.AssertJUnit.assertEquals;
import static org.testng.AssertJUnit.assertFalse;
import static org.testng.AssertJUnit.assertNotNull;

/**
Expand Down Expand Up @@ -82,4 +87,53 @@ public void testUserListSimpleDiff() throws SchemaException {
assertNotNull(delta);
assertEquals("Delta should be empty, nothing changed.", 0, delta.getModifications().size());
}

@Test
public void testContextlessEquals() throws Exception {
AssignmentType a1 = new AssignmentType(); // no prismContext here
a1.setDescription("descr1");

AssignmentType a2 = new AssignmentType(); // no prismContext here
a2.setDescription("descr2");

// assertFalse(a1.equals(a2)); // this DOES NOT work without prismContext

PrismContext prismContext = PrismTestUtil.getPrismContext();
prismContext.adopt(a1);
prismContext.adopt(a2);
assertFalse(a1.equals(a2)); // now it should work
}

@Test
public void testContextlessEquals2() throws Exception {

// (1) user without prismContext - the functionality is radically reduced

UserType user = new UserType();

// user.asPrismObject().createDelta(); // this fails (no prismContext)

AssignmentType a1 = new AssignmentType(); // no prismContext here
a1.setDescription("descr1");
user.getAssignment().add(a1);
AssignmentType a2 = new AssignmentType(); // no prismContext here
a2.setDescription("descr2");
//user.getAssignment().add(a2); // this fails without prismContext (there's hidden equals there)

// (2) user with prismContext

UserType userWithContext = new UserType();
PrismContext prismContext = PrismTestUtil.getPrismContext();
prismContext.adopt(userWithContext);

AssignmentType b1 = new AssignmentType(); // no prismContext here
b1.setDescription("descr1");
userWithContext.getAssignment().add(b1);
AssignmentType b2 = new AssignmentType(); // no prismContext here
b2.setDescription("descr2");
userWithContext.getAssignment().add(b2); // this works, because there's already prismContext in userWithContext

userWithContext.asPrismObject().createDelta(); // this works as well
}

}

0 comments on commit 7eb897d

Please sign in to comment.