/*
* Copyright (c) 2005-2010, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
*
* WSO2 Inc. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
* in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.wso2.carbon.registry.social.impl.test.appdata;
import org.wso2.carbon.context.PrivilegedCarbonContext;
import org.wso2.carbon.registry.core.Registry;
import org.wso2.carbon.registry.core.exceptions.RegistryException;
import org.wso2.carbon.registry.core.internal.RegistryCoreServiceComponent;
import org.wso2.carbon.registry.core.jdbc.EmbeddedRegistryService;
import org.wso2.carbon.registry.core.jdbc.realm.RegistryRealm;
import org.wso2.carbon.registry.social.impl.appdata.AppDataManagerImpl;
import org.wso2.carbon.registry.social.impl.test.activity.BaseTestCase;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
public class AppDataManagerImplTest extends BaseTestCase {
protected static Registry registry = null;
protected static RegistryRealm realm = null;
public void setUp() throws RegistryException {
super.setUp();
/* PrivilegedCarbonContext.getThreadLocalCarbonContext().setTenantDomain("foo.com");
PrivilegedCarbonContext.getThreadLocalCarbonContext().setTenantId(1);*/
if (registry == null) {
super.setUp();
EmbeddedRegistryService embeddedRegistry = ctx.getEmbeddedRegistryService();
RegistryCoreServiceComponent component = new RegistryCoreServiceComponent() {
{
setRealmService(ctx.getRealmService());
}
};
component.registerBuiltInHandlers(embeddedRegistry);
registry = embeddedRegistry.getGovernanceUserRegistry("admin", "admin");
}
}
// methods to test
// savePersonData()
// updatePersonData()
// deletePersonData()
// getPersonData()
public void testAppDataManager() throws Exception {
AppDataManagerImpl manager = new AppDataManagerImpl();
manager.setRegistry(registry);
Map<String, String> personData = new HashMap<String, String>();
personData.put("key1", "value1");
personData.put("key2", "value2");
personData.put("key3", "value3");
/* save person data */
manager.savePersonData("user1", "3", personData);
Map<String, Map<String, String>> dataMap1;
String[] userIds = new String[1];
userIds[0]="user1";
Set<String> fields = new HashSet<String>();
fields.add("key1");
fields.add("key2");
/* get person data */
dataMap1 = manager.getPersonData(userIds, null, "3", fields);
assertNotNull(dataMap1);
assertEquals(dataMap1.size(), 1);
assertEquals(dataMap1.get("user1").size(), 2);
assertTrue(dataMap1.get("user1").get("key1") != null && dataMap1.get("user1").get("key2") != null && dataMap1.get("user1").get("key1").equals("value1"));
assertNull(dataMap1.get("userC"));
userIds = new String[1];
userIds[0]="useC";
dataMap1 = manager.getPersonData(userIds, null, "3", fields);
// assertNull(dataMap1);
fields = new HashSet<String>();
fields.add("key1");
/* Delete person data */
manager.deletePersonData("user1", null, "3", fields);
userIds = new String[1];
userIds[0]="user1";
fields = new HashSet<String>();
fields.add("key1");
fields.add("key2");
fields.add("key3");
dataMap1 = manager.getPersonData(userIds, null, "3", fields);
assertNotNull(dataMap1);
assertNull(dataMap1.get("user1").get("key1"));
assertEquals(dataMap1.size(), 1);
assertEquals(2, dataMap1.get("user1").size());
assertTrue(dataMap1.get("user1").get("key3") != null && dataMap1.get("user1").get("key2") != null && dataMap1.get("user1").get("key3").equals("value3"));
personData = new HashMap<String, String>();
personData.put("key2", "newvalue2");
fields = new HashSet<String>();
fields.add("key2");
/* Update person data */
manager.updatePersonData("user1", null, "3", fields, personData);
fields = new HashSet<String>();
fields.add("key2");
dataMap1 = manager.getPersonData(userIds, null, "3", fields);
assertNotNull(dataMap1);
assertEquals(dataMap1.size(), 1);
assertEquals(1, dataMap1.get("user1").size());
assertEquals("newvalue2", dataMap1.get("user1").get("key2"));
/* value in fields but not in map */
personData = new HashMap<String, String>();
personData.put("key2", "newvalue2");
fields = new HashSet<String>();
fields.add("key2");
fields.add("key3");
manager.updatePersonData("user1", null, "3", fields, personData);
fields = new HashSet<String>();
fields.add("key2");
dataMap1 = manager.getPersonData(userIds, null, "3", fields);
assertNotNull(dataMap1);
assertNull(dataMap1.get("user1").get("key3")); // value for key3 should be deleted
}
}