From ee5eda7ff0ad61227c0f6df311e49649c4ab82ca Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Tue, 5 Jul 2016 18:47:48 +0200 Subject: [PATCH] More tests for preference object handling and notification set calculation --- ...ferenceObjectBasedNotificationSetTest.java | 36 +++++++++++++++++++ .../UserPreferenceObjectAndConverterTest.java | 16 +++++++++ 2 files changed, 52 insertions(+) diff --git a/java/com.sap.sse.security.test/src/com/sap/sse/security/test/PreferenceObjectBasedNotificationSetTest.java b/java/com.sap.sse.security.test/src/com/sap/sse/security/test/PreferenceObjectBasedNotificationSetTest.java index 897b86767f9..6dc25fbbcc1 100644 --- a/java/com.sap.sse.security.test/src/com/sap/sse/security/test/PreferenceObjectBasedNotificationSetTest.java +++ b/java/com.sap.sse.security.test/src/com/sap/sse/security/test/PreferenceObjectBasedNotificationSetTest.java @@ -36,6 +36,7 @@ public class PreferenceObjectBasedNotificationSetTest { private String otherPrefKey = "otherPrefKey"; private HashSet values1 = values(A, B); private HashSet values2 = values(B, C); + private HashSet allValues = values(A, B, C); @Before public void setUp() throws UnknownHostException, MongoException { @@ -97,6 +98,41 @@ public class PreferenceObjectBasedNotificationSetTest { Assert.assertTrue(Util.equals(notificationSet.getUsersnamesToNotifyFor(C), values(user1))); } + @Test + public void preferenceUpdateDoesntInfluenceOtherUserTest() { + store.registerPreferenceConverter(prefKey, prefConverter); + store.setPreferenceObject(user1, prefKey, values1); + store.setPreferenceObject(user2, prefKey, allValues); + PreferenceObjectBasedNotificationSetImpl notificationSet = new PreferenceObjectBasedNotificationSetImpl(prefKey, store); + store.setPreferenceObject(user1, prefKey, values2); + Assert.assertTrue(Util.equals(notificationSet.getUsersnamesToNotifyFor(A), values(user2))); + Assert.assertTrue(Util.equals(notificationSet.getUsersnamesToNotifyFor(B), values(user1, user2))); + Assert.assertTrue(Util.equals(notificationSet.getUsersnamesToNotifyFor(C), values(user1, user2))); + } + + @Test + public void preferenceUnsetDoesntInfluenceOtherUserTest() { + store.registerPreferenceConverter(prefKey, prefConverter); + store.setPreferenceObject(user1, prefKey, values1); + store.setPreferenceObject(user2, prefKey, values2); + PreferenceObjectBasedNotificationSetImpl notificationSet = new PreferenceObjectBasedNotificationSetImpl(prefKey, store); + store.unsetPreference(user1, prefKey); + Assert.assertTrue(Util.equals(notificationSet.getUsersnamesToNotifyFor(A), values())); + Assert.assertTrue(Util.equals(notificationSet.getUsersnamesToNotifyFor(B), values(user2))); + Assert.assertTrue(Util.equals(notificationSet.getUsersnamesToNotifyFor(C), values(user2))); + } + + @Test + public void preferenceUnsetTest() { + store.registerPreferenceConverter(prefKey, prefConverter); + PreferenceObjectBasedNotificationSetImpl notificationSet = new PreferenceObjectBasedNotificationSetImpl(prefKey, store); + store.setPreferenceObject(user1, prefKey, values1); + store.unsetPreference(user1, prefKey); + Assert.assertTrue(Util.equals(notificationSet.getUsersnamesToNotifyFor(A), values())); + Assert.assertTrue(Util.equals(notificationSet.getUsersnamesToNotifyFor(B), values())); + Assert.assertTrue(Util.equals(notificationSet.getUsersnamesToNotifyFor(C), values())); + } + @Test public void testForObjectThatIsntKnownTest() { store.registerPreferenceConverter(prefKey, prefConverter); diff --git a/java/com.sap.sse.security.test/src/com/sap/sse/security/test/UserPreferenceObjectAndConverterTest.java b/java/com.sap.sse.security.test/src/com/sap/sse/security/test/UserPreferenceObjectAndConverterTest.java index 5ea736fe73a..817fb76f20d 100644 --- a/java/com.sap.sse.security.test/src/com/sap/sse/security/test/UserPreferenceObjectAndConverterTest.java +++ b/java/com.sap.sse.security.test/src/com/sap/sse/security/test/UserPreferenceObjectAndConverterTest.java @@ -88,6 +88,22 @@ public class UserPreferenceObjectAndConverterTest { Assert.assertEquals(serializedPref1, store.getPreference(user1, prefKey1)); Assert.assertEquals(pref1, store.getPreferenceObject(user1, prefKey1)); } + + @Test + public void unsetPreferenceTest() { + store.registerPreferenceConverter(prefKey1, prefConverter); + store.setPreferenceObject(user1, prefKey1, pref1); + store.unsetPreference(user1, prefKey1); + Assert.assertEquals(null, store.getPreferenceObject(user1, prefKey1)); + } + + @Test + public void setPreferenceObjectToNullTest() { + store.registerPreferenceConverter(prefKey1, prefConverter); + store.setPreferenceObject(user1, prefKey1, pref1); + store.setPreferenceObject(user1, prefKey1, null); + Assert.assertEquals(null, store.getPreferenceObject(user1, prefKey1)); + } public static class SimplePreferenceForSerialization implements Serializable { private static final long serialVersionUID = -580569932709860895L;