Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/PreferencesTest.java URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/PreferencesTest.java?rev=1755764&r1=1755763&r2=1755764&view=diff ============================================================================== --- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/PreferencesTest.java (original) +++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/PreferencesTest.java Wed Aug 10 15:00:40 2016 @@ -23,7 +23,6 @@ package org.apache.qpid.server.model.tes import static org.apache.qpid.server.model.preferences.PreferenceTestHelper.awaitPreferenceFuture; import static org.mockito.Mockito.mock; -import java.security.Principal; import java.security.PrivilegedAction; import java.util.Arrays; import java.util.Collection; @@ -43,7 +42,6 @@ import org.apache.qpid.server.configurat import org.apache.qpid.server.configuration.updater.TaskExecutor; import org.apache.qpid.server.model.ConfiguredObject; import org.apache.qpid.server.model.Model; -import org.apache.qpid.server.model.preferences.GenericPrincipal; import org.apache.qpid.server.model.preferences.Preference; import org.apache.qpid.server.model.preferences.PreferenceFactory; import org.apache.qpid.server.model.preferences.PreferenceTestHelper; @@ -90,7 +88,7 @@ public class PreferencesTest extends Qpi public void testSimpleRoundTrip() { - final Preference p = PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + final Preference p = PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, "X-TestPropType", @@ -99,22 +97,15 @@ public class PreferencesTest extends Qpi TEST_PRINCIPAL_SERIALIZATION, null, Collections.<String, Object>emptyMap())); - Subject.doAs(_testSubject, new PrivilegedAction<Void>() - { - @Override - public Void run() - { - Set<Preference> preferences = Collections.singleton(p); - awaitPreferenceFuture(_testObject.getUserPreferences().updateOrAppend(preferences)); - assertEquals("roundtrip failed", preferences, awaitPreferenceFuture(_testObject.getUserPreferences().getPreferences())); - return null; - } - }); + + updateOrAppendAs(_testSubject, p); + assertPreferences(_testSubject, p); } - public void testProhibitNewPreferenceWithContradictingOwner() + public void testOverrideContradictingOwner() { - final Preference p = PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + Subject testSubject2 = TestPrincipalUtils.createTestSubject(TEST_USERNAME2); + final Preference p = PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, "X-testType", @@ -124,30 +115,16 @@ public class PreferencesTest extends Qpi null, Collections.<String, Object>emptyMap())); - Subject.doAs(TestPrincipalUtils.createTestSubject(TEST_USERNAME2), new PrivilegedAction<Void>() - { - @Override - public Void run() - { - Set<Preference> preferences = Collections.singleton(p); - try - { - awaitPreferenceFuture(_testObject.getUserPreferences().updateOrAppend(preferences)); - fail("Saving of preferences owned by somebody else should not be allowed"); - } - catch (IllegalArgumentException e) - { - // PASS - } - return null; - } - }); + updateOrAppendAs(testSubject2, p); + assertPreferences(testSubject2, p); + + assertPreferences(_testSubject); } public void testGetOnlyOwnedPreferences() { final Preference testUserPreference = - PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, "X-testType", @@ -160,7 +137,7 @@ public class PreferencesTest extends Qpi updateOrAppendAs(_testSubject, testUserPreference); final Preference testUser2Preference = - PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, "X-testType", @@ -170,25 +147,16 @@ public class PreferencesTest extends Qpi null, Collections.<String, Object>emptyMap())); - Subject.doAs(TestPrincipalUtils.createTestSubject(TEST_USERNAME2), new PrivilegedAction<Void>() - { - @Override - public Void run() - { - Set<Preference> preferences = Collections.singleton(testUser2Preference); - awaitPreferenceFuture(_testObject.getUserPreferences().updateOrAppend(Collections.singleton(testUser2Preference))); - Set<Preference> p2s = awaitPreferenceFuture(_testObject.getUserPreferences().getPreferences()); - assertEquals("Unexpected preferences for subject 2", preferences, p2s); - return null; - } - }); + Subject testSubject2 = TestPrincipalUtils.createTestSubject(TEST_USERNAME2); + updateOrAppendAs(testSubject2, testUser2Preference); - assertSinglePreference(_testSubject, testUserPreference); + assertPreferences(testSubject2, testUser2Preference); + assertPreferences(_testSubject, testUserPreference); } public void testUpdate() { - final Preference p1 = PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + final Preference p1 = PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, "X-testType", @@ -198,7 +166,7 @@ public class PreferencesTest extends Qpi null, Collections.<String, Object>emptyMap())); - final Preference p2 = PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + final Preference p2 = PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, p1.getId(), "X-testType", @@ -208,29 +176,15 @@ public class PreferencesTest extends Qpi null, Collections.<String, Object>emptyMap())); - Subject.doAs(_testSubject, new PrivilegedAction<Void>() - { - @Override - public Void run() - { - awaitPreferenceFuture(_testObject.getUserPreferences().updateOrAppend(Collections.singleton(p1))); - awaitPreferenceFuture(_testObject.getUserPreferences().updateOrAppend(Collections.singleton(p2))); + updateOrAppendAs(_testSubject, p1); + updateOrAppendAs(_testSubject, p2); - Set<Preference> preferences = awaitPreferenceFuture(_testObject.getUserPreferences().getPreferences()); - assertEquals("Unexpected number of preferences", 1, preferences.size()); - Preference newPreference = preferences.iterator().next(); - assertEquals("Unexpected preference id", p2.getId(), newPreference.getId()); - assertEquals("Unexpected preference type", p2.getType(), newPreference.getType()); - assertEquals("Unexpected preference name", p2.getName(), newPreference.getName()); - assertEquals("Unexpected preference description", p2.getDescription(), newPreference.getDescription()); - return null; - } - }); + assertPreferences(_testSubject, p2); } public void testProhibitTypeChange() { - final Preference p1 = PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + final Preference p1 = PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, "X-testType", @@ -239,7 +193,10 @@ public class PreferencesTest extends Qpi TEST_PRINCIPAL_SERIALIZATION, null, Collections.<String, Object>emptyMap())); - final Preference p2 = PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + + updateOrAppendAs(_testSubject, p1); + + final Preference p2 = PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, p1.getId(), "X-differentTestType", @@ -248,29 +205,21 @@ public class PreferencesTest extends Qpi TEST_PRINCIPAL_SERIALIZATION, null, Collections.<String, Object>emptyMap())); - Subject.doAs(_testSubject, new PrivilegedAction<Void>() + + try { - @Override - public Void run() - { - awaitPreferenceFuture(_testObject.getUserPreferences().updateOrAppend(Collections.singleton(p1))); - try - { - awaitPreferenceFuture(_testObject.getUserPreferences().updateOrAppend(Collections.singleton(p2))); - fail("Type change should not be allowed"); - } - catch (IllegalArgumentException e) - { - // pass - } - return null; - } - }); + updateOrAppendAs(_testSubject, p2); + fail("Type change should not be allowed"); + } + catch (IllegalArgumentException e) + { + // pass + } } public void testProhibitDuplicateNamesOfSameType() { - final Preference p1 = PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + final Preference p1 = PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, "X-testType", @@ -279,7 +228,10 @@ public class PreferencesTest extends Qpi TEST_PRINCIPAL_SERIALIZATION, null, Collections.<String, Object>emptyMap())); - final Preference p2 = PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + + updateOrAppendAs(_testSubject, p1); + + final Preference p2 = PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, "X-testType", @@ -289,30 +241,20 @@ public class PreferencesTest extends Qpi null, Collections.<String, Object>emptyMap())); - Subject.doAs(_testSubject, new PrivilegedAction<Void>() + try { - @Override - public Void run() - { - awaitPreferenceFuture(_testObject.getUserPreferences().updateOrAppend(Collections.singleton(p1))); - - try - { - awaitPreferenceFuture(_testObject.getUserPreferences().updateOrAppend(Collections.singleton(p2))); - fail("Property with same name and same type should not be allowed"); - } - catch (IllegalArgumentException e) - { - // pass - } - return null; - } - }); + updateOrAppendAs(_testSubject, p2); + fail("Property with same name and same type should not be allowed"); + } + catch (IllegalArgumentException e) + { + // pass + } } public void testProhibitDuplicateNamesOfSameTypeInSameUpdate() { - final Preference p1 = PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + final Preference p1 = PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, "X-testType", @@ -321,7 +263,7 @@ public class PreferencesTest extends Qpi TEST_PRINCIPAL_SERIALIZATION, null, Collections.<String, Object>emptyMap())); - final Preference p2 = PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + final Preference p2 = PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, "X-testType", @@ -330,26 +272,16 @@ public class PreferencesTest extends Qpi TEST_PRINCIPAL_SERIALIZATION, null, Collections.<String, Object>emptyMap())); - Subject.doAs(_testSubject, new PrivilegedAction<Void>() + + try { - @Override - public Void run() - { - Set<Preference> preferences = new HashSet<>(); - preferences.add(p1); - preferences.add(p2); - try - { - awaitPreferenceFuture(_testObject.getUserPreferences().updateOrAppend(preferences)); - fail("Property with same name and same type should not be allowed"); - } - catch (IllegalArgumentException e) - { - // pass - } - return null; - } - }); + updateOrAppendAs(_testSubject, p1, p2); + fail("Property with same name and same type should not be allowed"); + } + catch (IllegalArgumentException e) + { + // pass + } } public void testProhibitPreferenceStealing() throws Exception @@ -366,7 +298,7 @@ public class PreferencesTest extends Qpi TEST_PRINCIPAL_SERIALIZATION, Collections.singleton(TestPrincipalUtils.getTestPrincipalSerialization(testGroupName)), Collections.<String,Object>emptyMap()); - final Preference originalPreference = PreferenceFactory.recover(_testObject, preferenceAttributes); + final Preference originalPreference = PreferenceFactory.fromAttributes(_testObject, preferenceAttributes); updateOrAppendAs(user1Subject, originalPreference); @@ -386,7 +318,7 @@ public class PreferencesTest extends Qpi try { - awaitPreferenceFuture(_testObject.getUserPreferences().updateOrAppend(Arrays.asList(PreferenceFactory.recover(_testObject, replacementAttributes)))); + awaitPreferenceFuture(_testObject.getUserPreferences().updateOrAppend(Arrays.asList(PreferenceFactory.fromAttributes(_testObject, replacementAttributes)))); fail("The stealing of a preference must be prohibited"); } catch (IllegalArgumentException e) @@ -398,7 +330,7 @@ public class PreferencesTest extends Qpi } }); - assertSinglePreference(user1Subject, originalPreference); + assertPreferences(user1Subject, originalPreference); } public void testProhibitDuplicateId() throws Exception @@ -406,7 +338,7 @@ public class PreferencesTest extends Qpi final String prefType = "X-testType"; final String prefName = "prop1"; final Preference testUserPreference = - PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, prefType, @@ -420,7 +352,7 @@ public class PreferencesTest extends Qpi Subject user2Subject = TestPrincipalUtils.createTestSubject(TEST_USERNAME2); final Preference testUserPreference2 = - PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, testUserPreference.getId(), prefType, @@ -501,7 +433,7 @@ public class PreferencesTest extends Qpi Subject testSubject2 = TestPrincipalUtils.createTestSubject(TEST_USERNAME2); final Preference unaffectedPreference = - PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, preferenceType, @@ -512,7 +444,7 @@ public class PreferencesTest extends Qpi Collections.<String, Object>emptyMap())); updateOrAppendAs(testSubject2, unaffectedPreference); - final Preference p1 = PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + final Preference p1 = PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, preferenceType, @@ -521,7 +453,10 @@ public class PreferencesTest extends Qpi TEST_PRINCIPAL_SERIALIZATION, null, Collections.<String, Object>emptyMap())); - final Preference p2 = PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + + updateOrAppendAs(_testSubject, p1); + + final Preference p2 = PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, preferenceType, @@ -536,24 +471,18 @@ public class PreferencesTest extends Qpi @Override public Void run() { - awaitPreferenceFuture(_testObject.getUserPreferences().updateOrAppend(Collections.singleton(p1))); awaitPreferenceFuture(_testObject.getUserPreferences().replace(Collections.singleton(p2))); - - Collection<Preference> retrievedPreferences = - awaitPreferenceFuture(_testObject.getUserPreferences().getPreferences()); - assertEquals("Unexpected number of preferences", 1, retrievedPreferences.size()); - assertEquals("Unexpected preference", p2, retrievedPreferences.iterator().next()); - return null; } }); - assertSinglePreference(testSubject2, unaffectedPreference); + assertPreferences(_testSubject, p2); + assertPreferences(testSubject2, unaffectedPreference); } public void testDeleteAll() throws Exception { - final Preference p1 = PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + final Preference p1 = PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, "X-type-1", @@ -562,7 +491,7 @@ public class PreferencesTest extends Qpi TEST_PRINCIPAL_SERIALIZATION, null, Collections.<String, Object>emptyMap())); - final Preference p2 = PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + final Preference p2 = PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, "X-type-2", @@ -590,7 +519,7 @@ public class PreferencesTest extends Qpi { final String deleteType = "X-type-1"; final Preference deletePreference = - PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, deleteType, @@ -601,7 +530,7 @@ public class PreferencesTest extends Qpi Collections.<String, Object>emptyMap())); String unaffectedType = "X-type-2"; final Preference unaffectedPreference = - PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, unaffectedType, @@ -618,14 +547,10 @@ public class PreferencesTest extends Qpi public Void run() { awaitPreferenceFuture(_testObject.getUserPreferences().delete(deleteType, null, null)); - Set<Preference> result = awaitPreferenceFuture(_testObject.getUserPreferences().getPreferences()); - assertEquals("Unexpected number of preferences", 1, result.size()); - assertEquals("Unexpected preference Id", - unaffectedPreference.getId(), - result.iterator().next().getId()); return null; } }); + assertPreferences(_testSubject, unaffectedPreference); } public void testDeleteByTypeAndName() throws Exception @@ -633,7 +558,7 @@ public class PreferencesTest extends Qpi final String deleteType = "X-type-1"; final String deletePropertyName = "propName"; final Preference deletePreference = - PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, deleteType, @@ -643,7 +568,7 @@ public class PreferencesTest extends Qpi null, Collections.<String, Object>emptyMap())); final Preference unaffectedPreference1 = - PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, deleteType, @@ -654,7 +579,7 @@ public class PreferencesTest extends Qpi Collections.<String, Object>emptyMap())); String unaffectedType = "X-type-2"; final Preference unaffectedPreference2 = - PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, unaffectedType, @@ -671,25 +596,17 @@ public class PreferencesTest extends Qpi public Void run() { awaitPreferenceFuture(_testObject.getUserPreferences().delete(deleteType, deletePropertyName, null)); - Set<Preference> result = awaitPreferenceFuture(_testObject.getUserPreferences().getPreferences()); - assertEquals("Unexpected number of preferences", 2, result.size()); - Set<UUID> ids = new HashSet<>(result.size()); - for (Preference p : result) - { - ids.add(p.getId()); - } - assertTrue(String.format("unaffectedPreference1 unexpectedly deleted"), ids.contains(unaffectedPreference1.getId())); - assertTrue(String.format("unaffectedPreference2 unexpectedly deleted"), ids.contains(unaffectedPreference2.getId())); return null; } }); + assertPreferences(_testSubject, unaffectedPreference1, unaffectedPreference2); } public void testDeleteById() throws Exception { final String deleteType = "X-type-1"; final Preference deletePreference = - PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, deleteType, @@ -699,7 +616,7 @@ public class PreferencesTest extends Qpi null, Collections.<String, Object>emptyMap())); final Preference unaffectedPreference1 = - PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, deleteType, @@ -710,7 +627,7 @@ public class PreferencesTest extends Qpi Collections.<String, Object>emptyMap())); String unaffectedType = "X-type-2"; final Preference unaffectedPreference2 = - PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, unaffectedType, @@ -727,25 +644,17 @@ public class PreferencesTest extends Qpi public Void run() { awaitPreferenceFuture(_testObject.getUserPreferences().delete(null, null, deletePreference.getId())); - Set<Preference> result = awaitPreferenceFuture(_testObject.getUserPreferences().getPreferences()); - assertEquals("Unexpected number of preferences", 2, result.size()); - Set<UUID> ids = new HashSet<>(result.size()); - for (Preference p : result) - { - ids.add(p.getId()); - } - assertTrue(String.format("unaffectedPreference1 unexpectedly deleted"), ids.contains(unaffectedPreference1.getId())); - assertTrue(String.format("unaffectedPreference2 unexpectedly deleted"), ids.contains(unaffectedPreference2.getId())); return null; } }); + assertPreferences(_testSubject, unaffectedPreference1, unaffectedPreference2); } public void testDeleteByTypeAndId() throws Exception { final String deleteType = "X-type-1"; final Preference deletePreference = - PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, deleteType, @@ -755,7 +664,7 @@ public class PreferencesTest extends Qpi null, Collections.<String, Object>emptyMap())); final Preference unaffectedPreference1 = - PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, deleteType, @@ -766,7 +675,7 @@ public class PreferencesTest extends Qpi Collections.<String, Object>emptyMap())); String unaffectedType = "X-type-2"; final Preference unaffectedPreference2 = - PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, unaffectedType, @@ -783,18 +692,10 @@ public class PreferencesTest extends Qpi public Void run() { awaitPreferenceFuture(_testObject.getUserPreferences().delete(deleteType, null, deletePreference.getId())); - Set<Preference> result = awaitPreferenceFuture(_testObject.getUserPreferences().getPreferences()); - assertEquals("Unexpected number of preferences", 2, result.size()); - Set<UUID> ids = new HashSet<>(result.size()); - for (Preference p : result) - { - ids.add(p.getId()); - } - assertTrue(String.format("unaffectedPreference1 unexpectedly deleted"), ids.contains(unaffectedPreference1.getId())); - assertTrue(String.format("unaffectedPreference2 unexpectedly deleted"), ids.contains(unaffectedPreference2.getId())); return null; } }); + assertPreferences(_testSubject, unaffectedPreference1, unaffectedPreference2); } public void testDeleteByTypeAndNameAndId() throws Exception @@ -802,7 +703,7 @@ public class PreferencesTest extends Qpi final String deleteType = "X-type-1"; final String deletePropertyName = "propName"; final Preference deletePreference = - PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, deleteType, @@ -812,7 +713,7 @@ public class PreferencesTest extends Qpi null, Collections.<String, Object>emptyMap())); final Preference unaffectedPreference1 = - PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, deleteType, @@ -823,7 +724,7 @@ public class PreferencesTest extends Qpi Collections.<String, Object>emptyMap())); String unaffectedType = "X-type-2"; final Preference unaffectedPreference2 = - PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, unaffectedType, @@ -840,18 +741,10 @@ public class PreferencesTest extends Qpi public Void run() { awaitPreferenceFuture(_testObject.getUserPreferences().delete(deleteType, deletePropertyName, deletePreference.getId())); - Set<Preference> result = awaitPreferenceFuture(_testObject.getUserPreferences().getPreferences()); - assertEquals("Unexpected number of preferences", 2, result.size()); - Set<UUID> ids = new HashSet<>(result.size()); - for (Preference p : result) - { - ids.add(p.getId()); - } - assertTrue(String.format("unaffectedPreference1 unexpectedly deleted"), ids.contains(unaffectedPreference1.getId())); - assertTrue(String.format("unaffectedPreference2 unexpectedly deleted"), ids.contains(unaffectedPreference2.getId())); return null; } }); + assertPreferences(_testSubject, unaffectedPreference1, unaffectedPreference2); } public void testDeleteByNameWithoutType() throws Exception @@ -880,7 +773,7 @@ public class PreferencesTest extends Qpi final String preferenceType = "X-testType"; Subject testSubject2 = TestPrincipalUtils.createTestSubject(TEST_USERNAME2); final Preference unaffectedPreference = - PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, preferenceType, @@ -891,7 +784,7 @@ public class PreferencesTest extends Qpi Collections.<String, Object>emptyMap())); updateOrAppendAs(testSubject2, unaffectedPreference); - final Preference p1 = PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + final Preference p1 = PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, preferenceType, @@ -900,24 +793,20 @@ public class PreferencesTest extends Qpi TEST_PRINCIPAL_SERIALIZATION, null, Collections.<String, Object>emptyMap())); + updateOrAppendAs(_testSubject, p1); Subject.doAs(_testSubject, new PrivilegedAction<Void>() { @Override public Void run() { - awaitPreferenceFuture(_testObject.getUserPreferences().updateOrAppend(Collections.singleton(p1))); awaitPreferenceFuture(_testObject.getUserPreferences().replace(Collections.<Preference>emptySet())); - - Collection<Preference> retrievedPreferences = - awaitPreferenceFuture(_testObject.getUserPreferences().getPreferences()); - assertEquals("Unexpected number of preferences", 0, retrievedPreferences.size()); - return null; } }); - assertSinglePreference(testSubject2, unaffectedPreference); + assertPreferences(_testSubject); + assertPreferences(testSubject2, unaffectedPreference); } public void testDeleteViaReplaceByType() @@ -927,7 +816,7 @@ public class PreferencesTest extends Qpi Subject testSubject2 = TestPrincipalUtils.createTestSubject(TEST_USERNAME2); final Preference unaffectedPreference = - PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, preferenceType, @@ -938,7 +827,7 @@ public class PreferencesTest extends Qpi Collections.<String, Object>emptyMap())); updateOrAppendAs(testSubject2, unaffectedPreference); - final Preference p1 = PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + final Preference p1 = PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, preferenceType, @@ -947,7 +836,7 @@ public class PreferencesTest extends Qpi TEST_PRINCIPAL_SERIALIZATION, null, Collections.<String, Object>emptyMap())); - final Preference p2 = PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + final Preference p2 = PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, unaffectedPreferenceType, @@ -957,27 +846,19 @@ public class PreferencesTest extends Qpi null, Collections.<String, Object>emptyMap())); + updateOrAppendAs(_testSubject, p1, p2); Subject.doAs(_testSubject, new PrivilegedAction<Void>() { @Override public Void run() { - Set<Preference> preferences = new HashSet<>(); - preferences.add(p1); - preferences.add(p2); - awaitPreferenceFuture(_testObject.getUserPreferences().updateOrAppend(preferences)); - awaitPreferenceFuture(_testObject.getUserPreferences().replaceByType(preferenceType, Collections.<Preference>emptySet())); - - Collection<Preference> retrievedPreferences = - awaitPreferenceFuture(_testObject.getUserPreferences().getPreferences()); - assertEquals("Unexpected number of preferences", 1, retrievedPreferences.size()); - assertTrue("Unexpected preference", retrievedPreferences.contains(p2)); return null; } }); - assertSinglePreference(testSubject2, unaffectedPreference); + assertPreferences(_testSubject, p2); + assertPreferences(testSubject2, unaffectedPreference); } public void testDeleteViaReplaceByTypeAndName() @@ -986,7 +867,7 @@ public class PreferencesTest extends Qpi Subject testSubject2 = TestPrincipalUtils.createTestSubject(TEST_USERNAME2); final Preference unaffectedPreference = - PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, preferenceType, @@ -998,7 +879,7 @@ public class PreferencesTest extends Qpi updateOrAppendAs(testSubject2, unaffectedPreference); - final Preference p1 = PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + final Preference p1 = PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, preferenceType, @@ -1008,7 +889,7 @@ public class PreferencesTest extends Qpi null, Collections.<String, Object>emptyMap())); - final Preference p2 = PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + final Preference p2 = PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, preferenceType, @@ -1017,29 +898,20 @@ public class PreferencesTest extends Qpi TEST_PRINCIPAL_SERIALIZATION, null, Collections.<String, Object>emptyMap())); + updateOrAppendAs(_testSubject, p1, p2); Subject.doAs(_testSubject, new PrivilegedAction<Void>() { @Override public Void run() { - Set<Preference> preferences = new HashSet<>(); - preferences.add(p1); - preferences.add(p2); - awaitPreferenceFuture(_testObject.getUserPreferences().updateOrAppend(preferences)); - awaitPreferenceFuture(_testObject.getUserPreferences().replaceByTypeAndName(preferenceType, "propName", null)); - - Collection<Preference> retrievedPreferences = - awaitPreferenceFuture(_testObject.getUserPreferences().getPreferences()); - assertEquals("Unexpected number of preferences", 1, retrievedPreferences.size()); - assertTrue("Unexpected preference", retrievedPreferences.contains(p2)); - return null; } }); - assertSinglePreference(testSubject2, unaffectedPreference); + assertPreferences(_testSubject, p2); + assertPreferences(testSubject2, unaffectedPreference); } public void testReplaceByType() @@ -1048,7 +920,7 @@ public class PreferencesTest extends Qpi final String unaffectedType = "X-unaffectedType"; Subject testSubject2 = TestPrincipalUtils.createTestSubject(TEST_USERNAME2); final Preference unaffectedPreference = - PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, replaceType, @@ -1060,7 +932,7 @@ public class PreferencesTest extends Qpi updateOrAppendAs(testSubject2, unaffectedPreference); - final Preference p1 = PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + final Preference p1 = PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, replaceType, @@ -1069,7 +941,7 @@ public class PreferencesTest extends Qpi TEST_PRINCIPAL_SERIALIZATION, null, Collections.<String, Object>emptyMap())); - final Preference p2 = PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + final Preference p2 = PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, unaffectedType, @@ -1078,7 +950,7 @@ public class PreferencesTest extends Qpi TEST_PRINCIPAL_SERIALIZATION, null, Collections.<String, Object>emptyMap())); - final Preference p3 = PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + final Preference p3 = PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, replaceType, @@ -1087,29 +959,20 @@ public class PreferencesTest extends Qpi TEST_PRINCIPAL_SERIALIZATION, null, Collections.<String, Object>emptyMap())); + updateOrAppendAs(_testSubject, p1, p2); + Subject.doAs(_testSubject, new PrivilegedAction<Void>() { @Override public Void run() { - Set<Preference> preferences = new HashSet<>(); - preferences.add(p1); - preferences.add(p2); - awaitPreferenceFuture(_testObject.getUserPreferences().updateOrAppend(preferences)); - - preferences = Collections.singleton(p3); - awaitPreferenceFuture(_testObject.getUserPreferences().replaceByType(replaceType, preferences)); - - Set<Preference> retrievedPreferences = - awaitPreferenceFuture(_testObject.getUserPreferences().getPreferences()); - assertEquals("Unexpected number of preferences", 2, retrievedPreferences.size()); - assertTrue("Preference of different type was replaced", retrievedPreferences.contains(p2)); - assertTrue("Preference was not replaced", retrievedPreferences.contains(p3)); + awaitPreferenceFuture(_testObject.getUserPreferences().replaceByType(replaceType, Collections.singleton(p3))); return null; } }); - assertSinglePreference(testSubject2, unaffectedPreference); + assertPreferences(_testSubject, p2, p3); + assertPreferences(testSubject2, unaffectedPreference); } public void testReplaceByTypeAndName() @@ -1118,7 +981,7 @@ public class PreferencesTest extends Qpi final String unaffectedType = "X-unaffectedType"; Subject testSubject2 = TestPrincipalUtils.createTestSubject(TEST_USERNAME2); final Preference unaffectedPreference = - PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, replaceType, @@ -1130,7 +993,7 @@ public class PreferencesTest extends Qpi updateOrAppendAs(testSubject2, unaffectedPreference); - final Preference p1 = PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + final Preference p1 = PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, replaceType, @@ -1139,7 +1002,7 @@ public class PreferencesTest extends Qpi TEST_PRINCIPAL_SERIALIZATION, null, Collections.<String, Object>emptyMap())); - final Preference p1b = PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + final Preference p1b = PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, replaceType, @@ -1149,7 +1012,7 @@ public class PreferencesTest extends Qpi null, Collections.<String, Object>emptyMap())); - final Preference p2 = PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + final Preference p2 = PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, unaffectedType, @@ -1159,7 +1022,7 @@ public class PreferencesTest extends Qpi null, Collections.<String, Object>emptyMap())); - final Preference p3 = PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + final Preference p3 = PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, replaceType, @@ -1168,80 +1031,52 @@ public class PreferencesTest extends Qpi TEST_PRINCIPAL_SERIALIZATION, null, Collections.<String, Object>emptyMap())); + updateOrAppendAs(_testSubject, p1, p1b, p2); Subject.doAs(_testSubject, new PrivilegedAction<Void>() { @Override public Void run() { - Set<Preference> preferences = new HashSet<>(); - preferences.add(p1); - preferences.add(p1b); - preferences.add(p2); - awaitPreferenceFuture(_testObject.getUserPreferences().updateOrAppend(preferences)); - awaitPreferenceFuture(_testObject.getUserPreferences().replaceByTypeAndName(replaceType, "propName", p3)); - - Set<Preference> retrievedPreferences = - awaitPreferenceFuture(_testObject.getUserPreferences().getPreferences()); - assertEquals("Unexpected number of preferences", 3, retrievedPreferences.size()); - assertTrue("Preference of different name was replaced", retrievedPreferences.contains(p1b)); - assertTrue("Preference of different type was replaced", retrievedPreferences.contains(p2)); - assertTrue("Preference was not replaced", retrievedPreferences.contains(p3)); return null; } }); - assertSinglePreference(testSubject2, unaffectedPreference); + assertPreferences(_testSubject, p1b, p2, p3); + assertPreferences(testSubject2, unaffectedPreference); } public void testGetVisiblePreferences() { - final Principal testPrincipal = _testSubject.getPrincipals().iterator().next(); + final String testGroupName = "testGroup"; - Subject peerSubject = TestPrincipalUtils.createTestSubject(TEST_USERNAME2); - final Preference sharedPreference = PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + Subject sharer = TestPrincipalUtils.createTestSubject(TEST_USERNAME2, testGroupName); + Subject nonSharer = TestPrincipalUtils.createTestSubject(TEST_USERNAME, testGroupName); + + final Preference sharedPreference = PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, "X-testType", "propName1", - "shared with colleague testUser", + "shared with group", TEST_PRINCIPAL2_SERIALIZATION, - Collections.singleton(TEST_PRINCIPAL_SERIALIZATION), + Collections.singleton(TestPrincipalUtils.getTestPrincipalSerialization(testGroupName)), Collections.<String, Object>emptyMap())); - Subject.doAs(peerSubject, new PrivilegedAction<Void>() - { - @Override - public Void run() - { - awaitPreferenceFuture(_testObject.getUserPreferences().updateOrAppend(Collections.singleton(sharedPreference))); - return null; - } - }); - - Subject anotherSubject = TestPrincipalUtils.createTestSubject("anotherUser"); - final Preference notSharedPreference = PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + final Preference notSharedPreference = PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, "X-testType", "propName2", null, - TestPrincipalUtils.getTestPrincipalSerialization("anotherUser"), + TEST_PRINCIPAL2_SERIALIZATION, null, Collections.<String, Object>emptyMap())); - Subject.doAs(anotherSubject, new PrivilegedAction<Void>() - { - @Override - public Void run() - { - awaitPreferenceFuture(_testObject.getUserPreferences().updateOrAppend(Collections.singleton(notSharedPreference))); - return null; - } - }); + updateOrAppendAs(sharer, sharedPreference, notSharedPreference); - final Preference p = PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + final Preference nonSharersPrivatePref = PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, "X-testType", @@ -1251,22 +1086,25 @@ public class PreferencesTest extends Qpi null, Collections.<String, Object>emptyMap())); - Subject.doAs(_testSubject, new PrivilegedAction<Void>() + updateOrAppendAs(nonSharer, nonSharersPrivatePref); + + Subject.doAs(nonSharer, new PrivilegedAction<Void>() { @Override public Void run() { - - awaitPreferenceFuture(_testObject.getUserPreferences().updateOrAppend(Collections.singleton(p))); - Set<Preference> retrievedPreferences = awaitPreferenceFuture(_testObject.getUserPreferences().getVisiblePreferences()); assertEquals("Unexpected number of preferences", 2, retrievedPreferences.size()); - assertTrue("Preference of my peer did not exist in visible set", - retrievedPreferences.contains(sharedPreference)); - assertTrue("My preference did not exist in visible set", retrievedPreferences.contains(p)); - assertFalse("Preference of the other user unexpectedly exists in visible set", - retrievedPreferences.contains(notSharedPreference)); + + Set<UUID> visibleIds = new HashSet<>(retrievedPreferences.size()); + for (Preference preference : retrievedPreferences) + { + visibleIds.add(preference.getId()); + } + assertTrue("Owned preference not visible", visibleIds.contains(nonSharersPrivatePref.getId())); + assertTrue("Shared preference not visible", visibleIds.contains(sharedPreference.getId())); + return null; } }); @@ -1278,7 +1116,7 @@ public class PreferencesTest extends Qpi Subject testSubjectWithGroup = TestPrincipalUtils.createTestSubject(TEST_USERNAME, testGroupName); final Preference sharedPreference = - PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, "X-testType", @@ -1288,19 +1126,11 @@ public class PreferencesTest extends Qpi Collections.singleton(TestPrincipalUtils.getTestPrincipalSerialization(testGroupName)), Collections.<String, Object>emptyMap())); - Subject peerSubject = TestPrincipalUtils.createTestSubject(TEST_USERNAME2); - Subject.doAs(peerSubject, new PrivilegedAction<Void>() - { - @Override - public Void run() - { - awaitPreferenceFuture(_testObject.getUserPreferences().updateOrAppend(Collections.singleton(sharedPreference))); - return null; - } - }); + Subject peerSubject = TestPrincipalUtils.createTestSubject(TEST_USERNAME2, testGroupName); + updateOrAppendAs(peerSubject, sharedPreference); final Preference testUserPreference = - PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, "X-testType", @@ -1309,14 +1139,13 @@ public class PreferencesTest extends Qpi TEST_PRINCIPAL_SERIALIZATION, null, Collections.<String, Object>emptyMap())); + updateOrAppendAs(testSubjectWithGroup, testUserPreference); Subject.doAs(testSubjectWithGroup, new PrivilegedAction<Void>() { @Override public Void run() { - awaitPreferenceFuture(_testObject.getUserPreferences().updateOrAppend(Collections.singleton(testUserPreference))); - Set<Preference> retrievedPreferences = awaitPreferenceFuture(_testObject.getUserPreferences().getVisiblePreferences()); assertEquals("Unexpected number of preferences", 2, retrievedPreferences.size()); @@ -1331,9 +1160,9 @@ public class PreferencesTest extends Qpi public void testLastUpdatedDate() throws Exception { - Date before = new Date(); + Date beforeUpdate = new Date(); Thread.sleep(1); - final Preference p1 = PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + final Preference p1 = PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, "X-testType", @@ -1343,19 +1172,44 @@ public class PreferencesTest extends Qpi null, Collections.<String, Object>emptyMap())); Thread.sleep(1); - Date after = new Date(); + Date afterUpdate = new Date(); Date lastUpdatedDate = p1.getLastUpdatedDate(); - assertTrue(String.format("Creation date is too early. Expected : after %s Found : %s", - before, + assertTrue(String.format("LastUpdated date is too early. Expected : after %s Found : %s", + beforeUpdate, lastUpdatedDate), - before.before(lastUpdatedDate)); - assertTrue(String.format("Creation date is too late. Expected : after %s Found : %s", after, lastUpdatedDate), - after.after(lastUpdatedDate)); + beforeUpdate.before(lastUpdatedDate)); + assertTrue(String.format("LastUpdated date is too late. Expected : before %s Found : %s", afterUpdate, lastUpdatedDate), + afterUpdate.after(lastUpdatedDate)); + } + + + public void testCreatedDate() throws Exception + { + Date beforeCreation = new Date(); + Thread.sleep(1); + final Preference p1 = PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( + null, + null, + "X-testType", + "propName1", + null, + TEST_PRINCIPAL_SERIALIZATION, + null, + Collections.<String, Object>emptyMap())); + Thread.sleep(1); + Date afterCreation = new Date(); + Date createdDate = p1.getCreatedDate(); + assertTrue(String.format("Creation date is too early. Expected : after %s Found : %s", + beforeCreation, + createdDate), + beforeCreation.before(createdDate)); + assertTrue(String.format("Creation date is too late. Expected : before %s Found : %s", afterCreation, createdDate), + afterCreation.after(createdDate)); } public void testLastUpdatedDateIsImmutable() throws Exception { - final Preference p1 = PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( + final Preference p1 = PreferenceFactory.fromAttributes(_testObject, PreferenceTestHelper.createPreferenceAttributes( null, null, "X-testType", @@ -1370,39 +1224,6 @@ public class PreferencesTest extends Qpi assertTrue("Creation date is not immutable.", lastUpdatedDate2.getTime() != 0); } - public void testGetAttributes() throws Exception - { - final Map<String, Object> prefValueMap = Collections.<String, Object>singletonMap("myprefkey", "myprefvalue"); - final UUID uuid = UUID.randomUUID(); - final String type = "X-PREF1"; - final String name = "myprefname"; - final String description = "myprefdescription"; - final Set<String> visibilitySet = Collections.emptySet(); - Preference p = PreferenceFactory.recover(_testObject, PreferenceTestHelper.createPreferenceAttributes( - null, - uuid, - type, - name, - description, - TEST_PRINCIPAL_SERIALIZATION, - visibilitySet, - prefValueMap)); - assertNotNull("Creation failed", p); - Date lastUpdatedDate = p.getLastUpdatedDate(); - - Map<String, Object> expectedAttributes = new HashMap<>(); - expectedAttributes.put("id", uuid); - expectedAttributes.put("type", type); - expectedAttributes.put("name", name); - expectedAttributes.put("description", description); - expectedAttributes.put("owner", new GenericPrincipal(TEST_PRINCIPAL_SERIALIZATION)); - expectedAttributes.put("associatedObject", _testObject.getId()); - expectedAttributes.put("visibilityList", visibilitySet); - expectedAttributes.put("lastUpdatedDate", lastUpdatedDate); - expectedAttributes.put("value", prefValueMap); - assertEquals("Unexpected preference attributes", expectedAttributes, p.getAttributes()); - } - private void updateOrAppendAs(final Subject testSubject, final Preference... testUserPreference) { Subject.doAs(testSubject, new PrivilegedAction<Void>() @@ -1416,7 +1237,7 @@ public class PreferencesTest extends Qpi }); } - private void assertSinglePreference(final Subject subject, final Preference preference) + private void assertPreferences(final Subject subject, final Preference... expectedPreferences) { Subject.doAs(subject, new PrivilegedAction<Void>() { @@ -1425,8 +1246,20 @@ public class PreferencesTest extends Qpi { Collection<Preference> retrievedPreferences = awaitPreferenceFuture(_testObject.getUserPreferences().getPreferences()); - assertEquals("Unexpected number of preferences", 1, retrievedPreferences.size()); - assertEquals("Unexpected preference", preference, retrievedPreferences.iterator().next()); + assertEquals("Unexpected number of preferences", expectedPreferences.length, retrievedPreferences.size()); + Map<UUID, Preference> retrievedPreferencesMap = new HashMap<>(retrievedPreferences.size()); + for (Preference retrievedPreference : retrievedPreferences) + { + retrievedPreferencesMap.put(retrievedPreference.getId(), retrievedPreference); + } + for (Preference expectedPreference : expectedPreferences) + { + Preference retrievedPreference = retrievedPreferencesMap.get(expectedPreference.getId()); + assertNotNull("Expected id '" + expectedPreference.getId() + "' not found", retrievedPreference); + assertEquals("Unexpected name", expectedPreference.getName(), retrievedPreference.getName()); + assertEquals("Unexpected type", expectedPreference.getType(), retrievedPreference.getType()); + assertEquals("Unexpected description", expectedPreference.getDescription(), retrievedPreference.getDescription()); + } return null; } });
Modified: qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestUserPreferenceHandler.java URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestUserPreferenceHandler.java?rev=1755764&r1=1755763&r2=1755764&view=diff ============================================================================== --- qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestUserPreferenceHandler.java (original) +++ qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestUserPreferenceHandler.java Wed Aug 10 15:00:40 2016 @@ -112,11 +112,7 @@ public class RestUserPreferenceHandler ensureAttributeMatches(providedAttributes, "name", name); ensureAttributeMatches(providedAttributes, "type", type); - UUID providedUuid = getProvidedUuid(providedAttributes); - - Preference preference = PreferenceFactory.create(target, providedAttributes); - - ensureValidVisibilityList(preference.getVisibilityList()); + Preference preference = PreferenceFactory.fromAttributes(target, providedAttributes); awaitFuture(userPreferences.replaceByTypeAndName(type, name , preference)); } @@ -332,9 +328,7 @@ public class RestUserPreferenceHandler ensureAttributeMatches(preferenceAttributes, "type", type); - Preference preference = PreferenceFactory.create(target, preferenceAttributes); - - ensureValidVisibilityList(preference.getVisibilityList()); + Preference preference = PreferenceFactory.fromAttributes(target, preferenceAttributes); replacementPreferences.add(preference); } @@ -358,9 +352,7 @@ public class RestUserPreferenceHandler ensureAttributeMatches(preferenceAttributes, "type", type); - Preference preference = PreferenceFactory.create(target, preferenceAttributes); - - ensureValidVisibilityList(preference.getVisibilityList()); + Preference preference = PreferenceFactory.fromAttributes(target, preferenceAttributes); replacementPreferences.add(preference); } @@ -377,44 +369,6 @@ public class RestUserPreferenceHandler return (ids == null ? null : UUID.fromString(ids.get(0))); } - private UUID getProvidedUuid(final Map<String, Object> providedObjectMap) - { - String providedId = getProvidedAttributeAsString(providedObjectMap, "id"); - try - { - return providedId != null ? UUID.fromString(providedId) : null; - } - catch (IllegalArgumentException iae) - { - throw new IllegalArgumentException(String.format("Invalid UUID ('%s') found in payload", providedId), iae); - } - } - - private void ensureValidVisibilityList(final Collection<Principal> visibilityList) - { - Subject currentSubject = Subject.getSubject(AccessController.getContext()); - if (currentSubject == null) - { - throw new SecurityException("Current thread does not have a user"); - } - - HashSet<String> principalNames = new HashSet<>(currentSubject.getPrincipals().size()); - for (Principal principal : currentSubject.getPrincipals()) - { - principalNames.add(principal.getName()); - } - - for (Principal visibilityPrincipal : visibilityList) - { - if (!principalNames.contains(visibilityPrincipal.getName())) - { - String errorMessage = String.format("Invalid visibilityList, this user does not hold principal '%s'", - visibilityPrincipal); - throw new IllegalArgumentException(errorMessage); - } - } - } - private void ensureAttributeMatches(final Map<String, Object> preferenceAttributes, final String attributeName, final String expectedValue) Modified: qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Management.js URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Management.js?rev=1755764&r1=1755763&r2=1755764&view=diff ============================================================================== --- qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Management.js (original) +++ qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Management.js Wed Aug 10 15:00:40 2016 @@ -646,8 +646,8 @@ define(["dojo/_base/lang", Management.prototype.savePreference = function(parentObject, preference) { - var url = this.buildPreferenceUrl(parentObject, preference.type, preference.name); - return this.put({url: url}, preference); + var url = this.buildPreferenceUrl(parentObject, preference.type); + return this.post({url: url}, [preference]); }; Management.prototype.savePreferences = function(parentObject, preferences) Modified: qpid/java/trunk/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/servlet/rest/RestUserPreferenceHandlerTest.java URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/servlet/rest/RestUserPreferenceHandlerTest.java?rev=1755764&r1=1755763&r2=1755764&view=diff ============================================================================== --- qpid/java/trunk/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/servlet/rest/RestUserPreferenceHandlerTest.java (original) +++ qpid/java/trunk/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/servlet/rest/RestUserPreferenceHandlerTest.java Wed Aug 10 15:00:40 2016 @@ -532,7 +532,7 @@ public class RestUserPreferenceHandlerTe MYUSER_SERIALIZATION, Collections.singleton(MYGROUP_SERIALIZATION), Collections.<String, Object>emptyMap()); - Preference preference = PreferenceFactory.create(_configuredObject, prefAttributes); + Preference preference = PreferenceFactory.fromAttributes(_configuredObject, prefAttributes); awaitPreferenceFuture(_userPreferences.updateOrAppend(Collections.singleton(preference))); Map<String, List<Map<String, Object>>> typeToPreferenceListMap = @@ -566,20 +566,20 @@ public class RestUserPreferenceHandlerTe type, "testpref", null, - MYUSER, + MYUSER_SERIALIZATION, null, Collections.<String, Object>emptyMap()); - Preference p1 = PreferenceFactory.create(_configuredObject, pref1Attributes); + Preference p1 = PreferenceFactory.fromAttributes(_configuredObject, pref1Attributes); Map<String, Object> pref2Attributes = createPreferenceAttributes( null, null, type, "testpref2", null, - MYUSER, + MYUSER_SERIALIZATION, null, Collections.<String, Object>emptyMap()); - Preference p2 = PreferenceFactory.create(_configuredObject, pref2Attributes); + Preference p2 = PreferenceFactory.fromAttributes(_configuredObject, pref2Attributes); awaitPreferenceFuture(_userPreferences.updateOrAppend(Arrays.asList(p1, p2))); UUID id = p1.getId(); @@ -618,20 +618,20 @@ public class RestUserPreferenceHandlerTe type, "testpref", null, - MYUSER, + MYUSER_SERIALIZATION, null, Collections.<String, Object>emptyMap()); - Preference p1 = PreferenceFactory.create(_configuredObject, pref1Attributes); + Preference p1 = PreferenceFactory.fromAttributes(_configuredObject, pref1Attributes); Map<String, Object> pref2Attributes = createPreferenceAttributes( null, null, type, "testpref2", null, - MYUSER, + MYUSER_SERIALIZATION, null, Collections.<String, Object>emptyMap()); - Preference p2 = PreferenceFactory.create(_configuredObject, pref2Attributes); + Preference p2 = PreferenceFactory.fromAttributes(_configuredObject, pref2Attributes); awaitPreferenceFuture(_userPreferences.updateOrAppend(Arrays.asList(p1, p2))); UUID id = p1.getId(); @@ -716,7 +716,7 @@ public class RestUserPreferenceHandlerTe MYUSER_SERIALIZATION, Collections.singleton(MYGROUP_SERIALIZATION), Collections.<String, Object>emptyMap()); - Preference p1 = PreferenceFactory.create(_configuredObject, pref1Attributes); + Preference p1 = PreferenceFactory.fromAttributes(_configuredObject, pref1Attributes); preferences.add(p1); Map<String, Object> pref2Attributes = createPreferenceAttributes( null, @@ -727,7 +727,7 @@ public class RestUserPreferenceHandlerTe MYUSER_SERIALIZATION, Collections.<String>emptySet(), Collections.<String, Object>emptyMap()); - Preference p2 = PreferenceFactory.create(_configuredObject, pref2Attributes); + Preference p2 = PreferenceFactory.fromAttributes(_configuredObject, pref2Attributes); preferences.add(p2); awaitPreferenceFuture(_userPreferences.updateOrAppend(preferences)); return null; @@ -789,7 +789,7 @@ public class RestUserPreferenceHandlerTe MYUSER_SERIALIZATION, Collections.singleton(MYGROUP_SERIALIZATION), Collections.<String, Object>emptyMap()); - Preference p1 = PreferenceFactory.create(_configuredObject, pref1Attributes); + Preference p1 = PreferenceFactory.fromAttributes(_configuredObject, pref1Attributes); preferences.add(p1); Map<String, Object> pref2Attributes = createPreferenceAttributes( null, @@ -800,7 +800,7 @@ public class RestUserPreferenceHandlerTe MYUSER_SERIALIZATION, Collections.<String>emptySet(), Collections.<String, Object>emptyMap()); - Preference p2 = PreferenceFactory.create(_configuredObject, pref2Attributes); + Preference p2 = PreferenceFactory.fromAttributes(_configuredObject, pref2Attributes); preferences.add(p2); awaitPreferenceFuture(_userPreferences.updateOrAppend(preferences)); return null; @@ -859,7 +859,7 @@ public class RestUserPreferenceHandlerTe MYUSER_SERIALIZATION, Collections.singleton(MYGROUP_SERIALIZATION), Collections.<String, Object>emptyMap()); - Preference p1 = PreferenceFactory.create(_configuredObject, pref1Attributes); + Preference p1 = PreferenceFactory.fromAttributes(_configuredObject, pref1Attributes); preferences.add(p1); Map<String, Object> pref2Attributes = createPreferenceAttributes( null, @@ -870,7 +870,7 @@ public class RestUserPreferenceHandlerTe MYUSER_SERIALIZATION, Collections.<String>emptySet(), Collections.<String, Object>emptyMap()); - Preference p2 = PreferenceFactory.create(_configuredObject, pref2Attributes); + Preference p2 = PreferenceFactory.fromAttributes(_configuredObject, pref2Attributes); preferences.add(p2); awaitPreferenceFuture(_userPreferences.updateOrAppend(preferences)); return null; @@ -914,10 +914,10 @@ public class RestUserPreferenceHandlerTe preferenceType, preferenceName, null, - MYUSER, + MYUSER_SERIALIZATION, null, Collections.<String, Object>emptyMap()); - Preference preference = PreferenceFactory.create(_configuredObject, + Preference preference = PreferenceFactory.fromAttributes(_configuredObject, preferenceAttributes); awaitPreferenceFuture(_userPreferences.updateOrAppend(Collections.singleton(preference))); Set<Preference> retrievedPreferences = awaitPreferenceFuture(_userPreferences.getPreferences()); --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
